Skip to content
Copied!
published on 2026-06-08

ローカライゼーション

Settings (v0.2.2)

Settings は 16 言語の UI 文字列を組み込んでおり,スキーマ内の文字列も同じ仕組みでローカライズできます。

lang

動作
"os"親アプリの lang_key → OS の言語設定の順で解決します
BCP-47 コード言語を固定します(例: "ja", "de")。組み込み翻訳のない言語コードは英語にフォールバックします

lang は,組み込みの UI 翻訳とスキーマ内ローカライズ表の両方の表示言語に効きます。対応言語コードの一覧は下記の組み込み 16 言語を参照してください。

lang_key

toml
lang     = "os"
lang_key = "display.language"

lang = "os" のとき,lang_key で指定した設定キーを親アプリの設定ファイルから読み取り,Settings の UI 言語をそれに合わせます。Settings は親アプリの設定を編集するためのツールなので,親アプリ自身の言語設定に追従するのが自然な挙動です。lang_key で値が得られない,または対応する言語が無い場合は,OS の言語設定にフォールバックします。

[ui_strings]

組み込み UI 文字列(OK・Cancel・Browse… など)を,スキーマから個別に上書きできます。キーの一覧はコードベースの UiStringssettings-schema/src/lib.rs)を参照してください。代表的なものを挙げると:

キー用途
ok / cancel / apply保存バーのボタン
browseファイル選択ボタン
add / delete / delete_confirmサブセクションの追加・削除
reload / keep_editing / file_changed外部変更の競合ダイアログ
window_titleウィンドウタイトルバーの文字列
toml
[ui_strings]
window_title = "My App Settings"

delete_confirm は削除確認ダイアログのテンプレート文字列で,{} が削除対象の名前に置き換えられます(例: "Delete \"{}\"?")。

オーバーライドを指定しなかったキーは,組み込みの翻訳がそのまま使われます。

スキーマ文字列のローカライズ

タブやフィールドの label をはじめとするユーザー向け文字列は,ベア文字列(全言語共通)か,言語コードをキーとするインラインテーブルのどちらでも記述できます。

toml
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] を使えば,組み込み翻訳が無い言語コードでも全文字列を独自に提供できます。