-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use ICU on Windows when available #34645
Use ICU on Windows when available #34645
Conversation
…agedImplementation
Tagging @tarekgh, @safern as an area owner |
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Unix.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.cs
Outdated
Show resolved
Hide resolved
...no/netcore/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.Mono.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.cs
Outdated
Show resolved
Hide resolved
FYI I recently changed some of these files in #34616. There will be conflicts until you merge in origin/master. |
src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Private.CoreLib/src/System/Globalization/CalendarData.Icu.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Globalization/GlobalizationMode.Windows.cs
Outdated
Show resolved
Hide resolved
Another question. We use the sysglobl APIs to create additional cultures and reparent them to existing ones in most cases. This afaik ultimately are just additions to the registry. Will such a feature will be available to ICU? |
…agedImplementation
Unfortunately, we'll be limited to what the underlying ICU library is providing to us. I checked with the Windows team and learned custom locales are not supported by ICU when running on Windows. It would be nice if you can tell why you are using such custom locales? |
@tarekgh For business and legal reasons we need to define few markets differently than Windows. So we definitely need to use the app local feature. The question is how much more complicated is it that than the current process which is calling sysglobl APIs. Is the app-local feature documentation available somewhere? |
Is this mean you need to update some locale data but not adding any more locales?
This is not implemented yet. we are going to implement it next couple of weeks. Basically app local feature is the app will carry its own copy of ICU. Using the tool https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md I believe you can build your own customized copy of ICU data and use it. I didn't play with this tool before but I think it will give you full control over the locale data for your app. Also, you'll have control when you can pick a newer version of the ICU at the time you like. |
Contributes towards: #826
Fixes: #4673
Mono is still defaulted to use NLS because we don't produce a shim in the libraries Windows build. Once the shim is linked into the mono runtime I'll update the mono code to use ICU when available. (cc: @marek-safar)
FYI: @GrabYourPitchforks @ericstj