Локализация: класс ResourceManagerWithCultureStringLocalizer и элемент интерфейса WithCulture удален
Класс Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer
и Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture
метод были удалены в .NET 5.
Контекст см. в разделах aspnet/Announcements#346 и dotnet/aspnetcore#3324. Обсуждение этого изменения см. на странице dotnet/aspnetcore#7756.
Представленные версии
5,0
Старое поведение
Класс ResourceManagerWithCultureStringLocalizer
и метод ResourceManagerStringLocalizer.WithCulture
являются устаревшими в .NET Core 3.0 и более поздних версиях.
Новое поведение
Класс ResourceManagerWithCultureStringLocalizer
и метод ResourceManagerStringLocalizer.WithCulture
были удалены в .NET 5. Сведения о внесенных изменениях см. в запросе на вытягивание dotnet/extensions#2562.
Причина изменения
Класс ResourceManagerWithCultureStringLocalizer
и ResourceManagerStringLocalizer.WithCulture
метод часто были источниками путаницы для пользователей локализации. Особенно это проявляется при создании пользовательской реализации IStringLocalizer. Этот класс и метод создают ощущение, что экземпляр IStringLocalizer
должен существовать для каждого языка и ресурса. На самом деле экземпляры различаются только для ресурсов. Во время выполнения свойство CultureInfo.CurrentUICulture определяет используемый язык.
Рекомендуемое действие
Прекратите использовать класс ResourceManagerWithCultureStringLocalizer
и метод ResourceManagerStringLocalizer.WithCulture
.
Затронутые API
Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer
Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture