在ASP.NET Core 3.1中,共享本地化的方法与之前的版本有所不同。以下是解决该问题的一种方法:
首先,确保你已经安装了Microsoft.Extensions.Localization
和Microsoft.Extensions.Localization.Abstractions
包。
在Startup.cs
文件中,找到ConfigureServices
方法,并添加以下代码:
services.AddLocalization(options =>
{
options.ResourcesPath = "Resources";
});
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
这将配置本地化服务并将资源文件存放在Resources
文件夹中。
Configure
方法中添加以下代码:var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("zh-CN"),
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
这将配置应用程序的区域设置,并将其支持的区域设置设置为en-US
和zh-CN
。
在资源文件夹中创建一个名为SharedResource.zh-CN.resx
的资源文件,并添加你的本地化文本。
在视图中使用IViewLocalizer
来本地化文本。例如,在视图中使用@inject IViewLocalizer Localizer
来注入IViewLocalizer
,然后使用Localizer["Hello"]
来获取本地化文本。
@inject IViewLocalizer Localizer
@Localizer["Hello"]
这些步骤将使共享本地化在ASP.NET Core 3.1中正常工作。记得重新启动应用程序以使更改生效。