はじめに
WPFでアプリケーションをローカライズするのは簡単な作業ではありません。 ほとんどすべてのWPFローカライズチュートリアルには、ローカライズされたアプリケーションを実装するための詳細と手動の手順が豊富にあります。
既存のソリューション
Microsoftローカライズガイドに記載されているLocBamlユーティリティを使用したローカライズには多くの利点がありますが、サポートするのは困難です。 Andrévan heerwaardeは、カスタマイズされたビルドステップを使用してこのソリューションを簡素化することを提案した記事で、翻訳されたテキストフラグメントをマージするユーティリティも作成しました。 ただし、彼の記事には多くの手動の手順もあります。
Visual Studioプロジェクトテンプレート
多言語WPFアプリケーションでの作業を開始するには、作成したローカライズされたアプリケーションテンプレートを使用することをお勧めします。 このテンプレートを使用して作成されたプロジェクトには、ローカリゼーションに必要なすべてのユーティリティが既に含まれており、開発プロセス中にローカリゼーション手順を可能な限り自動化します。
アプリケーションの開発中に、ローカライズを気にせずに新しいXAMLファイルを追加します。 変更が完了したら、プロジェクトをビルドします。
アセンブリの前に構成されたステップは、msbuild / t:updateuid [プロジェクト名] .csprojを呼び出します。 この手順により、テキスト要素を含む各要素にx:Uidが自動的に追加されます。
その後、アセンブリプロセス中にLocBamlが自動的に起動され、XAMLファイル内のすべてのテキスト要素が検索され、テキスト要素を含むCSVファイルが作成されます。
次のステップでは、Andrévan heerwaardeからMergeLocBamlCsvユーティリティを起動します。 その結果、以前の翻訳済みフラグメントは新しいフラグメントとマージされます。 StripLocBamlCsvユーティリティは、CSVファイルから未使用のアイテムを切り取ります。
手動で行う必要があるのは、新しい言語と実際の翻訳自体を追加することだけです。
新しい言語を追加する
プロジェクトに新しい言語を追加するには、次を行う必要があります。
中立言語のローカライズを新しいCSVファイルにコピーする
コピー翻訳\ Translate.csv翻訳\ Translate.ru-RU.csv
テキストエディターでプロジェクトファイルを開きます。
< LocBamlCsv Include ="Translation\Translate.de-DE.csv" >
< Culture > de-DE </ Culture >
</ LocBamlCsv >
新しい言語を追加します
< LocBamlCsv Include ="Translation\Translate.ru-RU.csv" >
< Culture > ru-RU </ Culture >
</ LocBamlCsv >
その後、Visual Studioでプロジェクトを再度開く必要があります。プロジェクトが既に開かれている場合、開発環境は、変更を反映するためにプロジェクトを再度開くかどうかを尋ね、「はい」と答えます。
間違いを犯さなかった場合、翻訳フォルダーで新しく開かれたプロジェクトに新しいファイルTranslate.ru-RU.csvが表示されます
アセンブリを実行して翻訳ファイルを更新した後、新しいファイルを開いて翻訳を開始できます。