无法在 ASP.Net Core 应用程序中设置默认且唯一的区域性

问题描述 投票:0回答:2

我正在开发波兰操作系统:

在我的

Statup.cs
类中,我有以下代码

        // Configure the localization options
        var supportedCultures = new[]
        {
            new CultureInfo("en-GB")
        };

        app.UseRequestLocalization(
            new RequestLocalizationOptions
            {
                DefaultRequestCulture = new RequestCulture("en-GB"),
                SupportedCultures = supportedCultures,
                SupportedUICultures = supportedCultures,
                FallBackToParentCultures = true,
                FallBackToParentUICultures = true,
                RequestCultureProviders = null
            });

完整选项仅供参考,以确保后面没有设置任何内容。在我的

_Layout.cshtml
中,我有以下代码:

<div>Current Culture: @CultureInfo.CurrentCulture.DisplayName</div>
<div>Current UI Culture: @CultureInfo.CurrentUICulture.DisplayName</div>

唯一支持和可用的文化应该是

en-GB
,但是在网站上它总是显示:

Current Culture: Polski (Polska)
Current UI Culture: Polski (Polska)

我尝试添加

Microsoft.AspNet.Localization
包,但没有什么区别。基于本地化中间件中的代码,一切都应该按预期工作。我正在运行最新版本的 ASP.NET Core 1.0.0。

localization asp.net-core asp.net-core-localization
2个回答
8
投票

有一件重要的事情在文档中没有提到。

UseRequestLocalization
必须放在
UseMvc
之前,我的在下面。


0
投票

还有一件重要的事情,文档中没有提到。 UseRequestLocalization 不会设置线程区域性,除非您指定区域性的两个部分 EG。仅发送“fr”不会导致设置线程区域性。您必须指定两者,例如“fr-FR”。

© www.soinside.com 2019 - 2024. All rights reserved.