xamarin/Xamarin.Forms

[Android] CultureInfo does not update when the user changes language choice while the app is running

Aperta

#4282 aperta il 1 nov 2018

 (5 commenti) (1 reazione) (0 assegnatari)C# (1926 fork)batch import
a/l10ne/4 :clock4:help wantedp/Androidt/bug :bug:up-for-grabs

Metriche repository

Star
 (5644 stelle)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

Steps to Reproduce

  1. Create a new app
  2. Add the following in the constructor of App.xaml.cs
CultureInfo.CurrentCulture.ClearCachedData();
CultureInfo.CurrentUICulture.ClearCachedData();
var x = CultureInfo.CurrentCulture;
var y = CultureInfo.CurrentUICulture;
  1. Observe that initially, the culture is set to en-US (assuming you have English US language as your top choice)
  2. While the app is running, go to Android settings and change your main language to something else and hit apply.
  3. Go back to the app. Notice that the App constructor is run again, but the culture info is not updated despite us clearing cached data.
  4. Exit the app and run it again. Observe that the culture info is updated this time.

Ref: #3949 & https://github.com/xamarin/Xamarin.Forms/pull/423

EDIT: RegionInfo.CurrentRegion is not updated either.

Guida contributor