Dela via


Lokalisering: ResourceManagerWithCultureStringLocalizer-klassen och WithCulture-gränssnittsmedlemmen har tagits bort

Klassen Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer och Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture metoden togs bort i .NET 5.

Sammanhang finns i aspnet/Announcements#346 och dotnet/aspnetcore#3324. Information om den här ändringen finns i dotnet/aspnetcore#7756.

Version introducerad

5,0

Gammalt beteende

Klassen ResourceManagerWithCultureStringLocalizer och metoden är föråldrade i .NET Core 3.0 och senareResourceManagerStringLocalizer.WithCulture.

Nytt beteende

Klassen ResourceManagerWithCultureStringLocalizer och ResourceManagerStringLocalizer.WithCulture metoden har tagits bort i .NET 5. En inventering av de ändringar som gjorts finns i pull-begäran på dotnet/extensions#2562.

Orsak till ändringen

Klassen ResourceManagerWithCultureStringLocalizer och ResourceManagerStringLocalizer.WithCulture metoden var ofta förvirringskällor för lokaliseringsanvändare. Förvirringen var särskilt stor när du skapade en anpassad IStringLocalizer implementering. Den här klassen och metoden ger konsumenterna intrycket att en IStringLocalizer instans förväntas vara "per språk, per resurs". I verkligheten bör instansen bara vara "per resurs". Vid körning avgör egenskapen CultureInfo.CurrentUICulture vilket språk som ska användas.

Sluta använda ResourceManagerWithCultureStringLocalizer klassen och ResourceManagerStringLocalizer.WithCulture metoden.

Berörda API:er

  • Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture