如何翻译Blazor组件和App.razor中的字符串? [英] How can I translate strings in Blazor components and App.razor?
本文介绍了如何翻译Blazor组件和App.razor中的字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要本地化共享组件的字符串,如";NavMenu.razor";或";App.razor";页。
我成功地翻译了我页面中的内容,如general .NET Core instruction 和更多specific Blazor documentation中所述:
- 使用正确的名称创建资源文件(例如PageName.de.resx)。
- 使用
@inject Microsoft.Extensions.Localization.IStringLocalizer<PageName> _l10n
将本地化程序注入Razor页面。 - 使用
_l10n["Product name"]
翻译页面内的文本,该文本将被正确翻译为";Produktname";。
此方法既不适用于";NavMenu.razor;也不适用于";App.razor";。
请注意:我使用MatBlazor UI库中的MatNavMenu进行主导航。
我在任何地方都找不到它的文档。非常感谢您的帮助。
推荐答案
轻松:
安装Microsoft.Extensions.Location
在Programs.cs
builder.Services.AddLocalization(options => options.ResourcesPath = "Resources"); builder.Services.AddScoped<IStringLocalizer<App>,StringLocalizer<App>>();
在客户端项目中创建一个Resources文件夹。将resx文件添加到 例如,App.resx将成为您的默认资源。然后 为您希望支持的每种语言添加更多文件。App.fr.resx App.es.resx等。
然后在组件中注入
@inject IStringLocalizer<App> L
@L["YourText"]
本地化程序将使用浏览器语言并查找键的App.en-AU.resx、App.en.resx、App.resx顺序。如果未找到,它将使用";您的文本
这是一个Blazor WASM项目repo
这篇关于如何翻译Blazor组件和App.razor中的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文