C# 如何在本地选择默认区域性-(以及在Azure上运行时为什么不选择)
我正在构建然后在visual studio中运行我的asp.net核心站点,一旦站点启动,我就会加载我的本地化资源,设置为默认值,即英语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
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
,请参阅和