本地化:ResourceManagerWithCultureStringLocalizer 类和 WithCulture 接口成员已删除

.NET 5 删除了 ResourceManagerWithCultureStringLocalizer 类和 WithCulture 方法。

有关上下文,请参阅 aspnet/Announcements#346dotnet/aspnetcore#3324。 有关此更改的讨论,请参阅 dotnet/aspnetcore#7756

引入的版本

5.0

旧行为

ResourceManagerWithCultureStringLocalizer 类和 ResourceManagerStringLocalizer.WithCulture 方法在 .NET Core 3.0 及更高版本中已过时

新行为

.NET 5 中删除了 ResourceManagerWithCultureStringLocalizer 类和 ResourceManagerStringLocalizer.WithCulture 方法。 有关所做更改的清单,请参阅 dotnet/extensions#2562 上的拉取请求。

更改原因

ResourceManagerWithCultureStringLocalizer 类和 ResourceManagerStringLocalizer.WithCulture 方法通常会让本地化用户混淆。 创建自定义 IStringLocalizer 实现时,混淆尤其严重。 这个类和方法给使用者的印象是 IStringLocalizer 实例应“按语言、按资源”。 实际上,实例应该仅“按资源”。 在运行时,CultureInfo.CurrentUICulture 属性确定要使用的语言。

停止使用 ResourceManagerWithCultureStringLocalizer 类和 ResourceManagerStringLocalizer.WithCulture 方法。

受影响的 API