ユーザー言語を使用して WPF (保存、開く、印刷…) でダイアログを開きたい。
ユーザー言語を見つけるにはどうすればよいですか? その言語でダイアログを開くにはどうすればよいですか?
メニューとサブメニューは、正しい言語で自動的に表示されます。
e.g. Command = Application.save
サンプルコードをいただければ幸いです。
前もって感謝します。
ユーザー言語を使用して WPF (保存、開く、印刷…) でダイアログを開きたい。
ユーザー言語を見つけるにはどうすればよいですか? その言語でダイアログを開くにはどうすればよいですか?
メニューとサブメニューは、正しい言語で自動的に表示されます。
e.g. Command = Application.save
サンプルコードをいただければ幸いです。
前もって感謝します。
この猫の皮を剥ぐ方法はたくさんあります。あなたとあなたのプロジェクトの要件に合っていると思われるものを見つけてください。私が使用する1つのソリューションを提供します。
ユーザー言語を見つけるにはどうすればよいですか?
マシンは異なるカルチャを持つことができ、各スレッドは独自のカルチャを持つことさえできます。カルチャには、表示言語と日付/数値のフォーマット情報などの両方が含まれます。
System.Globalization.CultureInfo.CurrentCulture;
System.Globalization.CultureInfo.CurrentUICulture
この回答の目的のために、これらのオブジェクトに直接アクセスする必要はありません。
その言語でダイアログを開くにはどうすればよいですか?
リソースファイル(RESX)メソッドを使用してプロジェクトをローカライズします。まず、サポートするカルチャとデフォルトのリソースファイルを作成します。
Resources.resx
Resources.en.resx
Resources.fr.resx
Resoucess.ja.resx
具体的にしたい場合は、完全なカルチャコードを使用してください。
Resources.ja-JP
次に、ローカライズされたすべてのテキストをリソースに追加します。これもデフォルトです。
表示言語がサポートされている言語セットでない場合は、デフォルトが使用されます。
WPFアプリは、Windowsユーザーの表示カルチャを選択して、使用するRESXファイルを選択します。
XAMLのRESXファイルにバインドします。
<TextBlock Text="{x:Static properties:Resources.Owner}"/>
<TextBlock Text="{x:Static properties:Resources.StartDate}" />
<TextBlock Text="{x:Static properties:Resources.EndDate}"/>
ここに、Resources.OwnerのStartDateプロパティとEndDateプロパティに静的にバインドする3つのテキストブロックがあります。propertyキーワードは、プロパティを使用することを指定しているのではなく、アプリケーションのプロパティグループのResourcesオブジェクトを指定しています。
静的バインディングに問題がある場合は、名前空間が正しいことを確認してください。特定のリソースを直接参照しないように注意してください。ResourceManagerは、正しいファイルのロードを処理します。
動的言語切り替えが必要な場合は、Webで入手できる優れたリソースグローバリゼーションチュートリアルをご覧ください。
次の構文を使用して、WPF でユーザー言語を取得できます...
XmlLanguage language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
これがあなたを助けることを願っています..