原文
WPF Localization Guidance 「Rick StrahlとMichele Leroux Bustamante(2009年6月)」の和訳です。地域設定の実装の参考にしてください。
関連ファイル
好ましいCultureとResourceFallback
Preferred Culture and ResourceFallback
あなたは、厳密な方法に従い、あなたは、どのように、カルチャ階層構造で動作させるか、そして、あなたが望む地域設定をその言語か、 あなたが計画する必要がある地域設定の作業を行います。一般的に言って、それは、指定されていないカルチャの地域設定に、より効果的です。 このように、de-DE (German in Germany)のための地域設定よりむしろ、de (generic German)のための地域設定で開始することは、 より役に立ちます。それで、その、de-AT (Austrian German)のユーザーのためのリソースの代替は、開始することができます。de-CH (Swiss German)等々。 多くの地域設定を行う状況では、地域指定のない言語で地域設定すれば十分です。 あなたは、顧客を満足させるのに必要なように、続いて、具体的なカルチャのための地域設定を処理することができます。
Resxリソースは、それぞれのリソース・キーが、リソース代替の後に続くため、段階的に地域設定することが簡単です。 与えられた具体的なカルチャのためのリソースが、欠落している場合、それは、場所の指定されていないカルチャに戻します。 そして、最後に、(中心となるアセンブリと関連する)既定のカルチャに値を返します。 これは、あなたが、de, fr, esのような、一般的なカルチャを地域設定できることを示しています。 そして、その次に、de-DE、fr-CA、es-MXのような具体的なカルチャのための、カスタマイズする必要があるリソースだけを追加します。 一般的に、いくつかのリソースだけは、具体的なカルチャで変換する必要があります。 それぞれの地域の指定されていないカルチャは、すべてのカルチャ・キーが含まれています。 しかし、代替のための既定のカルチャは、ランタイムでの例外を回避するために、すべてキーが含まれている必要があります。
BAMLリソースは、地域設定されたXAMLドキュメント全体が含まれています。 コンテンツのように、リソース代替は、ドキュメントに適用されます。 それぞれのリソース・キーのためのよりも、むしろ全体として、それぞれのBAMLドキュメントは、すべてのリソースを地域設定する必要があります。 -事実上、全体のBAMLドキュメントのためのにだけで、それぞれのリソース値のための、リソース代替が存在しません。 カルチャの間には、たとえ、1つの一語の違いがあっても、全体のBAMLバイナリの新しいコピーを作成する必要があります。 これは、BAMLコンテンツを地域設定する処理が、少ない反復でうまく動作することを示しています。 アプリケーションが完成すると、わずかな変更を要求します。 ResxとXAMLの地域設定のための正確な処理は、この文の後のセクションで説明します。
ユーザーの好ましいカルチャ設定に関連した、もう1つの考えることは、カルチャ書式設定への影響です。 ユーザーが好ましいカルチャを選択するとき、あなたは、指定しない、あるいは、具体的なカルチャの選択を可能にする可能性があります。 連したコードは、あなたが、起動時にWPFアプリケーションで、CultureとUICulture設定を設定するために使用するものです。 覚えておいてください。しかしながら、Cultureは、常に地域設定に基づいた書式設定から、具体的なカルチャを設定する必要があります。 あなたは、CurrentCultureプロパティにCultureInfo("de-DE")のインスタンスを割り当てることができます、 しかし、CultureInfo("de")を作成すると、例外が発生します。 ユーザーが指定していないカルチャを選択する場合には、あなたは、指定されていないないカルチャからCurrentCultureに割り当てるために、 次のように、静的メソッドCreateSpecificCulture()を使用する必要があります。:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");