Yerelleştirme
Yerelleştirme
BUPA Chat tamamen çevrilebilirdir. Çeviriler, locales/ altında yer alan, ox_lib tarafından yüklenen (manifest dosyasında ox_lib 'locale' tanımlıdır) ve t() sarmalayıcısı aracılığıyla okunan düz JSON dosyalarıdır.
Desteklenen Diller
locales/*.json — kutudan çıktığı gibi on dil desteği:
| Kod | Dil | Kod | Dil |
|---|---|---|---|
en |
İngilizce | nl |
Felemenkçe |
tr |
Türkçe | pl |
Lehçe |
de |
Almanca | pt |
Portekizce |
es |
İspanyolca | ru |
Rusça |
fr |
Fransızca | it |
İtalyanca |
Her arayüz metni, kategori etiketi, yer tutucu, animasyon açıklaması ve sistem mesajı bu dosyalardan çekilir.
Dili Seçme
Aktif dil shared/config/core.lua dosyasında belirlenir:
config.lang = GetConvar("bupa-chat:locale", GetConvar("ox:locale", "en"))Çözümleme sırası:
bupa-chat:locale— Yalnızca BUPA Chat için kaynağa özel geçersiz kılma.ox:locale— Sunucunuz genelinde kullanılan paylaşılan ox_lib yerel ayarı.en— Hiçbiri ayarlanmadıysa varsayılan İngilizce.
setr ox:locale "tr" # sunucu genelinde dil
setr bupa-chat:locale "en" # isteğe bağlı: yalnızca sohbet için İngilizceye zorlaÇalışma Zamanında Değiştirme — bupa:changeLanguage
Bir oyuncunun dilini yeniden başlatmaya gerek kalmadan, oturum sırasında canlı olarak değiştirebilirsiniz. İstemci (client) olayını bir dil koduyla tetikleyin; BUPA Chat, o yerel ayarı ox_lib aracılığıyla yeniden yükler ve doğrudan React arayüzüne iletir:
TriggerEvent("bupa:changeLanguage", "de")Bu işlem dahili olarak loadLang(newLang) fonksiyonunu (ox_lib'in aktif yerel ayarını değiştirir) ve ardından changeUiLang fonksiyonunu çağırır, böylece hem Lua tarafı hem de arayüz aynı anda güncellenir.
Dil Ekleme veya Düzenleme
locales/ klasörü escrow_ignore içindedir, yani JSON dosyasını doğrudan düzenleyebilirsiniz. Yeni bir dil eklemek için en.json dosyasını kopyalayın, değerleri çevirin ve <code>.json (örn. sv.json) olarak kaydedin, ardından ox:locale veya bupa-chat:locale değerini bu kod olarak ayarlayın.
{
"CATEGORY_COMMANDS_LABEL": "Commands",
"CATEGORY_COMMANDS_PLACEHOLDER": "Type a command...",
"CATEGORY_ADMIN_LABEL": "Admin Chat",
"EMOTE_ME_COMMAND_DESC": "Describe an action you are doing"
}Bir çeviri eksik olduğunda t() (ve ox_lib locale()) anahtarın kendisini döndürür. Referans olması için en.json dosyasını eksiksiz tutun ve dinamik değerler için %s / %d yer tutucularını kullanın (örn. "Reason: %s").