一些resx文件未加载到blazor-wasm应用程序中



我得到了一个使用IStringLocalizer进行多语言的blazor-wasm应用程序。资源文件位于类库中。这是项目树木景观:

  • blazor-wasm项目
  • 多车道项目
    • 资源
      • 资源.resx
      • resource.fr.resx
      • resource.de.resx

在每个资源文件中都有一个字符串键Test翻译成每种语言。我目前正在Program.cs:中加载我的文化(出于测试目的(

builder.Services.AddLocalization();
CultureInfo defaultCulture = new CultureInfo("de-DE");
CultureInfo.DefaultThreadCurrentCulture = defaultCulture;
CultureInfo.DefaultThreadCurrentUICulture = defaultCulture;

还增加了对多语言项目的参考。当我在这样的测试组件中注入我的字符串校准器时:

@inject IStringLocalizer<Resource> localizer
<h3>@localizer[Resource.Test]</h3>

当currentCulture设置为fr-fr或en-US时,Test密钥会被正确检索,但当设置为de-de时则不会,然后它会自动返回en-US。

我检查了很多次,除了翻译之外,资源文件完全相同,设置为公共嵌入资源,但没有加载de de,如果我添加一个新的resx文件,es es也是如此。我不知道我在这里错过了什么。。。

有什么想法吗?

我为Blazor WASM和本地化添加了一个演示应用程序,我的这篇文章解释了这个演示应用程序。它具有一个语言选择器,您可以在Blazor WASM应用程序运行时按需设置语言。

https://toreaurstad.blogspot.com/2023/07/localizing-blazor-wasm-applications.html?m=0

Github repo在这里:https://github.com/toreaurstadboss/HelloBlazorLocalization

您提到某些语言已加载,而其他语言则不显示。如果你忘记了一些设置,你能检查一下你的Program.cs吗?

如果您在此处查看:https://github.com/toreaurstadboss/HelloBlazorLocalization/blob/main/HelloBlazorLocalization/Program.cs

您可以在该代码中查看我是如何专门设置支持的语言的。此外,请仔细检查浏览器的语言设置。也许你在浏览器中设置了一个特定的德语变体,它似乎与de默认的德语代码不一致。还要特别检查.resx文件是否与其他.resx不同。

很抱歉无法进一步确定错误所在,但如果你运行我的示例演示应用程序,你可能会发现Blazor WASM应用程序中缺少什么,无法在Blazor中进行本地化。

相关内容

  • 没有找到相关文章

最新更新