我正在为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