Języki
Jedenaście języków jest dostarczanych kompletnych — każdy ekran, a nie tylko przyciski — w słowach, których używa iPhone w danym języku. Wszystko, czego brakuje w danym języku, wraca do angielskiego tekst po tekście, więc niedokończone tłumaczenie pokazuje to, co ma, zamiast się psuć.
| Kod | Język | Kod | Język |
|---|---|---|---|
en | English | pt | Português (Brasil) |
es | Español | pl | Polski |
fr | Français | ru | Русский |
de | Deutsch | tr | Türkçe |
it | Italiano | ar | العربية — od prawej do lewej |
ja | 日本語 |
Wybór języka
Dział zatytułowany „Wybór języka”-- shared/config.luaConfig.Locale = 'en'To domyślny język miasta. Każdy gracz może zmienić go dla siebie w Ustawienia → Ogólne → Język, a jego wybór jest zapamiętywany razem z resztą ustawień.
Kto czyta który język
Dział zatytułowany „Kto czyta który język”Każdy gracz czyta język, który wybrał, w telefonie i poza nim. Telefon podąża za wyborem w Ustawieniach, tak samo jak linijki pokazywane poza telefonem — “No signal here.”, “Both hands are busy.”, pojawienie się nowej aplikacji.
Config.Locale to język dla gracza, który nigdy go nie wybrał, i dla wszystkiego, co nie jest mówione nikomu konkretnemu.
Dla Twojego własnego zasobu: LFor(source, text, ...) odpowiada w języku danego gracza, a L(text, ...) w języku miasta.
Co poza słowami podąża za językiem
Dział zatytułowany „Co poza słowami podąża za językiem”- Daty i zegar. “Samstag, 19. September”, “9月19日土曜日”, zegar 24-godzinny tam, gdzie język go używa. Pieniądze pozostają w
$, tak jak liczy je miasto. - Arabski czyta się od prawej do lewej. Cały ekran jest odbity lustrzanie tak, jak na arabskim iPhonie: wiersze zaczynają się po prawej, strzałka wstecz wskazuje w prawo. Dwie rzeczy pozostają takie same we wszystkich językach, tak jak na iPhonie — klawiatura numeryczna i kalkulator. Kwoty, daty i liczby wewnątrz arabskiego zdania zachowują swoją kolejność. Cyfry zachodnie i kalendarz gregoriański, tak jak czyta telefon w Los Santos.
- Liczby. Polski, rosyjski i arabski mają więcej form liczby mnogiej niż jedna i wiele, więc ich liczniki czytają się “Notatki: 4” — poprawnie dla dowolnej liczby.
Gdzie są słowa
Dział zatytułowany „Gdzie są słowa”Jeden folder, jeden plik na język. Wszystko jest w nim: 2400 tekstów na ekranie i dwa tuziny pokazywanych poza telefonem — powiadomienie od miasta, powód, dla którego nie otworzy się w powietrzu.
locales/en.lualocales/es.lualocales/fr.lua…To plik Lua, więc serwer i klient ładują go jako skrypt, którym jest, bez parsowania i konwersji. Telefon czyta ten sam plik i go parsuje, dlatego jego kształt jest ścisły: jedno ["key"] = "value", na linijkę, a komentarz to komentarz. Trzymaj się tego kształtu, a obie połowy zobaczą Twoje słowa.
Tekst jest własnym kluczem:
Locales['es'] = { ["Verified account"] = "Cuenta verificada", ["The last {n} hours."] = "Las últimas {n} horas.",}Kluczem jest angielski tekst, więc brakujące tłumaczenie pokazuje angielski zamiast pustego pola lub kodu. Nawiasy klamrowe to wartości, które telefon uzupełnia — zachowaj je i umieść tam, gdzie potrzebuje ich zdanie, a nie tam, gdzie postawił je angielski. Wartość zostawiona jako "" oznacza “pokaż angielski”: tak zapisuje się nazwy, które nigdy się nie tłumaczą (Instapic, Bean Machine, Los Santos).
Telefon czyta tylko język, który gracz wybiera, i to w chwili wyboru — jedenaście słowników nie jest ładowanych przy każdym starcie dla telefonu, który pokazuje jeden.
Zmiana jednego słowa
Dział zatytułowany „Zmiana jednego słowa”Otwórz plik języka, znajdź linijkę, zmień wartość:
["Wallet"] = "Cartera", -- the right-hand side is what the player readsZrestartuj zasób. Nic innego się do tego nie odwołuje.
Dodawanie języka
Dział zatytułowany „Dodawanie języka”- Skopiuj
locales/en.luadolocales/<code>.lua— na przykładnl.lua— i zmieńLocales['en']naLocales['nl']. - Przetłumacz wartości. Klucze nigdy się nie zmieniają.
- Jeśli kod nie jest jednym z jedenastu, dodaj go do listy, którą oferuje wybierak, w
html/core/onboarding.js:const languages=[['en','English','Hello'], … ,['nl','Nederlands','Hallo']];— kod, nazwa w jego własnym języku i powitanie na pierwszy ekran. Config.Locale = 'nl', jeśli ma to być język domyślny miasta.
Manifest już dostarcza każdy plik z locales/, więc nie ma niczego do rejestrowania. Wybierak oznacza język, który nie ma jeszcze słów, jako Na razie wyświetlany po angielsku, zamiast go ukrywać.