これに費やす時間。ASP.NETリソースファイル、言語変換用のリソースマネージャ
私は、異なるライブラリとアプリケーション間で言語翻訳のための1つのエントリポイントを作成したいと考えました。 - MyStrings.en-US.resxは RESX 移入RESXファイルをファイル - アクセス修飾子をpublicに設定新しいクラスライブラリプロジェクトのルートレベル追加された新しいアイテムで翻訳 と呼ば作成し
:私は、次のされたなかった何
翻訳プロジェクト追加された新しいアイテムクラスのルートレベルで
- 翻訳で 追加プロパティ
public class Translator
{
private ResourceManager _translationManager;
public ResourceManager TranslationManager
{
get
{
if (_translationManager == null)
{
_translationManager = new ResourceManager("MyStrings", this.GetType().Assembly);
}
return _translationManager;
}
}
}
ウェブサイト(ないWebプロジェクトが、ウェブサイト)は、宣言
private Translator _translate;
public Translator Translate
{
get
{
if (_translate == null)
{
_translate = new Translator();
}
return _translate;
}
}
そして、LINQ文で
Title = TranslationManager.GetString(appsAvailable.Value.ResourceKey, CurrentCulture)
ResourceKey does have a value
CurrentCulture = en-US
そして、私はこのエラーに
を取得していますの背後にあるコードでは翻訳プロジェクト への参照を追加しました指定された文化に適切なリソースを見つけられなかったか、または ニュートラルカルチャです。 "MyStrings.resources"がコンパイル時にアセンブリ "翻訳"に埋め込まれているか、またはリンクされていることを確認してください。 必要なすべての衛星アセンブリがロード可能で、完全に が署名されていることを確認してください。私は私のbin/OBJ /デバッグフォルダを見てみると
私はそれを探している名前ではありません。このTranslations.MyStrings.en-US.resources
を見ています。私はマネージャの "basename"を "MyStrings"から "Translations.MyStrings"に変更しようとしましたが、 "Translations.MyStrings.resources"が見つからないという同様のエラーが表示されます。文化は現在、ベース名として "Translations.MyStrings.en-US"にアクセスし、まだそれを見つけることができないと言います。
私は間違っていますか?ソフトウェアがそれを見つけたので、どこかにコピーされますが、それがどこに行くのか分からないのですか?それとも、私はそれを行うことを意図していない何かをしようとしています?
あなたのヘルプは大歓迎です!