14

私は、MVC6で複数の言語のリソースファイルを実装するにはどのように実装するのが最善かを考えていましたが、実際に実装する方法については、正しく。何が必要なのか、制約は何ですか?MVC6のリソースファイルを理解するRC1

https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/

MVC 6 : how to use RESX files?

http://pratikvasani.github.io/archive/2015/12/25/MVC-6-localization-how-to/

は、私は英語とドイツ語を用意しているので、リソースファイルを設定しようとしている:

いくつかの記事私が見てきました私のユーザーは、ブラウザの設定や自分のアカウント内の個人設定に基づいています。

これを達成する最良の方法は何ですか?

ありがとうございます!

編集:

だから、記事ごとに、私はStartup.csに次のコードを追加しました:

 services.AddLocalization(options => 
       options.ResourcesPath = "Resources"); 
     services.AddMvc() 
       .AddViewLocalization(Microsoft.AspNet.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix) 
       .AddDataAnnotationsLocalization(); 

     var supportedCultures = new[] 
     { 
      new CultureInfo("de-DE"), 
      new CultureInfo("en-US") 
     }; 

     //Set Default Localization Culture 
     app.UseRequestLocalization(new RequestLocalizationOptions 
     { 
      SupportedCultures = supportedCultures, 
      SupportedUICultures = supportedCultures 
     }, new RequestCulture(new CultureInfo("en-US"))); 

次にResourcesフォルダ内私は、ファイル名を持つ新しいRESXファイルを作成:

  • "Views.Shared._LocalizationTest.en-US.resx"

  • 「Views.Shared._LocalizationTest.de-DE.resx」

そして、私の部分図は、次のようになります。私はまだ私が「たTestString」を取得していて、何かが欠けているように見える

@using Microsoft.AspNet.Localization 
@using Microsoft.AspNet.Mvc.Localization 
@inject IViewLocalizer Localizer 

<div> 
    @Localizer["TestString"] 
</div> 

英語の場合は "Test String"、リソースファイルの場合は "German:Test String"の代わりに表示されます。

アイデア?

+0

あなたは何かを把握しましたか?私も同様の種類の問題がある、私の質問を参照してください:http://stackoverflow.com/questions/42712326/localizaion-using-resource-file-in-net-core-for-different-culture – Herin

+0

@RickAndMSFTリンクは壊れた。 – Marcel

+0

私の記事を参照してくださいhttps://docs.microsoft.com/aspnet/core/fundamentals/localization – RickAndMSFT

答えて

2

ASP.NETコアのデフォルトの方法は、にありません。は、リソースファイル内にデフォルトの言語文字列を持っていますが、コードにラップされています。したがって、ローカライザにラップされた英語の文字列を使用してアプリケーションを作成し、1つのドイツ語リソースファイルを作成することができます。私の記事を参照してくださいhttps://docs.microsoft.com/aspnet/core/fundamentals/localization

+4

本当に良いアイデアですか?小さなアプリを使い始めると便利ですが、エラーが発生しやすくなります。つまり、既定の言語で句読点を変更すると、他のローカリゼーションファイルの「キー」を置き換える必要があります。他のローカリゼーションファイルではローカライズされた変数が見つからないためです。 – Tseng

+0

その記事は間違いなく助けてくれますが、私はTsengにも同様の考えを持っています。たとえば、英語は私の強い訴えかもしれませんが、ローカリゼーションは遠隔地で行われますが、サイトのデフォルト言語はドイツ語でなければなりません。 – Reosoul

+0

私はReosoulに同意します。今、私はデフォルトのスペイン語とサポートされている英語でasp.netコアmvc​​ Webサイトを構築しようとしています。ただし、コードで囲まれた文字列では機能しません。常にEnglish.resxファイルの文字列を表示します。 – SherleyDev

関連する問題