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

LocBaml-心臓の弱い人向けではありません

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

原文

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

関連ファイル

LocBaml-心臓の弱い人向けではありません

LocBaml - Not for the faint of heart

LocBamlの地域設定方法は、心臓を気絶させるためにあるわけではありません。 事実、あなたは、Microsoftから独立した、サポートされていないツールをダウンロードし、それをコンパイルし、 それを、あなたの出力フォルダへコピーし、そして、その次に、手動で実行されたいくつかのコマンドライン・ツール、 そして、ビルドプロセスに、それらを統合する必要があるのは、特に気力をくじきます。 あなたが、ちょうど地域設定を始めたばかりであれば、CSVファイルの地域設定は、同様に、きわめて気難しいです。 そのファイルは、簡単に壊されて、使えなくなることがあります。 必ず、あなたは、頻繁にバックアップを作成するようにしてください。 あなたが、地域設定している間に元に戻すことができます。

ここに、LocBamlを使用する際の強みと弱みについての簡単な要約があります。

LocBamlの長所は以下のとおりです。:

ページに地域設定情報を追加するための特別な要件はありません。

発者にとって、ドキュメントに埋め込む特別なマークアップもリソースマッピング構文もないので、BAMLの地域設定は素晴らしいです。 開発者は、単純に、それらの既定のカルチャにおけるページをレイアウトすることができます。 そして、それぞれのページのための地域設定の問題についての心配はありません。 これは、開発工程から地域設定工程をほとんど完全に切り離すため、LocBamlの地域設定は、簡単で大きな利点があります。

実行時に効果的です

地域設定されたBAMLの読込は、実行時に、きわめて効率的です。 なぜなら、WPFは、全ての実体のそれぞれの個々の値を調べて、結合することなく、それぞれのBAMLドキュメントを読み込みます。

かなり簡単な地域設定

あなたが、マークアップ・テキストを編集するために、CSVエディタや普通のテキストエディターを使用するかどうかに関係なく、地域設定の処理は、比較的簡単です。 なぜなら、あなたは、テキスト・ドキュメントの中のテキストを変更しています。 そして、あなたは、すばやく、地域設定可能な値と地域設定したそれらのリストを、下に進むことができます。

LocBamlの短所は、次のとおりです。:

ツールがサポートされていない

BAML地域設定のための第一のツールは、LocBamlです。そして、このツールは、サンプル・アプリケーションです。 それは、WPFが公開されたときから存在し、その後更新されていません。 このツールが将来改良されるかどうかについてや、追加のツールが、リソースの編集と同期を容易にするために提供されるかどうかの情報が、ずっと、ありません。

CSVファイルフォーマットをエクスポートする

LocBamlは、CSVファイルをエクスポートします。それは、直接、編集するのが困難なフォーマットです。 CSVファイルを地域設定するのは、実際に、現実的ではありません。 それで、可能性がありそうな、ほとんどのdevelopers/localizersは、CSVファイルのある種の変換に直面し、より編集に適したなんらかの他のフォーマットを設定します。 また、CSVフォーマットは不安定です。-1つははコンマの置き忘れ、そして、あなたのファイルは壊れます。 LocBamlの出力フォーマットは、同様に、UTF-8でエンコードされます。保存するとき、多くのCSVツール( Excelが含まれる)は維持しません。 Visual Studioで開く別の手順は、カスタム・エンコーディングを適用することが必要です。

LocBamlは、一方通行のエクスポートです。

あなたが、エクスポートするとき、LocBamlは、常に、新しいリソース・ファイルを作成します。 それで、あなたが、一度、LocBamlに実行し、英語をドイツ語に翻訳する場合、 続いて、あなたのアプリケーションを更新し、変更や新しい要素を追加します。 これらの変更を、あなたが作成した、すでに変換されたCSVファイルに、同期させるための簡単な方法がありません。 あなたは、手動で、すべての更新の履歴を追跡する必要があります。 そして、翻訳されたCSVファイルにそれらをマッピングし、あるいは、最初からやり直します。

CSVファイルは、無関係なレイアウト情報が、たくさんの含まれています。

地域設定可能な文字列に加えて、CSVエクスポートは、地域設定ドキュメント内のXAMLドキュメントから、多くのレイアウト・プロパティが含まれています。 地域設定されたCSVドキュメントでUIの変更を作成するための、なんらかの柔軟性を提供している間、 これは、同様に、変更が、既定のカルチャのXAMLアプリケーションで行われたとき、これらの変更をバックアップに同期させることは、きわめて困難です。 たとえ、値が上書きされなくても、XAMLの指定されていないカルチャで作成される変更が、地域設定されたバーションで表示されないために、それは、可能です。

サテライト・アセンブリ要件は、Resxリソースではうまくいきません。

さらに、既定のカルチャのために、地域設定が有効にされると、地域設定されたBAMLリソースは、サテライト・アセンブリを使い切るために必要です。 あなたが、BAMLとResxリソースを混在すると、この必要条件は強制されます。あなたが、具体的な両方のカルチャを持っている場合、 指定されていないリソースのResxはファイルは、変化しません。(すなわち、同じ内容があるResources.resxとResources.en-US.resx )厳格に型指定されたリソースとResxリソースの両方を取得するために、それは、実行時に、アプリケーションで動作します。 さらに、LocBamlのエクスポートは、別々のビルドの手順を使用している、ResxとBAMLリソースを結合する必要があります。

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

Home PC C# Illustration

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