本地化 – 了解MVC6 RC1中的资源文件

前端之家收集整理的这篇文章主要介绍了本地化 – 了解MVC6 RC1中的资源文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在试图围绕如何最好地在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/

我正在设置资源文件,以便我的用户可以使用英文和德文,这些用户可以根据浏览器设置或其帐户中的个人设置.

什么是实现这一目标的最佳途径?

提前致谢!

编辑:

所以根据文章,我已经添加以下代码到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")));

然后在资源文件夹中,我创建了具有文件名的新的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”(根据我的资源文件).

有任何想法吗?

解决方法

ASP.NET内核的默认方法是将资源文件中的默认语言字符串不包含在代码中.所以你可以使用包装在本地化程序中的英文字符串编写应用程序,并且有一个德语资源文件.见我的文章 https://docs.asp.net/en/dev/fundamentals/localization.html

猜你在找的asp.Net相关文章