Problemy lokalizacji (tłumaczenia)

 
Dla tłumaczących:
obecnie aby przetłumaczyć napisy, menu, opisy przedmiotów wolontariusze, którzy zgłosili się do tłumaczenia muszą tłumaczyć setki plików o rozszerzeniu .json
Problem polega na tym, że każdy pojedynczy plik .json zawiera tylko wybrany element jaki zostanie przetłumaczony - przykład poniżej:
 
 
Osoba tłumacząca musi "przekopać" się przez wszystkie pliki, w których znajdują się opisy oraz nazwy przedmiotów. Kolejnym problemem na jaki często można natrafić jest brak pewności, którą linię w pliku należy przetłumaczyć a którą zostawić.
 
Dla Graczy:
Gracz natomiast, także napotka dużo problemów z przetłumaczeniem samemu gry, ponieważ musi podmienić przetłumaczone wcześniej plik .json 
Przetłumaczenie wymaga pobrania ponad 100 MB moda, zawierającego przetłumaczone wszystkie pliki gry.
 
Kolejnym problemem jest brak działania w obecnym modelu obsługi języka z serwerami. Jeśli serwer gry (multiplayer) zostanie zaimplementowny do gry, a jego jezykiem podstawowym będzie np. Angielski, to gracz wszystkie elementy gry będzie miał w tym języku nawet jeśli ma tłumaczenie w innym przez siebie wybranym (polskim).
 

Rozwiązanie problemu Lokalizacji (tłumacznia)

 
Najlepszym z rozwiązań na jakie zdycydowali się twórcy gry, to umieszczenie wszystkich tłumaczeń w jednym pliku .json (en.json - angielski, pl.json - polski, itd.)
 
Magiczne "klucze"
Pojedyncze obiekty z gry, będą zawierać unikalną nazwę "klucz", który pobierany będzie z pliku językowego i renderowany w grze. Dla przykładu:
 
 
Jak widać na załączonym obrazku, zawartość pliku .json tego obiektu jest dużo gorsza do zrozumienia ale zawiera element "klucz" odnoszący się do pliku jezykowego gdzie znajduje się jego tłumaczenie.
 
i18n(stonehearth:entities.foog.corn.corn_basket.name) jest nowym kluczem opisującym ten obiekt.
Sam pocztątek i18n() otaczający klucz jest skróconą nazwą, mówiącą grze że to jest klucz tlumaczeń.
 
Zawartość klucza stonehearth:entities.foog.corn.corn_basket.name mówi grze gdzie w pliku językowym .json ma szukać tłumaćzeń dla tego obiektu. Początek klucza "stonehearth:" oznacza że klucz został zdefiniowany w plikach od moda stonehearth (który jest podstawowym modem gry).
 

 

 
Zawartość podstawowego pliku en.json
 
W podstawowym pliku językowym (angielskim) stonehearth/locales/en.json będzie zawartoś podobna do przedstawionej poniżej:
 
 
Teraz jeśli chcemy przetłumaczyć zawartość tego pliku, tworzymy nowy (np. dla niemieckiego tłumaczenia) plik, będzie to de.json i edytujemy wybrane wyrazy/zwroty/zdania z pliku. Plik po przetłumaczenie powinien wyglądać tak:
 
 

Testowanie tłumaczeń

Posiadając wszystkie tłumaczenia w jednym pliku możemy przejść do testowania jekie elementy (części) gry zistały przetłumaczone a jakie muszą zostać jeszcze dodane do pliku. Rozwiązanie jakie zostało wprowadzone do tego jest pseudo lokalizajca.
 
Jak na załączonym obrazku poniżej, widzimy zwrot "Building Template" został przetłumaczony przy użyciu pseudo lokalizacji i jest on juz gotowy do pełnego tłumaczenia na każdy jezyk. Natomiast zwrot "Design Custom Building" został umieszczony w grze jako zwykły tekst (nie posiada jeszcze "klucza" - odwołania do pliku językowego i musi on zostać dodany do niego).
 
 
Używając tej techniki, będziesz miał pewność że przetłumaczone zostaną wszystkie obiekty w grze.
Wszystkie te zmiany w tłumaczeniu gry najbardziej przeypadną do gustu wolontariuszom, którzy złogsili się do tłumaczeń.
 
Z naszej strony chciałem dodać iż polskie tłumaczenie gry jest w dużym stopniu gotowe i jesli tylko pojawi się wersja Alpha 12 Stonehearth, napweno poinformujemy Was o postępach prac związanych z przniesieniem tłumaczń do nowego systemu.
 

Kiedy polskie tlumacznie Stonehearth?

 
Oczekiwany czas na pliki lolkalizacyjne (pl.json) po pojawieniu się stabilnej wersji Alpha 12 to około 2 tyg. (tłumaczenia jest dużo, a na tym etapie jest już pare tysięcy lini kodu, tłumaczącego nazwy oraz opisu obiektów). Bądzcie czujni.