Skip to content

Localization

Lokalisatie

BUPA Chat is volledig te vertalen. Vertalingen zijn eenvoudige JSON-bestanden in locales/, worden geladen door ox_lib (het manifest declareert ox_lib 'locale'), en worden uitgelezen via de t() wrapper.

Meegeleverde talen

locales/*.json — tien talen direct beschikbaar:

Code Taal Code Taal
en Engels nl Nederlands
tr Turks pl Pools
de Duits pt Portugees
es Spaans ru Russisch
fr Frans it Italiaans

Elke UI-string, categorie-label, placeholder, emote-beschrijving en systeembericht wordt geladen vanuit deze bestanden.

De taal selecteren

De actieve taal wordt ingesteld in shared/config/core.lua:

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

Volgorde van prioriteit:

  1. bupa-chat:locale — een override per resource, specifiek voor BUPA Chat.
  2. ox:locale — de gedeelde ox_lib locale die voor je hele server wordt gebruikt.
  3. en — Engelse terugvaloptie (fallback) als geen van beide is ingesteld.
server.cfg
setr ox:locale "tr"          # taal voor de hele server
setr bupa-chat:locale "en"   # optioneel: forceer Engels alleen voor de chat

Live wisselen — bupa:changeLanguage

Je kunt de taal van een speler live wijzigen per sessie, zonder een herstart. Trigger het client-event met een taalcode; BUPA Chat laadt die locale opnieuw via ox_lib en stuurt deze direct door naar de React UI:

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

Intern roept dit loadLang(newLang) aan (wat de actieve locale van ox_lib wijzigt) en vervolgens changeUiLang, zodat zowel de Lua-kant als de UI gelijktijdig worden geüpdatet.

Een taal toevoegen of bewerken

locales/ staat in escrow_ignore, dus je kunt de JSON direct bewerken. Om een taal toe te voegen, kopieer je en.json, vertaal je de waarden en sla je het op als <code>.json (bijv. sv.json). Stel vervolgens ox:locale of bupa-chat:locale in op die code.

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() (en ox_lib locale()) retourneert de sleutel zelf wanneer een vertaling ontbreekt. Zorg dat en.json compleet blijft als je referentie, en gebruik %s / %d placeholders voor dynamische waarden (bijv. "Reason: %s").