Localization
Localizare
BUPA Chat este complet traductibil. Traducerile sunt fișiere JSON simple în directorul locales/, încărcate prin ox_lib (manifestul declară ox_lib 'locale') și citite prin intermediul funcției t().
Limbi incluse
locales/*.json — zece limbi disponibile nativ:
| Cod | Limbă | Cod | Limbă |
|---|---|---|---|
en |
Engleză | nl |
Olandeză |
tr |
Turcă | pl |
Poloneză |
de |
Germană | pt |
Portugheză |
es |
Spaniolă | ru |
Rusă |
fr |
Franceză | it |
Italiană |
Fiecare șir din interfață, etichetă de categorie, text descriptiv (placeholder), descriere de animație și mesaj de sistem este preluat din aceste fișiere.
Selectarea limbii
Limba activă este configurată în shared/config/core.lua:
config.lang = GetConvar("bupa-chat:locale", GetConvar("ox:locale", "en"))Ordinea de rezoluție:
bupa-chat:locale— o suprascriere per-resursă exclusiv pentru BUPA Chat.ox:locale— limba partajată ox_lib folosită la nivelul întregului server.en— limba engleză de rezervă dacă niciuna dintre cele de mai sus nu este setată.
setr ox:locale "tr" # limba la nivelul întregului server
setr bupa-chat:locale "en" # opțional: forțează limba engleză doar pentru chatSchimbarea în timp real — bupa:changeLanguage
Poți schimba limba unui jucător în timp real, per sesiune, fără a fi nevoie de un restart. Declanșează evenimentul de client cu codul limbii dorite; BUPA Chat va reîncărca respectiva localizare prin ox_lib și o va trimite direct către interfața React:
TriggerEvent("bupa:changeLanguage", "de")În mod intern, acest lucru apelează loadLang(newLang) (care comută limba activă din ox_lib) și apoi changeUiLang, astfel încât atât partea de Lua, cât și interfața să se actualizeze simultan.
Adăugarea sau editarea unei limbi
Directorul locales/ este inclus în escrow_ignore, așa că poți edita fișierele JSON direct. Pentru a adăuga o limbă, copiază en.json, traduce valorile și salvează fișierul ca <code>.json (de exemplu, sv.json), apoi setează ox:locale sau bupa-chat:locale pe noul cod.
{
"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"
}t() (și funcția locale() din ox_lib) returnează cheia însăși atunci când o traducere lipsește. Pastrează en.json complet ca referință și folosește substituenți de tip %s / %d pentru valorile dinamice (de exemplu, "Reason: %s").