我在我的 blazor wasm 应用程序中使用本地化。但是,当加载并尝试显示文化名称时,它没有按预期显示。通过点击此链接 https://learn.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
不幸的是
CultureInfo.DisplayName/EnglishName/NativeName
在 Blazor WASM 中不受支持。
获取它们的最简单方法是对服务器进行 Api 调用,以使用
{ CultureInfo.Name, CultureInfo.DisplayName }
加载字典
您得到的是通用语言类型。您必须允许语言和文化信息发生变化。 尝试添加您的 wasmApplicationName.client.csproj (您可以在应用程序文件夹中找到它)作为 PropertyGroup 的最后一项,该指令:
<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
希望这有用