Blazor的本地化文件,每种语言有多个.resx



我正在为Blazor WebAssembly应用程序实现本地化。使用一个.resx文件,一切都很正常。然而,我想知道是否可以为同一种语言使用多个.resx,我试图查看文档,但不知何故,它在任何地方都没有被提及,所有的教程或文档最终都调用了唯一的资源:

@inject IStringLocalizer<LocalizationRes> _L

那么,同一种语言可以使用多个.resx吗?如果是,在这种情况下应该如何使用IStringLocalizer?

谢谢

您可以使用同一语言的多个Resx文件,并将它们沿项目结构分布。即,如果您有类似的文件夹结构

MainFolder
..Cats
....Cats.razor.cs
....Cats.razor
Resources
..Cats
....Cats.en.resx <- english resource
....Cats.es.resx <- spanish resource

在你的注射你应该使用如下:

@inject Microsoft.Extensions.Localization.IStringLocalizer_定位器

使用实现方式,即:

<TitleComponent Title="@_定位器["Cats"];描述="@_本地化程序["All your Cats."]/>

在resx中,您应该为每个实现提供一个翻译,一旦您在应用程序中传播区域性更改,它将获得正确的resx文件。

_localizer["Cats"]。

这是为了支持多种语言,让同一语言的多个文件在您的项目中应用相同的结构,即

MainFolder
..Cats
....Cats.razor.cs
....Cats.razor
..Dogs
....Dogs.razor.cs
....Dogs.razor
Resources
..Cats
....Cats.en.resx <- english resource
....Cats.es.resx <- spanish resource
..Dogs
....Dogs.en.resx
....Dogs.es.resx

最新更新