繁体   English   中英

Blazor WebAssembly 中的伪本地化

[英]Pseudo-localization in Blazor WebAssembly

按照有关向 Blazor WebAssembly 添加本地化的教程,我成功地拥有了一个演示应用程序,它将向我显示英语或西班牙语。

为了简单起见,我只实现了静态设置文化本地化中的部分——即,我使用如下代码直接在 Program.cs 中设置目标文化:

var culture = new CultureInfo("es-ES");
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;

如上所述,这很好用。 但我还想添加对伪翻译的支持。

我已经有一个工具可以自动从*.resx文件生成*.qps-ploc.resx文件。 我已经确认这是在qps-ploc\MyApp.resources.dll中生成卫星资源程序集文件,并且它包含正确的资源。

qps-ploc 资源也被复制到publish/wwwroot/_framework/qps-ploc文件夹,正如使用dotnet publish时所期望的那样。 它们列在blazor.boot.json中的satelliteResources下。

但是,当指定以下内容时,它会加载默认资源而不是伪资源:

var culture = new CultureInfo("qps-ploc");

为什么,我该如何解决这个问题?

您没有提到如何引入将字符串实际转换为新语言所需的 IStringLocalizer 服务,也没有提到如何为本地化配置字符串。

您需要: @inject IStringLocalizer<...> Loc在您想要执行翻译的每个剃须刀页面上。

您还需要为每个要翻译的字符串使用@Loc["blah blah..."] 然后在您的资源文件中,您将有一个匹配的条目,用于您想要本地化的每个“blah blah ...”字符串。

在尝试变得聪明并使用其他语言之前,您是否确实首先遵循了 Microsoft 示例的确切措辞(对于 es-CL)?

它对我来说效果很好(使用 es-CL 和其他文化),所以我怀疑你没有勾选所有必需的框。

你有没有为此追踪到 ResourceManager ? 您应该能够单步执行客户端代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM