Skip to content

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:

shared/config/core.lua
config.lang = GetConvar("bupa-chat:locale", GetConvar("ox:locale", "en"))

Ordinea de rezoluție:

  1. bupa-chat:locale — o suprascriere per-resursă exclusiv pentru BUPA Chat.
  2. ox:locale — limba partajată ox_lib folosită la nivelul întregului server.
  3. en — limba engleză de rezervă dacă niciuna dintre cele de mai sus nu este setată.
server.cfg
setr ox:locale "tr"          # limba la nivelul întregului server
setr bupa-chat:locale "en"   # opțional: forțează limba engleză doar pentru chat

Schimbarea î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:

client
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.

locales/en.json
{
  "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").