如何翻译Blazor组件和App.razor中的字符串? [英] How can I translate strings in Blazor components and App.razor?

查看:23
本文介绍了如何翻译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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆