Skip to content

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 で設定されます:

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

解決順序:

  1. bupa-chat:locale — BUPA Chat 専用のリソースごとの上書き設定。
  2. ox:locale — サーバー全体で使用される共有 ox_lib ロケール。
  3. en — どちらも設定されていない場合の英語フォールバック。
server.cfg
setr ox:locale "tr"          # サーバー全体の言語
setr bupa-chat:locale "en"   # オプション: チャットのみ英語に強制

実行時の切り替え — bupa:changeLanguage

サーバーを再起動することなく、セッションごとにプレイヤーの言語をライブで変更できます。言語コードを指定してクライアントイベントをトリガーすると、BUPA Chat は ox_lib経由でそのロケールを再読み込みし、React UI に直接プッシュします:

client
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 でそのコードを指定します。

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()(および ox_lib の locale())はキー自体を返します。基準となる en.json は完全に維持し、動的な値には %s / %d プレースホルダーを使用してください(例: "Reason: %s")。