Autor Wątek: Localization Kit w grach indie casual  (Przeczytany 2404 razy)

Offline Shelim

  • Użytkownik
    • Homepage

# Czerwiec 20, 2012, 23:20:38
Witam!

Ciekawi mnie jak inni zapatrują się na kwestie tłumaczenia gier casualowych. Sensownym rozwiązaniem (jak podają Google) jest złożenie localization kita i wręczenie go tłumaczom (osobom niekoniecznie z programistycznym wykształceniem). Przegrzebałem całego neta, ale oprócz bardzo ogólnych wskazówek nie znalazłem informacji w jakiej konkretnie formie taki localization kit powinien być złożony. Chodzi mi po głowie kilka opcji:

1. Zrobić dokument Excela z oryginalnymi tekstami w jednej kolumnie i tłumaczeniami w drugiej, po czym eksportować go do csv. To ma tę zaletę że dla tłumacza jest banalne w obsłudze, problemem natomiast jest ograniczenie znaków (w danych csv nie może np. wystąpić przecinek)

2. Zrobić własny programik w C# z kontrolką DataGridView, który pozwalałby na wpisywanie tłumaczeń. To ma tę zaletę że może od razu eksportować do formatu natywnego silnika, do tego nie ogranicza zestawu znaków. Problemem jest fakt że tłumacz musi się nauczyć kolejnego programu

3. Zrobić plik .txt z jakąś ogólną strukturą, którą tłumacz będzie tłumaczył. Potem przekonwertować taki plik do formatu silnika.

Coś innego?

Anyways wymagania projektu jakie musi taki system spełniać, to:
 - Możliwość przygotowywania tłumaczeń na różne języki przez różne osoby równolegle
 - Tłumaczenie musi zawierać informacje o zestawie znaków używanych przez język i musi być w formacie UTF32
 - Udostępnienie możliwości dostępu do plików tłumaczenia użytkownikom finalnym (np. modderom)
 - Szybki czas dostępu do konkretnego tłumaczenia (po kluczu) - to można rozwiązać indeksem budowanym w momencie ładowania pliku

Do tego mam jeszcze jedno pytanie, w jakiej formie wstawiać zmienne do tekstu - chodzą mi po głowie 3 opcje:
%s %d - mamy informacje o typie, obsługa sprintfem. Problemem jest fakt że tłumacz nie może zmienić kolejności argumentów
{0} {1} - nie mamy informacji o typie, obsługa własną funkcją. Można zmienić kolejność argumentów
[PC_NAME] [PC_GENDER] - mamy informacje o typie, obsługa własną funkcją, można zmienić kolejność argumentów - tłumacz może jednak z rozpędu też przetłumaczyć te teksty i będzie katastrofa.

Jak wy to rozwiązujecie w swoich wielojęzykowych projektach?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Cocomide

  • Użytkownik

  • +2
# Czerwiec 21, 2012, 00:21:43
Widziałem jak pracują tłumacze. Niekoniecznie do gier ale w aplikacjach.
Jest to opcja nr 1 z tych, które podałeś. W .csv można używać wszystkich znaków oprócz tego ustawionego jako separatora (domyślnie średnik ";"). Jedna tabela z native language a druga z miejscem na translate. Potem już programista wyjmuje z .csv dane.

Wariant nr 2 jest używany w gigantycznych projektach wielkich korporacji. Programy takie opierają się bardziej na wymianie zasobami przez sieć, stąd konieczność customowego oprogramowania.

Wariant 3 jest bezsensu jak ma się csv.

Z Twoich wymagań to wyobrażam sobie jedynie aplikację w asp.net... Chociaż nie wiem po co tak komplikować sprawę :)

Co do zmiennych: własny kompilator tekstu w grze jest chyba najlepszym rozwiązaniem. A w instrukcji dla tłumacza zaznacza się czego nie psuć.
« Ostatnia zmiana: Czerwiec 21, 2012, 00:37:48 wysłana przez Cocomide »

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Czerwiec 21, 2012, 10:13:38
Cytuj
(w danych csv nie może np. wystąpić przecinek)
Skąd masz takie (błędne) informacje? Może jak najbardziej, jeżeli jest pomiędzy znakami ". A znaki " można podajże escapować jeżeli mają się mieszać z przecinkami.

Inna kwestia, że Excel skrót CSV rozumie jako Cokolwiek Separated Value i nie masz gwarancji, że będzie się tam spodziewał/używał przecinków. Bierze po prostu znak separatora z ustawień regionalnych. W Polsce są to według MS na przykład średniki.

Tyle że po co CSV, skoro można użyć po prostu plików Excela.

Offline rm-f

  • Użytkownik
    • Tu trolluje

# Czerwiec 21, 2012, 10:52:28
gettext ?

# Czerwiec 21, 2012, 11:56:49
Czemu csv ?
 I do tego pewnie chcesz tam upakować wszystkie języki ?!

Nie lepiej zrobić zwykły tekst per język, gdzie zdania rozgranicza się kodem 13
Potem wrzucasz to do google translatora - szybko i łatwo.

Offline IIablo

  • Użytkownik

# Czerwiec 21, 2012, 23:18:07
Spotkalem sie z:
- xls i export do formatu gry
- plik txt/xml/json
- uzycie Trados'a

Offline Shelim

  • Użytkownik
    • Homepage

# Czerwiec 22, 2012, 00:32:59
Potem wrzucasz to do google translatora - szybko i łatwo.
Ręce mi opadły... -_- Widziałem taką firmę, która tłumaczyła foldery turystyczne Google translatorem. Śmiechu było co nie miara...

@Krzysiek K - wydawało mi sę że format Excela (xls) jest mocno skomplikowany, muszę poresearchować mocniej w tą stronę

Offline Paweł

  • Użytkownik

# Czerwiec 22, 2012, 02:24:00
4. Osobny folder dla każdego języka, ze stałą strukturą plików. Gratis dostajesz lokalizację assetów ( np. fontów ).

Offline m4tx

  • Użytkownik
    • m4txblog

# Czerwiec 22, 2012, 07:06:04
Potem wrzucasz to do google translatora - szybko i łatwo.

Używałeś kiedyś Google Translatora? To jest dobre, żeby pomagać sobie w tłumaczeniu z języka, który się trochę zna, ale tłumaczyć całe zdania, czy - o zgrozo - grę, to już lepiej w ogóle tego nie robić...

Offline Kurak

  • Użytkownik

# Czerwiec 22, 2012, 20:32:08
@Krzysiek K - wydawało mi sę że format Excela (xls) jest mocno skomplikowany, muszę poresearchować mocniej w tą stronę
Są liby choćby do pythona więc konwersja do czegoś innego to nie problem, a zawsze można też napisać eksporter do odpalenia bezpośrednio z poziomu Excela (vsto i generujesz sobie co tam potrzebujesz).

Offline owyn

  • Użytkownik

# Czerwiec 22, 2012, 21:13:38
Inna kwestia, że Excel skrót CSV rozumie jako Cokolwiek Separated Value i nie masz gwarancji, że będzie się tam spodziewał/używał przecinków. Bierze po prostu znak separatora z ustawień regionalnych. W Polsce są to według MS na przykład średniki.
Z tego co pamiętam, to można obejść zmieniając rozszerzenie na 'txt', wtedy przy otwieraniu pyta czym ma rozdzielać.