加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:31:50 所属栏目:asp.Net 来源:网络整理
导读:我一直在试图围绕如何最好地在MVC6中实现多种语言的资源文件,但是由于每个版本的更改都让我对如何正确实现它们有些困惑.什么是必需的,有什么约束? 我看过的几篇文章: https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/ MVC 6 : how to use
我一直在试图围绕如何最好地在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读