--- Localization
Lokalisasi
BUPA Chat dapat diterjemahkan sepenuhnya. Terjemahan berupa file JSON biasa di dalam folder locales/, yang dimuat oleh ox_lib (manifest mendeklarasikan ox_lib 'locale'), dan dibaca melalui wrapper t().
Bahasa yang Tersedia
locales/*.json — sepuluh bahasa yang langsung tersedia:
| Kode | Bahasa | Kode | Bahasa |
|---|---|---|---|
en |
Inggris | nl |
Belanda |
tr |
Turki | pl |
Polandia |
de |
Jerman | pt |
Portugis |
es |
Spanyol | ru |
Rusia |
fr |
Prancis | it |
Italia |
Setiap teks UI, label kategori, placeholder, deskripsi emote, dan pesan sistem diambil dari file-file ini.
Memilih Bahasa
Bahasa aktif diatur di shared/config/core.lua:
config.lang = GetConvar("bupa-chat:locale", GetConvar("ox:locale", "en"))Urutan prioritas:
bupa-chat:locale— pengesampingan khusus per resource hanya untuk BUPA Chat.ox:locale— locale ox_lib bersama yang digunakan di seluruh server Anda.en— Bahasa cadangan (Inggris) jika keduanya tidak disetel.
setr ox:locale "tr" # bahasa untuk seluruh server
setr bupa-chat:locale "en" # opsional: paksa bahasa Inggris khusus untuk chatPenggantian Waktu Nyata — bupa:changeLanguage
Anda dapat mengubah bahasa pemain secara langsung, per sesi, tanpa perlu restart. Picu event klien dengan kode bahasa; BUPA Chat akan memuat ulang locale tersebut melalui ox_lib dan langsung meneruskannya ke React UI:
TriggerEvent("bupa:changeLanguage", "de")Secara internal, ini memanggil loadLang(newLang) (yang mengubah locale aktif ox_lib) lalu changeUiLang, sehingga sisi Lua dan UI diperbarui secara bersamaan.
Menambah atau Mengedit Bahasa
locales/ masuk dalam escrow_ignore, sehingga Anda dapat mengedit file JSON secara langsung. Untuk menambahkan bahasa, salin en.json, terjemahkan nilainya, lalu simpan sebagai <code>.json (misalnya sv.json), kemudian arahkan ox:locale atau bupa-chat:locale ke kode tersebut.
{
"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() (dan locale() dari ox_lib) akan mengembalikan key itu sendiri jika terjemahannya tidak ditemukan. Tetap lengkapi en.json sebagai referensi Anda, dan gunakan placeholder %s / %d untuk nilai dinamis (misalnya "Reason: %s").