2

私は、より良い言葉がないため、ローカリゼーションとリソース ファイルの初心者です。作業中のアプリケーションをローカライズしようとしています。リソース ファイルとサテライト アセンブリを使用してローカライズしたいのですが、正しく行う方法がわかりません。これが私がこれまでに持っているものです:

私のプロジェクト ディレクトリ: LanguageText.resx と LanguageText.nl.resx ファイルを作成しました。

project/bin ディレクトリに: "nl" フォルダーを作成しました。

project/bin/nl ディレクトリ: ResGen.exe を使用して LanguageText.nl.resx ファイルから LanguageText.nl.resources ファイルを作成し、AL.exe を使用して project.resources.dll ファイルを作成しました。その .dll ファイルは bin/nl フォルダーにあります。正常に組み立てられ、project/bin/debug フォルダーにも nl/project.resources.dll があります。

私の問題は、プログラムにニュートラル言語ファイルまたはリソースが埋め込まれていないように見えることですが、その方法に関する情報が見つかりません。この方法でリソースを埋め込むことについて私が見つけた唯一の情報は、サテライト アセンブリに関連するものです。ニュートラル言語リソースを埋め込むにはどうすればよいですか?

どんな助けや指示も大歓迎です。

ありがとう、マイク

4

2 に答える 2

2

AssemblyInfo の助けを借りてそれを行うことができます。AssemblyInfo.cs に移動し、属性を追加します

[assembly: NeutralResourcesLanguageAttribute("en-US",UltimateResourceFallbackLocation.Satellite)]

using System.Resources;先頭に必ず using ステートメントを追加してください。上記の行は、アセンブリのニュートラル リソース言語が「en-US」であり、これがサテライト アセンブリであることを示しています。

于 2010-02-16T11:12:09.817 に答える
0

フォールバック リソースは、bin フォルダーの LanguageText.dll に配置する必要があります。または、System.Resources.NeutralResourcesLanguageAttribute 属性を LanguageText.dll アセンブリに追加し、カルチャが不変である場合、または特定のカルチャに一致しない場合に使用される既定のカルチャを指定することもできます。

nl アセンブリを生成し、それを LanguageText.resources.dll と呼び、bin/nl フォルダーに配置します。

スレッドにカルチャを設定し、ResourceManager を使用してリソースを取得することで、これが機能することを確認します。

于 2009-01-19T22:30:55.383 に答える