Localization 理解MVC6 RC1中的资源文件

Localization 理解MVC6 RC1中的资源文件,localization,asp.net-core,asp.net-core-mvc,resx,asp.net-core-localization,Localization,Asp.net Core,Asp.net Core Mvc,Resx,Asp.net Core Localization,我一直在想如何最好地在MVC6中实现多种语言的资源文件,但由于每个版本的更改,我对如何正确地实现它们有点困惑。什么是必需的,什么是约束条件 我看过几篇文章: 我正在尝试设置资源文件,以便我的用户可以使用英语和德语,这将基于浏览器设置或他们帐户中的个人设置 实现这一目标的最佳方式是什么 提前谢谢 编辑: 因此,根据本文,我在Startup.cs中添加了以下代码: services.AddLocalization(options => op

我一直在想如何最好地在MVC6中实现多种语言的资源文件,但由于每个版本的更改,我对如何正确地实现它们有点困惑。什么是必需的,什么是约束条件

我看过几篇文章:

我正在尝试设置资源文件,以便我的用户可以使用英语和德语,这将基于浏览器设置或他们帐户中的个人设置

实现这一目标的最佳方式是什么

提前谢谢

编辑:

因此,根据本文,我在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.\u LocalizationTest.en US.resx”

  • “Views.Shared.\u LocalizationTest.de-de.resx”

我的部分观点如下:

@using Microsoft.AspNet.Localization
@using Microsoft.AspNet.Mvc.Localization
@inject IViewLocalizer Localizer

<div>
     @Localizer["TestString"]
</div>
@使用Microsoft.AspNet.Localization
@使用Microsoft.AspNet.Mvc.Localization
@注入IViewLocalizer定位器
@定位器[“测试字符串”]
我似乎仍然遗漏了一些东西,因为我要显示的是“TestString”,而不是英语的“TestString”或“德语:TestString”(根据我的资源文件)


有什么想法吗?

ASP.NET核心默认方法是不要在资源文件中包含默认语言字符串,而只是将它们包装在代码中。因此,您可以使用包装在本地化程序中的英语字符串编写应用程序,并拥有一个德语资源文件。看我的文章

这真的是个好主意吗?我的意思是,当你开始使用一个小应用程序时,它很方便,但对我来说,听起来很容易出错。我的意思是,如果你改变默认语言中的标点符号,那么你就必须去替换所有其他本地化文件中的“键”,因为否则你的本地化变量在其他本地化文件中就找不到了?那篇文章肯定有帮助,但我的想法与Tseng类似。例如,英语可能是我的强项,本地化可以远程进行,但网站的默认语言应该是德语。我同意你的观点。现在,我正在尝试用默认的西班牙语和支持的英语构建一个asp.net核心mvc网站。但是,它不适用于包装在代码中的字符串。它总是显示English.resx文件中的字符串。你找到什么了吗?我也有类似的问题,请看我的问题:@RickAndMSFT链接断了。请看我的文章