10

WPF テスト プロジェクト、単一のボタンを含む単一のウィンドウを作成しました。次に、プロジェクトをアンロードし、csproj を次の内容を含むように変更しました<UICulture>en-US</UICulture>。ビルド フォルダーを再構築すると、en-US という名前のサブフォルダーが含まれるようになり、WpfLocalizationTest.resources.dll というファイルが含まれます。ここまでクリア。

次に、Locbaml のソース コードをダウンロードしてビルドしました。(バイナリのダウンロードがどこにも見つかりませんでした。図を参照してください。)

次に、Locbaml.exe を en-US フォルダーにコピーし、次のことを試しました。

locbaml /parse WpfLocalizationTest.resources.dll /out:test.csv

これにより、「ファイルまたはアセンブリ WpfLocalizationTest.resources.dll またはその依存関係の 1 つを読み込めませんでした」というエラーが発生します。不正な形式のプログラムを読み込もうとしました。

obj\x86\Debug フォルダーに、WpfLocalizationTest.g.en-US.resources というファイルがあります。その上で locbaml を実行してみましたが、結果は同じでした。

locbaml はどのように使用することになっていますか? MSDN には、コッカミーのサンプルがたくさんありますが、どれも機能しません。locbaml は、Microsoft が WPF アプリをローカライズしようとしている方法ですか? それとも、彼らは仕事に適したツールを考え出しましたか?

4

3 に答える 3

1

今朝メモをとっただけの更新です。うまくいけば、これはあなたをもう少し前進させるのに役立つでしょう。

プロジェクトがコンパイルされたら、ビルドが生成されたプロジェクトディレクトリにLocBaml.exeをコピーします。私のインスタンスでは、ファイルをE:\ locale_sample \ locale_sample \ obj \ x86\Releaseにコピーしました。

これは、ビルドにbinディレクトリ(telerikコントロールおよびその他のアセンブリ)のすべてのDLLファイルが含まれていなかったという点で注意が必要な部分です。その結果、bin \ release \に移動し、そこからすべてのDLLファイルとリソースファイルをobj \ x86\Releaseディレクトリにコピーしました。上書きするように求められたファイルについては、ファイルサイズまたは作成日に違いがあるかどうかを確認し、違いがない場合は、これらのオブジェクトのコピーをスキップしました。

注: CSVを生成するには、binディレクトリからdllファイルとリソースファイルをコピーして、objディレクトリに配置する必要がありました。この手順を省略すると、CSVファイルは作成されますが、データは入力されません。

必要なファイルをディレクトリにコピーしたら、Releaseディレクトリ内にある.resourceファイルを解析します。

私のプロジェクトでは、リソースファイルは次の場所にありました。

E:\ locale_sample \ locale_sample \ obj \ x86 \ Release

そして、ファイル名のタイトルは、localiztion_sample.g.en-US.resourcesです。

注:これは、MicrosoftWebサイトの説明とは異なります。Microsoftは、en-USディレクトリ内にあるdllファイルでLocBamlツールを実行する必要があると述べています。しかし、何度も試みて調査した結果、これが実際には32ビットビルドと64ビットビルドの互換性に関する多くの問題を引き起こしているだけでなく、まったく機能しないことがわかりました。

wpf4 unleashedやオンラインフォーラムを読む際には、代わりに*.gen.en-Us.resourcesファイルを指すことをお勧めします。* =プロジェクト名とgen.en-Usは、選択した開発言語を反映しています

VSコマンドまで、次のように入力する必要があります。

LocBaml / parse filename.resources / out:sample-en.csv

注: LocBamlファイルをこのファイルが存在するルートディレクトリにコピーし、システム管理者としてコマンドプロンプトを実行していることを前提としています。使いやすくするために、コマンドプロンプト内の作業ディレクトリをVSプロジェクトディレクトリに変更しました

私のサンプルプロジェクトでは、コマンドは次のようになりました。

* LocBaml /parselocalization_sample.g.en-US.resources / out:sample-en.csv *

次に、このコマンドは、現在のプロジェクトの定義として機能するCSVファイルを生成します

これは、ファイルを変更してdllを再生成することはできましたが、アプリケーション内でカルチャを変更することができなかったため、この部分に取り組んでいます。動作するようになったら、再投稿します。

于 2011-02-16T16:10:27.547 に答える