2011-02-08 2 views
5

私はWPFテストプロジェクトを作成しました。私はプロジェクトをアンロードし、csprojを次のように変更しました。<UICulture>en-US</UICulture>再構築後、ビルドフォルダにen-USという名前のサブフォルダが含まれ、WpfLocalizationTest.resources.dllというファイルが作成されます。これまでのところすべてクリアです。Locbamlはどのように機能しますか?

次に、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はcockamamieサンプルでいっぱいですが、どれもうまくいきません。 locbamlはMicrosoftがWPFアプリケーションのローカライズを実際どのように意図していますか?または、彼らは仕事のための適切なツールを考案しましたか?

答えて

3

検索を続けると、ここで別のリンクがStackoverflowに見つかりました。元々受け取っていたコンパイルエラーは、.Net4.0用に設定されていない古いLocBamlプロジェクトに関連していました。このため、私はDLLからCSVを生成できず、リソースファイルを直に処理しなければなりませんでした。詳細については、このリンクに従ってください。 Locbaml localization of .net wpf4 application

このリンクは、一度コンパイルされた.net 4バイナリへのリンクを提供し、dllで直ちにLocBamlを使用してCSVを生成できるようにします。

+1

randyc - .NET 4に更新されたLocBamlが実際に動作します。それがリンクです。 WPFのローカリゼーションに関する限り、MS WPFチームは完全に失われていると私はまだ思っています。 – Rubio

1

ちょうどアップデート私は今朝ノートを引っ張った。うまくいけば、これでもう少しあなたを得るのに役立ちます。

プロジェクトがコンパイルされた後は、ビルドが生成されたプロジェクトディレクトリにLocBaml.exeをコピーします。私の場合では、私はEにファイルをコピー:\ localiztion_sample \ localiztion_sample \ OBJ \ X86 \

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

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

ディレクトリに必要なファイルをコピーしたら、Releaseディレクトリ内にある.resourceファイルを解析します。リソースファイルがに位置していた私のプロジェクトでは

E:\ localiztion_sample \ localiztion_sample \ OBJ \ X86 \

とファイル名を解放して、標題た:localiztion_sample.g.en-US.resources

注:これは、MicrosoftのWebサイトの指示とは異なります。マイクロソフトでは、LocBamlツールをen-USディレクトリ内のdllファイルで実行する必要があると規定しています。しかし、複数の試みと研究の後、私はこれが実際には32ビットと64ビットのビルドの互換性に関するいくつかの問題を引き起こしたことを発見しました。

wpf4で公開されているフォーラムとオンラインフォーラムを読むには、代わりに* .gen.en-Us.resourcesファイルを参照することをお勧めします。* =プロジェクト名とgen.en-私たちはあなたが、その後入力する必要がありますVSコマンドuntility内

を選択した開発言語を反映して、次の

LocBaml /パースfilename.resources /アウト:サンプルエン.CSV

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

にコマンドプロンプト内での作業ディレクトリを変更するコマンドは、のように見えた:

* LocBaml /パースlocalization_sample.g.en-US.resources /アウト:サンプルen.csv *

このコマンドは、その後、私はtehのファイルを変更し、DLLを再生成することができたましたように、これは限りだった現在のプロジェクト

の定義として動作するCSVファイルを生成しますが、私はアプリケーション内で文化を変えることができませんでしたので、私はまだこの作品に取り組んでいます。私は一度それを働かせてreposteよ。

関連する問題