原文
WPF Localization Guidance 「Rick StrahlとMichele Leroux Bustamante(2009年6月)」の和訳です。地域設定の実装の参考にしてください。
関連ファイル
訳文
あなたが、ありふれたWPFアプリケーション以外の何かを持っている場合、Resxファイル内のリソースが多くなる可能性があります。 あなたは、この方法で、これらのリソースを構成することについて、注意深く考えたくなるでしょう。 それは、あなたが、簡単に、編集とアクセスできる、リソースを見つけることができます。 あなたが、WindowsフォームとASP.NETで地域設定を使用している場合、あなたは、おそらくローカルとグローバル・リソースの概念を使い慣れています。 一般的に、その場所のResources.resxの中に、1セットのグローバル・リソース、 そして、その次に、アプリケーションのドキュメントにつき、1つのローカル・リソースのセットがあります。
先程、述べたように、WPFは、Windows FormsやASP.NETのどちらのとも違い、どんな組込みの自動的なリソース・マッピングの仕組みも提供しません。 そして、このように、どのように、リソースを格納し、マッピングするか決めるのは、あなた次第です。 グローバル/ローカル・リソース・モデルに準拠するのは、良い考えです。 それにもかかわらず、それは、IDEで直接サポートされません。 それは、多くのリソースを処理するために、実証済みの構成体系を提供します。 この方法を使用して、あなたは、それぞれのXAMLドキュメントのために、ローカルResxファイルを作成します。それは、そのドキュメントに特別な、リソース・キーを格納します。 これは、即時の要素プロパティの割当てだけでなく、メッセージのリソースが含まれている必要があります。 それは、それぞれのドキュメントのために、特別です。
要約すると、『ローカル』リソースを作成すると、含まれています。:
例えば、次に示す例は、ResxResourceAdministration.xamlと呼ばれるドキュメントが含まれています。 そして、LocalResources\ResxResourceAdministrationRes.resx内のリソース・ファイルに、リソースのドイツ語版を加えます。 Figure 18は、複数のウィンドウが存在するとき、プロジェクトのレイアウトを具体的に説明します。:
FIGURE 18:
Windows(黄色)に関する、『グローバル』リソース(赤)と『ローカル』リソース(青)が使用されます。
ドキュメントごとにリソースを分離すると、それぞれのリソース・セットは、 すべてリソースが含まれる1つの巨大なリソースファイルと比較して、扱いやすいリソースの数を保ちます。 それぞれのローカル・リソースのファイル名のRes接尾辞を使用することで、それらが関係するドキュメントの名前と一致する、 リソースとドキュメントが同じクラス名を生成しないように、名前の衝突を回避します。 これは、コードの中で名前空間を指定することなく、あなたが、厳格に型指定されたリソースにアクセスできることを保証します。 そして、ドキュメントのように、あなたが、同じフォルダでリソースファイルを作成することが発生する場合、 Visual Studioは、ドキュメントとリソースのために、正確に同じクラス名を生成しません。 それは、同様に、乱雑を取り除くために、別々のフォルダにローカル・リソースを配置するのを助けます。 その、複数のリソースファイルは、プロジェクトにツリーに導入されます。
ドキュメントのリソースに結合するとき、ここで、マークアップは、『ローカル』と『グローバル』リソース文字列から、 厳格に型指定されたリソースに、いくつかのラベルが結合したように見えます。:
<Window x:Class="ResxResourceAdministration.LocalizationInfo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:props="clr-namespace:ResxResourceAdministration.Properties"
xmlns:res="clr-namespace: ResxResourceAdministration.LocalResources"
Title="AddDialog" Height="300" Width="300">
<Window.Resources>
<StackPanel Margin="10">
<Label content="{x:Static res:ResxResources.lblHelloWorld.Text}"
x:Name="lblHelloWorld" Margin="5" />
<Label content="{x:Static props:Resources.Today}" Margin="5"/>
</StackPanel>
</Window>
でも、これの全ては、選択可能です。 上記は、単純に、あなたのプロジェクトで、あなたのリソースを構成することのために、あなたに、いくつかのアイデアを与えるヒントです。 思い通りに、あなたのリソース・ファイルを配置してください。 それは、あなたと、あなたの地域設定作業の流れに意味があります。