C# Azure上ASP.NET核心的本地化
我试图强迫我的本地化为瑞典语(sv SE)。一切都在本地运行,但在部署到Azure之后,验证错误总是以英语显示 这是我在Startup.cs中的配置C# Azure上ASP.NET核心的本地化,c#,azure,localization,asp.net-core,asp.net-core-mvc,C#,Azure,Localization,Asp.net Core,Asp.net Core Mvc,我试图强迫我的本地化为瑞典语(sv SE)。一切都在本地运行,但在部署到Azure之后,验证错误总是以英语显示 这是我在Startup.cs中的配置 public void ConfigureServices(IServiceCollection services) { ... services.AddLocalization(); ... } public void Configure(IApplicationBuilder app, IHostingEnviro
public void ConfigureServices(IServiceCollection services)
{
...
services.AddLocalization();
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
...
RequestLocalizationOptions localizationOptions = new RequestLocalizationOptions
{
SupportedCultures = new List<CultureInfo> { new CultureInfo("sv-SE") },
SupportedUICultures = new List<CultureInfo> { new CultureInfo("sv-SE") }
};
app.UseRequestLocalization(localizationOptions, new RequestCulture("sv-SE"));
...
}
public void配置服务(IServiceCollection服务)
{
...
services.AddLocalization();
...
}
公共void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、iLogger工厂)
...
RequestLocalizationOptions localizationOptions=新的RequestLocalizationOptions
{
SupportedCultures=新列表{new CultureInfo(“sv SE”)},
SupportedCultures=新列表{new CultureInfo(“sv SE”)}
};
应用程序UseRequestLocalization(localizationOptions,new RequestCulture(“sv SE”);
...
}
在呈现视图时,我可以看到UI区域性和区域性在本地和Azure上都正确设置为sv SE
发布到Azure时,我是否必须包含一些内容、本地化资源或其他内容
我正在使用最新版本的ASP.NET Core(RC1)。基于,首先需要将其设置为RequestLocalizationMiddleware作为服务
services.Configure<RequestLocalizationOptions>(
opts =>
{
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("sv-SE")
};
opts.DefaultRequestCulture = new RequestCulture("sv-SE");
// Formatting numbers, dates, etc.
opts.SupportedCultures = supportedCultures;
// UI strings that we have localized.
opts.SupportedUICultures = supportedCultures;
});
services.Configure(
选项=>
{
var supportedCultures=新列表
{
新文化信息(“sv SE”)
};
opts.DefaultRequestCulture=新的RequestCulture(“sv SE”);
//格式化数字、日期等。
opts.SupportedCultures=SupportedCultures;
//我们已经本地化的UI字符串。
opts.supporteduccultures=支持的文化;
});
这还不够,还应包括应用程序管道:
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
var options =
app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(options.Value);
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
public void配置(IApplicationBuilder应用程序)
{
app.UseStaticFiles();
变量选项=
app.ApplicationServices.GetService();
app.UseRequestLocalization(options.Value);
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“默认”,
模板:“{controller=Home}/{action=Index}/{id?}”);
});
}
您的浏览器发送什么作为接受语言?这是我的浏览器发送的:接受语言:en US,en;q=0.8,nb;q=0.6,ru;q=0.4,sv;q=0.2。即使我使用请求参数?culture=sv SE,它也会输出英语。代码似乎正在运行,但在Azure上它找不到瑞典本地化资源,而是输出英语。至少这是我的猜测。浏览器语言应该不重要,因为只有瑞典语是受支持的文化。你将瑞典资源文件部署到Azure了吗?我没有包括任何额外的资源。哪些文件以及应该包含在哪里?您确定获得了本地化字符串的英文版本或密钥吗?