You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Improve invariant globalization mode to be more complete #43774
The improvements to make invariant globalization mode more complete have been suggested since this mode was introduced. This issue extracts information from various existing comments and suggestion for easier .NET6 tracking.
Make basic lower/upper casing of non-ASCII characters work. The experience is pretty bad today if you are non-English speaking and like to use your native alphabet. The size footprint for doing this does not seem prohibitive.
Throw exceptions when somebody asks for non-invariant culture-specific data to make the bugs caused by missing globalization support easy to discover. We return bogus invariant data silently today.
Libraries can require globalization information to function correctly, for example SqlClient. Currently the way to check if the library is running in invariant mode is CultureInfo.GetCultureInfo("en-US").EnglishName.Contains("Invariant") which could be slow if it causes a culture instantiation and isn't obvious. It would be nice if there were a cleaner way to detect the mode.
Throw exceptions when somebody asks for non-invariant culture-specific data to make the bugs caused by missing globalization support easy to discover. We return bogus invariant data silently today.
I would be careful doing that. apps using libraries which they don't control and libraries can be creating non invariant cultures. Apps will not have any choice at that time but not using such libraries.
Activity
GrabYourPitchforks commentedon Oct 23, 2020
Also related: #20674, which is philosophically a "how do we want
OrdinalIgnoreCaseto behave in an ICU world?" question.Wraith2 commentedon Oct 23, 2020
Libraries can require globalization information to function correctly, for example SqlClient. Currently the way to check if the library is running in invariant mode is
CultureInfo.GetCultureInfo("en-US").EnglishName.Contains("Invariant")which could be slow if it causes a culture instantiation and isn't obvious. It would be nice if there were a cleaner way to detect the mode.tarekgh commentedon Oct 23, 2020
I would be careful doing that. apps using libraries which they don't control and libraries can be creating non invariant cultures. Apps will not have any choice at that time but not using such libraries.
jkotas commentedon Oct 23, 2020
We can add compat quirks if we find this to be a problem.
tarekgh commentedon Oct 24, 2020
I am pretty sure we'll get a lot of noises with that and the volume of complain can be none trivial.
danmoseley commentedon Nov 10, 2020
@tarekgh could you add an estimated cost label? https://github.com/dotnet/runtime/labels?q=cost
tarekgh commentedon Nov 10, 2020
@danmosemsft done.