Home > C# > 目的別資料 > 地域設定

埋込れた地域設定リソースを、サテライト・アセンブリに戻す

WPFのための地域設定の手引き Localization Guidance for WPF

原文

WPF Localization Guidance 「Rick StrahlとMichele Leroux Bustamante(2009年6月)」の和訳です。
地域設定の実装の参考にしてください。

関連ファイル

埋込れた地域設定リソースを、サテライト・アセンブリに戻す

Embedding Localized Resources back into Satellite Assemblies

一旦、あなたが、1つ以上の具体的なカルチャのために、CSVファイルでリソースを地域設定する場合、 次の手順は、サテライト・リソース・アセンブリにそれらのリソースを結合することです。 LocBamlは、地域設定されたCSVファイルから、コンパイルされた.resourcesファイルや 完全なリソース・サテライト・アセンブリを作成する/generateスイッチを持っています。 それは、ルート・アセンブリを見ます。(先に説明した、en-USサテライト・アセンブリのような) そして、CSVファイル内に見つかったそれらと、x:Uid値を比較します。CSV内で、キーが欠落している場合、 それは、CSVで見つかるどんなキーでも書き出すか、基底アセンブリから値を使用します。

CSVリソースを結合するプロセスは、あなただけがBAMLリソースや両方のBAMLとResxリソースの両方を持っているかどうかに関係なく依存しています。 あなただけが、BAMLリソースを持っている場合、LocBamlは、直接、最終的なサテライト・アセンブリを生成することができます。 あなたの混合したBAMLとResx LocBamlが、.resourcesファイルを作成することができる場合、それは、別々に組み合わせる必要があります。 そして、.NET Frameworkアセンブリ・リンカを使用して、Resxリソースに接続します。 言うまでもなく、前者は、より簡単な処理です。アプリケーションをコンパイルして起動します。 カルチャを指定していないサテライト・アセンブリが作成されるように、あなたが、地域設定されたリソースでCSVファイルを作成した場合、 BAMLリソースだけの状況で開始しましょう。それは、直接、リソース・アセンブリをつくるために、LocBamlの/generateを使用します。 次の例では、あなたは、既定の言語リソースがen-USであると想定することができます。 そして、私たちは、指定されていないドイツ・カルチャ(de)に地域設定します。

あなたの地域設定されたCSVから、ドイツのリソース・アセンブリを生成するには、あなたは、このコマンド・ラインを使用することができます。

LocBaml.exe /generate en-US/WpfLocalizationLocBaml.resources.dll 
/trans:..\..\Res\de.csv /out:de /culture:de

これは、地域設定されたBAMLリソースと一緒にde\WpfLocalizationLocBaml.resources.dllアセンブリを生成します。 LocBamlは、中心となるアセンブリが存在する、フォルダから実行される必要があることを忘れないでください。 それは、一般的にbin\Debug、あるいは、bin\Releaseにあるでしょう。 あなたは、既定のリソース・アセンブリと、あなたの地域設定されたCSVファイルを指定します。 それは、この例では、プロジェクト・ルートの下のRes\de.csvフォルダで生き続けます。 あなたは、同様に、適切なサテライト・アセンブリ・パスと一致している出力フォルダを指定します(この場合、bin\Debug\de )、 そして、カルチャは、アセンブリのために設定されます。

既定のリソース・アセンブリは、常に、利用できるすべてのリソースを格納しています。 そして、それで、地域設定されたCSVファイルのどんな欠落したリソースも、 まだ、既定の値を使用しているBAMLドキュメントに埋め込まれているように、リソース・ベースラインとしての機能を果たします。 結合処理は、de\WpfLocailzationBaml.resources.dllサテライト・アセンブリを作成します。

それは、一つのリソース・セットと一緒に、その中に含まれる全てのBAMLリソースが含まれています。 目先がきく読者は、この処理が、それぞれのリソースが、見つからない場合、 指定されていないリソースに、直接、進み、標準リソース代替システムを回避することに、おそらく気づいています。 この問題を回避する1つの方法は、エクスポートすることです。 そして、代わりに既定のカルチャのそれらの指定されていないカルチャから、 具体的なカルチャ(de-DEやfr-CA)を生成します。LocBamlのための、あなたのテンプレート・アセンブリのように、 あなたが、de-ATリソースを生成するとき、あなたは、de\WpfLocalizationLocBaml.resources.dllを使用します。 エクスポートと生成するとき、リソース代替システムの方法は、具体的でないリソースを取り上げます。 de-ATで、リソースが欠落しているとき、しかし、これは、親のカルチャが、すでに地域設定されていることを必要とします。 そして、リソース・コンパイルは、特定の順序で行われます。LocBamlの処理を複雑にする、もう1つの手順です。

あなたが、複数のカルチャを持っている場合、あなたは、地域設定しています。あなたは、それらのそれぞれで、この処理を繰り返す必要があります。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」