【问题标题】:Change culture info blazor web assembly, display name issue更改cultureinfo blazor webassembly,显示名称问题
【发布时间】:2022-01-14 12:57:51
【问题描述】:

我在我的 blazor wasm 应用程序中使用本地化。但是当加载并尝试显示文化的名称时,它并没有按预期显示。通过此链接https://docs.microsoft.com/en-us/aspnet/core/blazor/globalization-localization?view=aspnetcore-6.0&pivots=server#localization 和许多其他教程,displayName 属性应显示文化 (de-De) 和 (fr-Fr) 的德语或法语。

但是当我像这样检索不同的文化时:`

Cultures = CultureInfo.GetCultures(CultureTypes.NeutralCultures).ToList();

然后这样显示:

@foreach(var c in Cultures){
  <h1>@c.DisplayName</h1>
}

我得到的是 fr (Fr) 或 de (De),而不是我所期待的法语/德语。任何想法为什么它不起作用?

PS:使用 .net 6.0 和 VS 17.0.4

【问题讨论】:

标签: c# blazor blazor-webassembly globalization


【解决方案1】:

很遗憾,CultureInfo.DisplayName/EnglishName/NativeName 在 Blazor WASM 中不受支持。

获取它们的最简单方法是通过 API 调用您的服务器以使用 { CultureInfo.Name, CultureInfo.DisplayName } 加载字典

【讨论】:

  • 这对你有用吗?因为这已经在我的项目中设置并且这不起作用:/
  • 不幸的是你是对的@lioleveau。我使用BlazorWebAssemblyLoadAllGlobalizationData 来解决DateTime.TryParse with IFormatProvider does not work correct in Blazor WASM,我希望它也能加载语言名称,但事实并非如此。我会更正我的答案。
  • 您所建议的问题是 displayName 始终使用当前操作系统语言,不幸的是它不会改变
猜你喜欢
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 2020-12-20
  • 2014-04-04
  • 2016-01-17
  • 2021-08-21
  • 1970-01-01
相关资源
最近更新 更多