2016-08-30 7 views
3

人。 よろしいですか?ASP.NET CORE(.NET Framework)およびローカリゼーション

誰かが私を助けることができますか? .NET Frameworkの持つ ASP.NETコア

件名:ローカライズ

は、私はマニュアルに従ってすべての設定を行いました。

私が使用:

IStringLocalizer<HomeController> 

作品完璧に翻訳を。

IStringLocalizer<Resources.Views.Shared.Test> 

は完全に翻訳されています。ビュー正しく変換

@inject IViewLocalizer localizer 

作品に

ただし、これまでのすべてのケースで、リソースはASP.NET COREプロジェクトで作成されました。私は別のプロジェクトを作成し、使用している場合

IStringLocalizer<ClassLibrary1.Test> 

が動作しない、それは翻訳されません。

デフォルトの言語のみを返します。私は、コントローラのASP.NETコアのコードを強制する場合

ResourceManager rm = new ResourceManager(typeof(ClassLibrary1.Test)); 
string test = rm.GetString("Hello", new System.Globalization.CultureInfo("en-US")); 

これはよく変換されません。 デフォルトの言語のみを返します。

つまり、別のプロジェクトに参加しているとの疑いがありました。

今、奇妙なことは、私は別のClassLibraryを作成し、コードを入れていることである:

string test = Test.ResourceManager.GetString("Hello", new System.Globalization.CultureInfo("en-US")); 

私はASP.NETのCOREにこのClassLibraryを参照する場合、戻り値が間違っている標準言語です。

私はAsp.Netで参照すると、それは完全に動作し、翻訳します。

これは既知のバグでしょうか?

asp.netコアで使用されているデザインのクラスライブラリのいくつかの特定の設定ですか?

私は同じコードがasp.netと.NETフレームワークのコアasp.netの両方で動作するはずだと思います。

誰も同じような問題がありましたか?

答えて

3

問題を解決しました。

リソースDLLがASP.NETコアプロジェクトにコピーされていないことが確認されました。

すべての問題が解決された後、ビルド後に手動でコピーしてください。 これは今のところ唯一の解決策です。ここ

詳細: https://github.com/aspnet/Mvc/issues/5219

+0

この上でいくつかの時間を燃やしました。私はこれが正しいことを確認することができます。残念なことに(マイクロソフトの端に)正しいが。リソースを含むプロジェクトで生成されたカルチャフォルダをCoreプロジェクトの出力ディレクトリにコピーするだけで、ResourceManagerが正常に動作します。 (例: "en-US"フォルダから "bin \ net452" ... bam ... done deal)。これを選別してくれたEdwardoに感謝します。 – mikeo

関連する問題