原文
WPF Localization Guidance 「Rick StrahlとMichele Leroux Bustamante(2009年6月)」の和訳です。地域設定の実装の参考にしてください。
関連ファイル
あなたのXAMLで、それぞれのUI要素のための独自のUidを生成するために、MsBuildを実行します。
Run MsBuild to generate unique Uid's for each UI element in your XAML
次の手順は、あなたのプロジェクトのすべてのXAML UI要素が、それらと関連するx:Uid属性を確実に持たせます。 これらのx:Uidは、一意のXAMLドキュメントで、地域設定されるそれぞれの要素を識別するために使用されます。 あなたは、あなたが、すでに、あなたのドキュメントで、x:Name属性を持っているとき、 なぜ、Uidを必要とするか、不思議に思うかもしれません。x:Name属性は、 一般的に、すべての要素に割り当てられるわけではありません。 そして、これらの属性は、クラスの背後にあるコードでプロパティを生成します。 名前が、すべての一つのXAML要素で使用される場合、あなたのクラスは、きわめて速く手に負えないほど大きくなるでしょう。 x:Uidの代わりに、あなたのプロジェクトのすべてのXAMLドキュメントで、ツールと一緒にページ上で、 それぞれの要素にUidを生成するために、一意に識別されるそれぞれの要素を別々に使用します。
LocBamlは、地域設定するリソースを抜き出すために、これらの一意的なIDを必要とします。 そして、その次に、それらを同期し、地域設定の後、バックアップします。 地域設定されたコンテンツが元のアセンブリに結合されるとき、結合プロセスは、 地域設定されたCSVコンテンツでそれらにUidと一致する、指定されていないリソース・アセンブリを使用します。 そして、新しい地域設定されたBAMLリソースを書き込むために、2つを結合します。どんな欠落した値も、 あなたが、LocBaml結合プロセス使用して、基底アセンブリから取り出されます。
要素だけが持っている、それらと関連するx:Uidは、LocBamlの構文解析機能でエクスポートされます。そして、 あなたが、これらの属性をXAMLに手動で追加できる間、より簡単な方法があります。: Microsoftは、すべての地域設定可能な要素の上で、あなたのためのIDを生成するために、MsBuildタスクを提供します。
Visual Studioのコマンド・プロンプトを開きます。そして、あなたのプロジェクトの基底フォルダのパスを変更します。 続いて、以下をタイプして、すべてのXAML要素のために、x:Uid属性を生成します。:
msbuild /t:updateuid WpfLocalizationLocBaml.csproj
あなたが、今、XAMLドキュメントのいずれかを開ける場合、あなたは、その各々を見つけ出す必要があります。 そして、すべての要素は、それと関連するx:Uid要素を持っています。:
<MenuItem x:Uid="mnuFile" Header="_File" x:Name="mnuFile">
<MenuItem x:Uid="mnuSave" Header="_Save" x:Name="mnuSave"/>
<MenuItem x:Uid="mnuExit" Header="_Exit" x:Name="mnuExit" />
</MenuItem>
あなたが、要素の上にx:Name属性を持っている場合、IDの生成は、Uidのために、その名前を使用します。 x:Nameが、指定された場合、要素形式に基づくx:Uidが、それぞれの要素名に生成され、インクリメンタル値と一緒に生成されます。:
<MenuItem x:Uid="MenuItem_1" Header="Help">
<MenuItem x:Uid="MenuItem_2" Header="Help Contents" />
<Separator x:Uid="Separator_1" />
<MenuItem x:Uid="MenuItem_3" Header="About" />
</MenuItem>
明らかに、最初の例は、それがエクスポートされたリソース・ファイルで定義可能なリソース名に結び付くように、より良い選択です。 すべての地域設定可能な要素に意味がある名前を与えることは、通常、良い習慣です。 (そして、その結果としてx:Uid )それで、ローカライザは、彼女がどんなプロパティを処理しているかについての手掛かりを持っています。
WpfLocalizationLocBamlプロジェクトフォルダには、MakeUids.batが含まれています。 それは、あなたのために、この作業を実行することができます。 あなたが、新しい構成部分をドキュメントに確実に追加するする時はいつでも、この作業を再再実行する必要があることに注意してください。 その要素は、結局、地域設定可能なので、あなたが、すぐアクセスし、実行することができるバッチファイルを作成します。