我一直在努力思考如何最好地在 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”而不是“Test String”来显示英语或“German: Test String”(根据我的资源文件)。
有任何想法吗?