Localization
Localization
BUPA Chat पूरी तरह से अनुवाद योग्य है। अनुवाद locales/ के अंतर्गत सादी JSON फ़ाइलें हैं, जिन्हें ox_lib द्वारा लोड किया जाता है (मेनिफेस्ट ox_lib 'locale' घोषित करता है), और t() रैपर के माध्यम से पढ़ा जाता है।
Shipped languages
locales/*.json — दस भाषाएं पहले से उपलब्ध हैं:
| Code | Language | Code | Language |
|---|---|---|---|
en |
English | nl |
Dutch |
tr |
Turkish | pl |
Polish |
de |
German | pt |
Portuguese |
es |
Spanish | ru |
Russian |
fr |
French | it |
Italian |
प्रत्येक UI स्ट्रिंग, श्रेणी लेबल, प्लेसहोल्डर, इमोट विवरण और सिस्टम संदेश इन फ़ाइलों से हल होते हैं।
Selecting the language
सक्रिय भाषा shared/config/core.lua में हल की जाती है:
config.lang = GetConvar("bupa-chat:locale", GetConvar("ox:locale", "en"))निर्णय क्रम (Resolution order):
bupa-chat:locale— केवल BUPA Chat के लिए प्रति-संसाधन (per-resource) ओवरराइड।ox:locale— आपके सर्वर पर उपयोग होने वाला साझा ox_lib लोकेल।en— अंग्रेजी फॉलबैक यदि इनमें से कोई भी सेट न हो।
setr ox:locale "tr" # server-wide language
setr bupa-chat:locale "en" # optional: force English for chat onlyRuntime switching — bupa:changeLanguage
आप रीस्टार्ट के बिना, प्रति सत्र (per session), किसी खिलाड़ी की भाषा को लाइव बदल सकते हैं। भाषा कोड के साथ क्लाइंट इवेंट ट्रिगर करें; BUPA Chat ox_lib के माध्यम से उस लोकेल को पुनः लोड करता है और सीधे React UI पर भेजता है:
TriggerEvent("bupa:changeLanguage", "de")आंतरिक रूप से यह loadLang(newLang) (जो ox_lib के सक्रिय लोकेल को स्विच करता है) और फिर changeUiLang को कॉल करता है, ताकि Lua साइड और UI दोनों एक साथ अपडेट हो जाएं।
Adding or editing a language
locales/ फ़ोल्डर escrow_ignore में है, इसलिए आप सीधे JSON को संपादित कर सकते हैं। भाषा जोड़ने के लिए, en.json को कॉपी करें, मानों का अनुवाद करें, और इसे <code>.json (जैसे sv.json) के रूप में सहेजें, फिर ox:locale या bupa-chat:locale को उस कोड पर इंगित करें।
{
"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() (और ox_lib locale()) कुंजी (key) को ही लौटाता है। अपने संदर्भ (reference) के रूप में en.json को पूर्ण रखें, और गतिशील मानों (dynamic values) के लिए %s / %d प्लेसहोल्डर का उपयोग करें (जैसे "Reason: %s")।