Skip to content

Localization

Lokalizace

BUPA Chat je plně přeložitelný. Překlady jsou uloženy jako obyčejné soubory JSON v adresáři locales/, načítá je ox_lib (manifest deklaruje ox_lib 'locale') a čtou se přes wrapper t().

Dodávané jazyky

locales/*.json — deset jazyků již v základu:

Kód Jazyk Kód Jazyk
en Angličtina nl Nizozemština
tr Turečtina pl Polština
de Němčina pt Portugalština
es Španělština ru Ruština
fr Francouzština it Italština

Každý řetězec v rozhraní, štítek kategorie, placeholder, popis animace a systémová zpráva se načítají z těchto souborů.

Výběr jazyka

Aktivní jazyk se nastavuje v souboru shared/config/core.lua:

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

Pořadí vyhodnocení:

  1. bupa-chat:locale — přepsání pro konkrétní resource pouze pro BUPA Chat.
  2. ox:locale — sdílený jazyk ox_lib používaný napříč vaším serverem.
  3. en — výchozí angličtina, pokud není nastaveno ani jedno.
server.cfg
setr ox:locale "tr"          # jazyk pro celý server
setr bupa-chat:locale "en"   # volitelně: vynutit angličtinu pouze pro chat

Přepínání za běhu — bupa:changeLanguage

Jazyk hráče můžete změnit za chodu, v rámci relace, bez nutnosti restartu. Spusťte klientský event s kódem jazyka; BUPA Chat tento jazyk znovu načte přes ox_lib a odešle jej přímo do React UI:

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

Interně to volá funkci loadLang(newLang) (která přepne aktivní jazyk v ox_lib) a následně changeUiLang, takže se Lua část i uživatelské rozhraní aktualizují současně.

Přidání nebo úprava jazyka

Složka locales/ je v escrow_ignore, takže můžete JSON soubory přímo upravovat. Chcete-li přidat jazyk, zkopírujte en.json, přeložte hodnoty a uložte soubor jako <code>.json (např. sv.json), poté nastavte ox:locale nebo bupa-chat:locale na tento kód.

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() (a locale() v ox_lib) vrací samotný klíč, pokud překlad chybí. Udržujte en.json kompletní jako referenční soubor a pro dynamické hodnoty používejte zástupné symboly %s / %d (např. "Reason: %s").