首页 > 解决方案 > 如何在 ASP .Net Core 3 中使用 UseRequestLocalization?

问题描述

我需要有一个多语言的网络应用程序。我在 .net core 2.2 中使用我的代码,一切都很好。当我迁移到 .net core 3 时,我遇到了一些问题,其中一个是使用 UseRequestLocalization。

我在 startups.cs 的配置方法中使用此代码,在运行项目之后,我看到一个空白页面。

var supportedCultures = new CultureInfo[] {
    new CultureInfo ("en-US"),
    new CultureInfo ("en"),
    GetPersianCulture ("fa-IR"),
    GetPersianCulture ("fa"),
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
    DefaultRequestCulture = new RequestCulture("fa"),
    SupportedCultures = supportedCultures,
    SupportedUICultures = supportedCultures,        
});

标签: .net-corelocalization.net-core-3.0

解决方案


全球化asp.net core 3.1的问题,这就是我解决它的方法

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{    
    var supportedCultures = new string[] { "en-GB", "en-US" };
    app.UseRequestLocalization(options =>
                options
                .AddSupportedCultures(supportedCultures)
                .AddSupportedUICultures(supportedCultures)
                .SetDefaultCulture("en-GB")
                .RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context =>
                {
                    return Task.FromResult(new ProviderCultureResult("en-GB"));
                }))
        );

推荐阅读