これを使おうとしました。ライセンス情報がよくわかりませんでした。対応状況(最後の一文)も気になりました。RadioButton.ToolTip良いコンセプトのパッケージですが、対応するコントロール・属性がかなり少ないです。ソースコードがGitHubに公開されていれば、追加対応してもよいのですが公開されていません。このパッケージの利用はあきらめるしかないです。dictionary)を使う方法です。大まかな手順は、UIをXAMLで構成する一つのStringResource.xamlファイルに1言語の文字列リソースを定義する。キー名は任意の形式です対応するUI言語毎のStringResource.xamlファイルを用意するStringResource.xamlを適切なフォルダ構成または適切な名前で配置するローカライズしたい属性をStaticResourceまたはDynamicResourceで参照するです。XAMLには、ResourceDictionaryというタグがあります。このタグのコンテンツには、オブジェクトとオブジェクトのキーの一覧を定義することができます。ここに文字列を格納し、コントロールで側ではそれをStaticResourceまたはDynamicResoruceでオブジェクトキーを使って参照する方法です。言葉の説明よりXAMLコードを見たほうがわかりやすいので例を記載します。Buttonコントロールをローカライズしたいとき以下のように設定します。buttonCreateContent}"/>文字列を定義する側は以下のようにします。UI</sys:String></ResourceDictionary>現在のUI言語に合わせて、読み込むResourceDirectoryを切り替える必要があります。以下のようなコードで読み込みできます。固定値ではなく、GetUserPreferredUILanguages()などから取得し、適切な言語を選択するのがよいです。StudioでC#プロジェクトを作成した時、プロジェクトに存在するResources.resxファイルを使う方法です。私も最終的にこの方法を使いました。大まかな手順は、UIをXAMLで構成する一つのResources.resxファイルに1言語の文字列リソースを定義する。キー名は任意の形式です対応するUI言語毎のResources.resxファイルを用意するResources.resxを適切なフォルダ構成、ファイル名で配置するローカライズしたい属性をBindingまたはx:Staticを使用して参照するです。Resources.resxファイルを対応するUI言語の数だけ用意します。これを適切なフォルダ構成、ファイル名で配置することにより言語切り替えは自動的に行われます。コントロールで側ではそれをBindingまたはx:Staticで参照する方法です。言葉の説明よりXAMLコードを見たほうがわかりやすいので例を記載します。この方法では、例えばButtonコントロールをローカライズしたいときXAMLファイル上は以下のようにローカライズ文字列を参照します。resources}}"/>(別の場所でresourcesのオブジェクトの定義が必要です)二つの方法の違いですが、前者の方法の場合は、オブジェクトのプロパティを直接参照しており、コンパイル時に名前解決がされるので、名前などが間違っていた場合、コンパイル時に検出されます。Dialog)が使えるのが良い点でもあります。存在するインスタンスやプロパティをダイアログ上で選んで設定することができます。文字列を参照するのにどちらの方法を使うかですが好きなほうを使ってください。後者の方法を用いた場合、アプリの起動時にXAMLのパースで例外が発生することがあるようです。わかりませんがApp.xaml.csなどのファイルを変更(改行を追加して削除(実質的には変更なし)などの変更でよいです)してコンパイルしなおすと回復するようです。csファイルを変更しても回復しない場合は場合は、前者の方法に切り替えてみてください。Binding作成ダイアログを使うことはありません。間違いがあった時にアプリの実行時ではなく、コンパイル時にエラーとして指摘してくれるほうが嬉しいので、前者を好んで使います。ローカライズの文字列はResources.resxファイルに設定します。Resources.resxファイルの名前のところは、コントロールで参照した名前と同じものを指定します。上記のButtonコントールの場合は、以下のような設定をします。UIこのようにすることで、アプリの実行時にContent属性とFontFamily属性がResources.resxで設定したものに置き換わります。表示する文字列だけでなく、フォント名などもUI言語ごとに置き換えることができます。結局、私はこの方法を使いました。Resources.resxを使う方法の具体的手順では、具体的な手順を詳細に説明します。Framework)プロジェクトを作成し、メインウィンドウにボタンを二つほど追加します。このボタンを多言語化してみます。WPFアプリプロジェクト-ローカライズ前プロジェクト作成直後からResources.resxファイルがあります。これにベースとなる言語の文字列を定義します。多言語化する場合は、ベースとする言語は通常は英語にします。このベースとする言語は、対応しているUI言語がない場合にも使用されるからです。英語と日本語のみUI言語を用意しているアプリをドイツ語環境で起動したとき、対応するUI言語がないのでベースとなるUI言語で表示されます。このとき、日本語で表示されたら欧州人はほとんどの場合理解できません。そのため、ベースとするUI言語は、国際言語である英語にします。そのため、追加のResources.resxファイルは日本語用を追加します。追加するファイルの名前は、言語コードを追加して、Resources.ja.resxとします。言語コードは、日本語の場合はjaもしくはja-JPとなりますが、ここでは、jaとします。元からあるベース言語(英語)のResources.resxの設定のうちアクセス修飾子をInternalからPublicに変更します。サンプルとして3つの文字列を追加しています。WPFアプリプロジェクト-ローカライズ後(英語文字列)次に、日本語用のResources.ja.resxを追加します。このファイルの設定のアクセス修飾子は「コード生成なし」のままでよいです。サンプルとして3つの文字列を日本語化して追加しています。WPFアプリプロジェクト-ローカライズ後(日本語文字列)もし、コントロールの文字列の設定をBinding/StaticResourceを使って行うならApp.xamlにインスタンスを定義します。名前空間の定義も追加します。WPFアプリプロジェクト-ローカライズ後(app.xaml)コントロールでの文字列リソースの参照は、以下の図のように行います。⇒(赤)は、x:Staticで参照する場合の例です。名前空間の定義も追加しています。⇒(青)は、Binding/StaticResoruceで参照する場合の例です。WPFアプリプロジェクト-ローカライズ後これでWPFアプリのローカライズ(日本語・英語の両対応)は完了です。実際にアプリをビルドして、実行してみました。日本語環境での例です。「設定」の「地域と言語」で優先言語を日本語に変更すると、アプリも日本語で表示されます。次に英語環境での例です。「設定」の「地域と言語」で優先言語を英語に変更すると、アプリも英語で表示されます。最後にドイツ語環境での例です。「設定」の「地域と言語」で優先言語をドイツ語に変更すると、アプリは対応していないので、フォールバックとしてベース言語である英語で表示されます。言語設定-ドイツ語優先WPFアプリ実行例-ドイツ語3つの言語を試してみましたが、どれも想定通りの動きをしています。WPFアプリのローカライズの例でした。21:27遅ればせながら、本日、こちらのページで紹介していただいていることを教えてもらいましたので、NuGetパッケージを更新・公開させていただきました。