Localization
ローカライゼーション
BUPA Chat は完全に翻訳可能です。翻訳は locales/ 配下にある通常の JSON ファイルで、ox_lib によって読み込まれ(マニフェストで ox_lib 'locale' が宣言されています)、t() ラッパーを通じて読み込まれます。
標準搭載されている言語
locales/*.json — すぐに使用できる10ヶ国語:
| コード | 言語 | コード | 言語 |
|---|---|---|---|
en |
英語 | nl |
オランダ語 |
tr |
トルコ語 | pl |
ポーランド語 |
de |
ドイツ語 | pt |
ポルトガル語 |
es |
スペイン語 | ru |
ロシア語 |
fr |
フランス語 | it |
イタリア語 |
すべての UI 文字列、カテゴリラベル、プレースホルダー、エモートの説明、システムメッセージは、これらのファイルから解決されます。
言語の選択
有効な言語は shared/config/core.lua で設定されます:
config.lang = GetConvar("bupa-chat:locale", GetConvar("ox:locale", "en"))解決順序:
bupa-chat:locale— BUPA Chat 専用のリソースごとの上書き設定。ox:locale— サーバー全体で使用される共有 ox_lib ロケール。en— どちらも設定されていない場合の英語フォールバック。
setr ox:locale "tr" # サーバー全体の言語
setr bupa-chat:locale "en" # オプション: チャットのみ英語に強制実行時の切り替え — bupa:changeLanguage
サーバーを再起動することなく、セッションごとにプレイヤーの言語をライブで変更できます。言語コードを指定してクライアントイベントをトリガーすると、BUPA Chat は ox_lib経由でそのロケールを再読み込みし、React UI に直接プッシュします:
TriggerEvent("bupa:changeLanguage", "de")内部的には loadLang(newLang)(ox_lib のアクティブなロケールを切り替えます)を呼び出した後、changeUiLang を呼び出すため、Lua 側と UI の両方が同時に更新されます。
言語の追加または編集
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())はキー自体を返します。基準となる en.json は完全に維持し、動的な値には %s / %d プレースホルダーを使用してください(例: "Reason: %s")。