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

リソースを地域設定する

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

原文

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

関連ファイル

リソースを地域設定する

Localizing Resources

地域設定で、最も目立って、そして、面倒な処理、そして、この白書の焦点は、リソースの地域設定です。 それが、アプリケーションの静的部分-まずは、テキスト-を変換する処理を参照します。発想は、アプリケーションの静的部分です。

文字列内のラベル、ツールチップ、メニュー・アイテム、ヘッダ、静的メッセージと、どんな他のユーザーインターフェースの内容もこのような方法で格納されます。 それらは、即時にユーザーインターフェースを別々に変換することができます。 一般に受け入られている方法は、リソースのような、関連した構成部分のプロパティを抽出するための仕組みが提供されます。 それで、それらは、それぞれのサポートされた文化のコピーと一緒に、ユーザーインターフェースに格納することができ、別々に地域設定することができます。 リソースは、続いて、現在のUIカルチャに基いて、実行時に、それぞれの構成部分プロパティに適用されます。 この方法の重要な利点は、単一のコードに基づいたアプリケーションに使用されるということです。 そして、新しいカルチャをサポートするための将来の地域設定は、それほどコンパイル済みコードに影響を与えません。

WPFの開発において、2つの中心となる方法が、リソースの地域設定にあります。

:XAMLに基づくものとResxに基づくもの。

XAMLに基づく地域設定は、特定のXAML要素プロパティに、それぞれのリソースを詳細にマッピングするのではなく、 XAMLドキュメントごとにグループ化された地域設定の内容が含まれています。アプリケーションのXAMLドキュメントは、 XAMLで作成されるすべての静的コンテンツのための、基礎となるリソースを記憶する仕組みとして動作します。発想は、 中性言語のためのものです。あなたは、実際に、どんな特別なマークアップや結合もなしで、地域設定のためのXAMLを作成しました。 LocBamlと呼ばれるツールは、続いて、CSVテキストフォーマットにコンパイルされたアプリケーションから、 地域設定可能な静的コンテンツをエクスポートするために使用することができます。エクスポートされたリソースは、 続いて、それぞれの特定のカルチャのために、地域設定することができます。最後に、LocBamlは、 特定のカルチャのサテライト・アセンブリ(またはバイナリ・リソース)に、地域設定されたリソースを結合、そして、コンパイルするために使用することができます。 この方法は、それぞれのサポートされているカルチャのための、コンパイル済みのXAML(BAML)のリソースによる、 純粋に静的な結果です。そこには、それぞれの特定のカルチャのBAMLリソースは、地域設定されたリソース値の全体の設定が含まれています。 その方法は、効果的ですが、完全に静的です。そして、その方法と相互作用するための方法がありません。 そのリソースは、別々に読み込まれます。LocBamlは、ユーティリティ・サンプル・アプリケーションとして、Microsoftによって提供されるコマンドライン・ツールです。 そして、それを使用する処理は、むしろ柔軟性が無く、潜在的にエラーが発生する傾向があります。

Resxに基づいたリソースは、.NET Frameworkアプリケーション地域設定のための伝統的な方法です。 それらは、バイナリ・リソースをコンパイルするXMLに基づいたファイルです。そして、それぞれのリソース・キーによって、アプリケーションにアクセスすることができます。 Visual Studioや、Blendのような他のXAMLデザイナーの具体的なWPFの経験がないですが、Resxのサポートは、.NET FrameworkとVisual Studioに深く組み込まれています。 ResxリソースをXAML要素に結合することは、WPFの結合構文でそれぞれのプロパティに、結合と手動でマッピングリソースを使用することが必要です。 リソースの編集処理は簡単であり、更に、Resxデザイナーと厳格に型指定されたリソースはWPFプロジェクトで利用できます。 Resxリソースのための、公式の説明は、それが、あたりまえのように、XAMLの中にあります。 開発者コミュニティには、XAMLでResxリソースを使用するために利用できる、多くのいろいろな方法があります。 2つの一般的な方法は、厳格に型指定されたリソースやカスタム・マークアップ拡張機能を使用してx:静的結合を使用しています。 Resxリソースは、プロパティに別々にマッピングされるように、BAMLリソースに比べてより粗いです。 しかし、それは同様に、設計時に、リソースを要素プロパティにマッピングするために、もう少し手間がかかります。

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

Home PC C# Illustration

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