如何在ASP .Net Core 3中使用UseRequestLocalization?

时间:2019-07-13 07:17:49

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

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

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

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,        
});

1 个答案:

答案 0 :(得分:1)

使用全球化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"));
                }))
        );