Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get current device language if it's been changed after app start?

When you start the app there are a lot of ways to get current device language:

  • CultureInfo.CurrentCulture
  • CultureInfo.CurrentUICulture
  • CultureInfo.DefaultThreadCurrentCulture
  • CultureInfo.DefaultThreadCurrentUICulture
  • Thread.CurrentThread.CurrentCulture
  • Thread.CurrentThread.CurrentCulture

But if I change device language while app is running, none of those values will be updated.

Is there a universal way to get current device language, or do I need to write code for each platform independently?

  • Android: CultureInfo.GetCultureInfo(Locale.Default.ToString().Replace('_', '-'))
  • iOS: CultureInfo.GetCultureInfo(NSLocale.CurrentLocale.LocaleIdentifier.Replace('_', '-'));
  • UWP: CultureInfo.GetCultureInfo(GlobalizationPreferences.Languages[0].ToString())
like image 552
maxc137 Avatar asked Nov 07 '25 02:11

maxc137


1 Answers

Please try

Java.Util.Locale currentLanguage = this.Resources.Configuration.Locales.Get (0);

I am using this call in Xamarin Android and it works fine for me. "this" is in class Android.App.Activity.

like image 181
Stryi C. Avatar answered Nov 08 '25 20:11

Stryi C.



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!