C# 如何在本地选择默认区域性-(以及在Azure上运行时为什么不选择)

C# 如何在本地选择默认区域性-(以及在Azure上运行时为什么不选择),c#,asp.net,visual-studio,azure,asp.net-core,C#,Asp.net,Visual Studio,Azure,Asp.net Core,我正在构建然后在visual studio中运行我的asp.net核心站点,一旦站点启动,我就会加载我的本地化资源,设置为默认值,即英语 public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = "Resources"); services.Configur

我正在构建然后在visual studio中运行我的asp.net核心站点,一旦站点启动,我就会加载我的本地化资源,设置为默认值,即英语

    public void ConfigureServices(IServiceCollection services)
    {

        services.AddLocalization(options => options.ResourcesPath = "Resources");

        services.Configure<RequestLocalizationOptions>(options =>
        {
            var supportedCultures = new[]
            {
                new CultureInfo("sv-SE"),
                new CultureInfo("en-GB"),
                new CultureInfo("fr-FR")
            };

            // Explicitly state numbers/dates etc.
            options.SupportedCultures = supportedCultures;
            // Explicitly state UI strings (e.g. localised strings)
            options.SupportedUICultures = supportedCultures;

            // etc...

            services.AddMvc().AddViewLocalization();
        });
    }

您没有为
RequestLocalizationOptions
设置
DefaultRequestCulture

services.Configure<RequestLocalizationOptions>(options =>
    {
        var supportedCultures = new[]
        {
            new CultureInfo("sv-SE"),
            new CultureInfo("en-GB"),
            new CultureInfo("fr-FR")
        };

        // State what the default culture for your application is. This will be used if no specific culture
        // can be determined for a given request.
        options.DefaultRequestCulture = new RequestCulture("sv-SE"),
        // Explicitly state numbers/dates etc.
        options.SupportedCultures = supportedCultures;
        // Explicitly state UI strings (e.g. localised strings)
        options.SupportedUICultures = supportedCultures;
   }
services.Configure(选项=>
{
var supportedCultures=new[]
{
新文化信息(“sv SE”),
新文化信息(“en GB”),
新文化信息(“fr”)
};
//说明应用程序的默认区域性是什么。如果没有特定的区域性,将使用该区域性
//可以为给定的请求确定。
options.DefaultRequestCulture=新的RequestCulture(“sv SE”),
//明确说明编号/日期等。
options.SupportedCultures=SupportedCultures;
//显式声明UI字符串(例如本地化字符串)
options.supportedCultures=supportedCultures;
}

更新:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
        app.UseRequestLocalization(locOptions.Value);
        //other middlewares
        app.UseMVc();
    }
public void配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
var locOptions=app.ApplicationServices.GetService();
app.UseRequestLocalization(locOptions.Value);
//其他中间产品
app.UseMVc();
}

您没有为
RequestLocalizationOptions
设置
DefaultRequestCulture

services.Configure<RequestLocalizationOptions>(options =>
    {
        var supportedCultures = new[]
        {
            new CultureInfo("sv-SE"),
            new CultureInfo("en-GB"),
            new CultureInfo("fr-FR")
        };

        // State what the default culture for your application is. This will be used if no specific culture
        // can be determined for a given request.
        options.DefaultRequestCulture = new RequestCulture("sv-SE"),
        // Explicitly state numbers/dates etc.
        options.SupportedCultures = supportedCultures;
        // Explicitly state UI strings (e.g. localised strings)
        options.SupportedUICultures = supportedCultures;
   }
services.Configure(选项=>
{
var supportedCultures=new[]
{
新文化信息(“sv SE”),
新文化信息(“en GB”),
新文化信息(“fr”)
};
//说明应用程序的默认区域性是什么。如果没有特定的区域性,将使用该区域性
//可以为给定的请求确定。
options.DefaultRequestCulture=新的RequestCulture(“sv SE”),
//明确说明编号/日期等。
options.SupportedCultures=SupportedCultures;
//显式声明UI字符串(例如本地化字符串)
options.supportedCultures=supportedCultures;
}

更新:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
        app.UseRequestLocalization(locOptions.Value);
        //other middlewares
        app.UseMVc();
    }
public void配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
var locOptions=app.ApplicationServices.GetService();
app.UseRequestLocalization(locOptions.Value);
//其他中间产品
app.UseMVc();
}

这没有任何区别。在visual studio上运行会给我“en GB”(这已经发生),发布到Azure会给我sharedLocaliser变量(即不将区域性设置为“en GB”)@jamheadart你的
配置
方法是什么?
app.UseRequestLocalization
必须放在
app.UseMvc
之前。请参考我没有
app.UseRequestLocalization
-如果我使用它,那么我根本无法改变我的文化它总是停留在
en GB
上。我正在使用
服务。AddMvc().AddViewLocalization();
在我的Startup@jamheadart我更新我的回复以使用
应用程序。UseRequestLocalization
,请参阅,这没有任何区别。在visual studio上运行会给我“en GB”(这已经发生),发布到Azure仍会给我sharedLocaliser变量(即未将区域性设置为“en-GB”)@jamheadart你的
配置
方法是什么?
应用程序。用户请求本地化
必须放在
应用程序之前。使用MVC
参考我没有
应用程序。用户请求本地化
-如果我使用它,我根本无法改变我的文化它总是停留在
en-GB
上。我正在使用
服务。AddMvc().AddViewLocalization();
在我的Startup@jamheadart我将回复更新为使用
app.UseRequestLocalization
,请参阅和