MVC6 で複数の言語のリソース ファイルを実装する最善の方法について頭を悩ませようとしてきましたが、リリースごとの変更により、実際にそれらを適切に実装する方法について少し混乱しています。何が必要で、どのような制約がありますか?
私が見たいくつかの記事:
https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/
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"
そして、私の部分的なビューは次のようになります。
@using Microsoft.AspNet.Localization
@using Microsoft.AspNet.Mvc.Localization
@inject IViewLocalizer Localizer
<div>
@Localizer["TestString"]
</div>
英語の「テスト文字列」または「ドイツ語:テスト文字列」(リソースファイルによる)の代わりに「TestString」を表示しているため、まだ何かが足りないようです。
何か案は?