我一直在试图围绕如何最好地在MVC6中实现多种语言的资源文件,但是由于每个版本的更改都让我对如何正确实现它们有些困惑.什么是必需的,有什么约束?
我看过的几篇文章:
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/
我正在设置资源文件,以便我的用户可以使用英文和德文,这些用户可以根据浏览器设置或其帐户中的个人设置.
什么是实现这一目标的最佳途径?
提前致谢!
编辑:
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")));
>“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”,而不是“Test String”为英文或“German:Test String”(根据我的资源文件).
有任何想法吗?