.net-core - .NET Core 本地化全球化
问题描述
有人可以为我确认此代码是否会更改应用程序所有用户的文化,还是仅更改当前用户的文化?
var cultureInfo = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
我想显示一个包含应用程序接受的不同文化的组合,并在我在组合中选择它时更改文化,但是如果我在其中打开应用程序,例如当我更改为 Chrome 和 Firefox 时,似乎文化其他的变化,这很可怕。
解决方案
你可以使用下面的代码
启动.ConfigureServices
CultureInfo[] supportedCultures = new[]
{
new CultureInfo("ar"),
new CultureInfo("fa"),
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()
};
});
启动.配置
app.UseRequestLocalization();
改变语言:
[HttpPost]
public IActionResult SetLanguage(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
return LocalRedirect(returnUrl);
}
更多详情:这里
推荐阅读
- asp.net - 间歇性 IndexOutOfRangeException 提示缺少 SQL 列,但已通过 IIS 回收解决
- jquery - 为什么我的用户输入字段在提交后不会重置?
- c++ - IntelMPI 错误(适用于 openMPI)
- python - 为 py-elasticsearch-dsl 中的索引创建自定义分析器过滤器
- python - 在 Python 中,在线程之间共享类实例数据和方法,但只有一个特定变量
- openssl - 将 DER 编码的 RSA 公钥与 OpenSSL 一起使用
- php - php中的日期时间差
- phpfox - phpfox:如何获取我的组名?
- javascript - 如何在js中查找特定行调用的网站
- arrays - Excel,在数组的公式文本中计数