我按照Microsoft的博客中的描述设置了本地化,但默认语言始终是英语.这就是我的Startup.cs在本地化方面的样子.
CultureInfo[] supportedCultures = new[] { new CultureInfo("ar"),new CultureInfo("en") };
services.Configure<RequestLocalizationoptions>(options => { options.DefaultRequestCulture = new RequestCulture("ar","ar"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; }); services.AddLocalization(options => { options.ResourcesPath = "Resources"; }); services.AddMvc() .AddViewLocalization() .AddDataAnnotationsLocalization();
app.UseRequestLocalization(new RequestLocalizationoptions() { DefaultRequestCulture = new RequestCulture("ar"),SupportedCultures = supportedCultures,SupportedUICultures = supportedCultures });
谢谢 :)
解决方法
您将“arabic”设置为DefaultRequestCulture,但如果没有内置提供程序可以确定请求文化,则使用DefaultRequestCulture.默认提供者是:
> QueryStringRequestCultureProvider
> CookieRequestCultureProvider
> AcceptLanguageHeaderRequestCultureProvider
最有可能的是,文化是根据浏览器发送的Accept-Language HTTP标头确定的.
您必须删除AcceptLanguageHeaderRequestCultureProvider才能回退到DefaultRequestCulture.为此,我们可以覆盖RequestLocuizationoptions的RequestCultureProviders列表,并仅使用其他两个提供程序.在Startup.cs中:
public void ConfigureServices(IServiceCollection services) { CultureInfo[] supportedCultures = new[] { new CultureInfo("ar"),new CultureInfo("en") }; services.Configure<RequestLocalizationoptions>(options => { options.DefaultRequestCulture = new RequestCulture("ar"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; options.RequestCultureProviders = new List<IRequestCultureProvider> { new QueryStringRequestCultureProvider(),new CookieRequestCultureProvider() }; }); }
在Configure方法中只需使用app.UseRequestLocalization();在app.UseMvc()之前;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。