【发布时间】:2021-09-07 22:41:39
【问题描述】:
我的目标是使用浏览器语言作为我的控制器/视图中使用的文化。
我发现了app.UseRequestLocalization(),但它本身不起作用,它只接受当前的服务器文化。它需要选项来添加支持的文化列表才能工作:
app.UseRequestLocalization(options =>
{
var supportedCultures = new string[] { "en-US", "en-CA", "fr-CA", "fr-FR" };
options.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures)
.SetDefaultCulture("en-US");
});
这样,我的浏览器在accept-language 标头中发送fr-FR,并且请求在Thread.CurrentCulture 属性下正确地到达我的ASP.NET Core 控制器。
我的问题是,如何接受所有文化?为什么我们需要提供“支持”列表?
我了解本地化词典仅在您的项目中针对特定文化列表进行翻译。但是当它没有时,它无论如何都会回到英语。对于 DateTime.ToString() 和数字格式等情况,接受所有文化仍然会有所帮助。
是否有一种简单的方法可以自动接受所有文化(就像在 Core 之前的以前的 ASP.NET 版本中一样)?
【问题讨论】:
标签: c# asp.net-core culture