如何翻译 Blazor 组件和 App.razor 中的字符串?
How can I translate strings in Blazor components and App.razor?
我想本地化共享组件的字符串,例如“NavMenu.razor”或“App.razor”页面。
我设法按照 general .NET Core instruction and the more 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.Localization
在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 键的顺序。如果找不到,它将使用“YourText”
这是一个 blazor WASM 项目repo
我想本地化共享组件的字符串,例如“NavMenu.razor”或“App.razor”页面。
我设法按照 general .NET Core instruction and the more 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.Localization
在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 键的顺序。如果找不到,它将使用“YourText”
这是一个 blazor WASM 项目repo