Diller
On bir dil eksiksiz gelir — sadece butonlar değil, her ekran — her dilin kendi iPhone’unun kullandığı kelimelerle. Bir dilde eksik olan her şey dize dize (string by string) İngilizceye döner; böylece yarım kalmış bir çeviri bozulmak yerine elindekini gösterir.
| Kod | Dil | Kod | Dil |
|---|---|---|---|
en | English | pt | Português (Brasil) |
es | Español | pl | Polski |
fr | Français | ru | Русский |
de | Deutsch | tr | Türkçe |
it | Italiano | ar | العربية — sağdan sola |
ja | 日本語 |
Birini seçmek
Section titled “Birini seçmek”-- shared/config.luaConfig.Locale = 'en'Bu şehrin varsayılanıdır. Her oyuncu bunu kendisi için Ayarlar → Genel → Dil bölümünden değiştirebilir ve seçimi diğer ayarlarıyla birlikte hatırlanır.
Kim hangi dili okur
Section titled “Kim hangi dili okur”Her oyuncu seçtiği dili okur, telefonda da telefonun dışında da. Telefon Ayarlar’daki seçimi izler ve telefonun dışında gösterilen satırlar da öyle — “Burada sinyal yok.”, “İki elin de dolu.”, gelen yeni bir uygulama.
Config.Locale, hiç seçim yapmamış bir oyuncunun dili ve özel olarak kimseye söylenmeyen her şeyin dilidir.
Kendi kaynağınız için: LFor(source, text, ...) o oyuncunun dilinde, L(text, ...) ise şehrin dilinde cevap verir.
Kelimelerin yanı sıra dili neler izler
Section titled “Kelimelerin yanı sıra dili neler izler”- Tarihler ve saat. “Samstag, 19. September”, “9月19日土曜日”, dilin kullandığı yerde 24 saatlik saat. Para, şehrin saydığı gibi
$olarak kalır. - Arapça sağdan sola okunur. Tüm ekran, Arapça bir iPhone’daki gibi aynalanır: satırlar sağdan başlar, geri oku sağı gösterir. İki şey, bir iPhone’da olduğu gibi her dilde aynı kalır — tuş takımı ve hesap makinesi. Bir Arapça cümlenin içindeki tutarlar, tarihler ve sayılar sıralarını korur. Batı rakamları ve Gregoryen takvim, Los Santos’taki bir telefonun okuduğu gibi.
- Sayılar. Lehçe, Rusça ve Arapça’nın bir ve çok’tan fazla çoğul biçimi vardır; bu yüzden sayıları “Notatki: 4” şeklinde okunur — her sayı için doğrudur.
Kelimeler nerede
Section titled “Kelimeler nerede”Bir klasör, her dil için bir dosya. Her şey içindedir: ekrandaki 2.400 dize ve telefonun dışında gösterilen yirmi küsur dize — şehirden gelen bir bildirim, havada açılmamasının sebebi.
locales/en.lualocales/es.lualocales/fr.lua…Bu bir Lua dosyasıdır, dolayısıyla sunucu ve istemci onu olduğu gibi bir script olarak yükler; ayrıştırma ve dönüştürme yoktur. Telefon aynı dosyayı okur ve ayrıştırır, şeklin katı olmasının sebebi budur: satır başına bir ["key"] = "value", ve bir yorum bir yorumdur. Bu şekle sadık kalın ve her iki yarı da kelimelerinizi görsün.
Bir dize kendi anahtarıdır:
Locales['es'] = { ["Verified account"] = "Cuenta verificada", ["The last {n} hours."] = "Las últimas {n} horas.",}Anahtar İngilizce metindir, böylece eksik bir çeviri boşluk ya da kod yerine İngilizceyi gösterir. Süslü parantezler telefonun doldurduğu değerlerdir — onları koruyun ve İngilizcenin koyduğu yere değil, cümlenin ihtiyaç duyduğu yere koyun. "" olarak bırakılan bir değer “İngilizceyi göster” demektir: asla çevrilmeyen isimler (Instapic, Bean Machine, Los Santos) böyle yazılır.
Telefon yalnızca bir oyuncunun seçtiği dili, seçtiği anda okur — tek dil gösteren bir telefon için her başlangıçta on bir sözlük yüklenmez.
Bir kelimeyi değiştirmek
Section titled “Bir kelimeyi değiştirmek”Dilin dosyasını açın, satırı bulun, değeri değiştirin:
["Wallet"] = "Cartera", -- the right-hand side is what the player readsKaynağı yeniden başlatın. Başka hiçbir şey ona başvurmaz.
Bir dil eklemek
Section titled “Bir dil eklemek”locales/en.luadosyasınılocales/<code>.luaolarak kopyalayın — örneğinnl.lua— veLocales['en']değeriniLocales['nl']yapın.- Değerleri çevirin. Anahtarlar asla değişmez.
- Kod, on birden biri değilse, seçicinin sunduğu listeye
html/core/onboarding.jsiçinde ekleyin:const languages=[['en','English','Hello'], … ,['nl','Nederlands','Hallo']];— kod, kendi dilindeki adı ve ilk ekran için bir selamlama. - Şehrin varsayılanı olacaksa
Config.Locale = 'nl'.
Manifest locales/ içindeki her dosyayı zaten gönderir, yani kaydedilecek bir şey yok. Seçici henüz kelimesi olmayan bir dili gizlemek yerine Şimdilik İngilizce gösteriliyor diye işaretler.