ローカライゼーション
Settings (v0.2.2)
Settings は 16 言語の UI 文字列を組み込んでおり,スキーマ内の文字列も同じ仕組みでローカライズできます。
lang
| 値 | 動作 |
|---|---|
"os" | 親アプリの lang_key → OS の言語設定の順で解決します |
| BCP-47 コード | 言語を固定します(例: "ja", "de")。組み込み翻訳のない言語コードは英語にフォールバックします |
lang は,組み込みの UI 翻訳とスキーマ内ローカライズ表の両方の表示言語に効きます。対応言語コードの一覧は下記の組み込み 16 言語を参照してください。
lang_key
lang = "os"
lang_key = "display.language"lang = "os" のとき,lang_key で指定した設定キーを親アプリの設定ファイルから読み取り,Settings の UI 言語をそれに合わせます。Settings は親アプリの設定を編集するためのツールなので,親アプリ自身の言語設定に追従するのが自然な挙動です。lang_key で値が得られない,または対応する言語が無い場合は,OS の言語設定にフォールバックします。
[ui_strings]
組み込み UI 文字列(OK・Cancel・Browse… など)を,スキーマから個別に上書きできます。キーの一覧はコードベースの UiStrings(settings-schema/src/lib.rs)を参照してください。代表的なものを挙げると:
| キー | 用途 |
|---|---|
ok / cancel / apply | 保存バーのボタン |
browse | ファイル選択ボタン |
add / delete / delete_confirm | サブセクションの追加・削除 |
reload / keep_editing / file_changed | 外部変更の競合ダイアログ |
window_title | ウィンドウタイトルバーの文字列 |
[ui_strings]
window_title = "My App Settings"delete_confirm は削除確認ダイアログのテンプレート文字列で,{} が削除対象の名前に置き換えられます(例: "Delete \"{}\"?")。
オーバーライドを指定しなかったキーは,組み込みの翻訳がそのまま使われます。
スキーマ文字列のローカライズ
タブやフィールドの label をはじめとするユーザー向け文字列は,ベア文字列(全言語共通)か,言語コードをキーとするインラインテーブルのどちらでも記述できます。
label = "Name"
label = { en = "Name", ja = "名前" }ローカライズ可能なフィールド: label, hint, hint_direct, hint_env, sublabel, file_filter, key_label, value_label,および制約・検証の message など。
ローカライズ不可なフィールド: options, options_from, suffix, id, key など,識別子や設定ファイルへの保存値を兼ねる文字列。これらは選択した言語に関わらず同じ値が使われます。
組み込み 16 言語
| コード | 言語 |
|---|---|
ar | アラビア語 |
zh | 中国語(普通話) |
de | ドイツ語 |
en | 英語 |
fr | フランス語 |
hi | ヒンディー語 |
it | イタリア語 |
ja | 日本語 |
ko | 韓国語 |
nl | オランダ語 |
pt | ポルトガル語 |
ru | ロシア語 |
es | スペイン語 |
sv | スウェーデン語 |
tr | トルコ語 |
vi | ベトナム語 |
lang = "os" で OS 言語を判定する際は,主言語サブタグ("ja-JP" の ja の部分)の完全一致で判定されます。一覧にない言語コードは英語にフォールバックします。[ui_strings] を使えば,組み込み翻訳が無い言語コードでも全文字列を独自に提供できます。