Skip to content

Localization

Lokalisering

BUPA Chat är fullt översättningsbar. Översättningar är enkla JSON-filer under locales/, som läses in av ox_lib (manifestet deklarerar ox_lib 'locale') och läses via t()-wrapperbiblioteket.

Medföljande språk

locales/*.json — tio språk direkt ur lådan:

Kod Språk Kod Språk
en Engelska nl Holländska
tr Turkiska pl Polska
de Tyska pt Portugisiska
es Spanska ru Ryska
fr Franska it Italienska

Varje gränssnittssträng, kategorietikett, platshållare, emote-beskrivning och systemmeddelande laddas från dessa filer.

Välja språk

Det aktiva språket ställs in i shared/config/core.lua:

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

Prioriteringsordning:

  1. bupa-chat:locale — en resurspecifik åsidosättning enbart för BUPA Chat.
  2. ox:locale — det delade ox_lib-språket som används på din server.
  3. en — Engelska som reservalternativ om inget annat anges.
server.cfg
setr ox:locale "tr"          # serveromspännande språk
setr bupa-chat:locale "en"   # valfritt: tvinga engelska enbart för chatten

Ändra språk i realtid — bupa:changeLanguage

Du kan ändra en spelares språk live, per session, utan omstart. Trigga klienteventet med en språkkod; BUPA Chat laddar om den språkfilen via ox_lib och skickar den direkt till React-gränssnittet:

client
TriggerEvent("bupa:changeLanguage", "de")

Internt anropar detta loadLang(newLang) (vilket ändrar ox_libs aktiva språk) och sedan changeUiLang, så att både Lua-sidan och gränssnittet uppdateras samtidigt.

Lägga till eller redigera ett språk

locales/ ingår i escrow_ignore, så du kan redigera JSON-filerna direkt. För att lägga till ett språk kopierar du en.json, översätter värdena och sparar den som <code>.json (t.ex. sv.json), och pekar sedan ox:locale eller bupa-chat:locale mot den koden.

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() (och ox_lib locale()) returnerar själva nyckeln om en översättning saknas. Håll en.json komplett som din referens, och använd %s / %d som platshållare för dynamiska värden (t.ex. "Reason: %s").