.net core 如何翻译Blazor组件和App.razor中的字符串?

.net core 如何翻译Blazor组件和App.razor中的字符串?,.net-core,localization,blazor,razor-pages,blazor-webassembly,.net Core,Localization,Blazor,Razor Pages,Blazor Webassembly,我想本地化共享组件的字符串,如“NavMenu.razor”或“App.razor”页面 我成功地翻译了页面中的内容,如中所述,以及更多: 使用正确的名称创建资源文件(例如PageName.de.resx) 使用@Inject Microsoft.Extensions.Localization.IStringLocalizer\u l10n将定位器插入Razor页面 使用\u l10n[“Product name”]翻译页面内的文本,该文本将正确翻译为“Produktname” 这种方法既不

我想本地化共享组件的字符串,如“NavMenu.razor”或“App.razor”页面

我成功地翻译了页面中的内容,如中所述,以及更多:

  • 使用正确的名称创建资源文件(例如PageName.de.resx)
  • 使用
    @Inject Microsoft.Extensions.Localization.IStringLocalizer\u l10n将定位器插入Razor页面
  • 使用
    \u 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>>();
    
    builder.Services.AddLocalization(options=>options.ResourcesPath=“Resources”);
    builder.Services.addScopeEasy:

    • 安装Microsoft.Extensions.Localization

    • 在programs.cs中

      builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");
      builder.Services.AddScoped<IStringLocalizer<App>,StringLocalizer<App>>();
      
      builder.Services.AddLocalization(options=>options.ResourcesPath=“Resources”);
      
      builder.Services.AddScopedTry。。。IStringLocalizer并使用App.resx。您可以通过这种方式将注入放在导入中,并且它可用于所有组件。我可以确认它在App.razor中是这样工作的,应该正常吗?奇怪的是,我以前也试过类似的方法。按你的指示再试一次。不走运。如果我有时间,我会用它发布回购协议。我真的不能发布我正在看的项目…我只是为你发布了一份回购协议。请原谅我使用web服务进行的翻译。我只是在edge或chrome上更改了语言,然后重新加载页面以查看差异。请尝试。。。IStringLocalizer并使用App.resx。您可以通过这种方式将注入放在导入中,并且它可用于所有组件。我可以确认它在App.razor中是这样工作的,应该正常吗?奇怪的是,我以前也试过类似的方法。按你的指示再试一次。不走运。如果我有时间,我会用它发布回购协议。我真的不能发布我正在看的项目…我只是为你发布了一份回购协议。请原谅我使用web服务进行的翻译。我只是在edge或chrome上更改了我的语言,然后重新加载页面以查看差异。谢谢。这有帮助。我犯了一个愚蠢的错误。我将“App.resx”文件放入“pages”子目录,然后。。。BÄM!你的例子帮助我解决了这个问题。我也可以将组件的字符串放入这个应用程序资源文件中,它也可以工作。谢谢。这有帮助。我犯了一个愚蠢的错误。我将“App.resx”文件放入“pages”子目录,然后。。。BÄM!你的例子帮助我解决了这个问题。我也可以将组件的字符串放入这个应用程序资源文件中,并且可以正常工作。