2016-09-06 2 views
0

これに費やす時間。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"にアクセスし、まだそれを見つけることができないと言います。

私は間違っていますか?ソフトウェアがそれを見つけたので、どこかにコピーされますが、それがどこに行くのか分からないのですか?それとも、私はそれを行うことを意図していない何かをしようとしています?

あなたのヘルプは大歓迎です!

答えて

関連する問題