我正在尝试为Blazor WebAssembly应用程序实现本地化。我遵循了文档中提到的示例。我按照示例创建了.resx文件,但我的Blazor WebAssembly应用程序只显示默认.resx的字符串,忽略了各个区域性的.resx。在上述文件中,我阅读了:
默认情况下,Blazor WebAssembly应用程序的链接器配置除去除区域设置之外的国际化信息明确要求。有关控制的更多信息和指导链接器的行为,请参阅为ASP.NET Core配置链接器Blazor。
在最后一个链接之后,我尝试在我的项目文件<PropertyGroup>
下添加以下内容
<MonoLinkerI18NAssemblies>all</MonoLinkerI18NAssemblies>
然而,这似乎不起作用,在我的Blazor WebAssembly应用程序上,我无法看到本地化的文本,只能看到默认.resx文件的文本。
这应该在Blazor的下一个版本预览4中修复。这个例子的作者在github的一期文章中已经证实了这一点。文档中的文章发布得有点太早,但应该在Blazor预览版4发布后不久修复。
从Blazor Web Assembly开始预览4个本地化工作。本文展示了如何本地化Web Assembly Blazor应用程序。
不再需要使用.resx文件。由于它们的XML结构,它们有点庞大。
试试这个插件,它太棒了,它使用了YAML而不是XML,这使文件变得更轻,而且还有一个与它相关的在线工具,让你可以使用Microsoft Translator和Azure翻译你的文件。
https://akmultilanguages.azurewebsites.net
https://github.com/aksoftware98/multilanguages
此项目https://github.com/enkodellc/blazorboilerplate使用Microsoft.Extensions.localization库对WebAssembly和服务器端Blazor进行了完全本地化。它确实使用Po文件与resx。以下是文档:https://blazor-boilerplate.readthedocs.io/en/latest/quickstarts/localization.html