[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Correct Current NSLocale on Android

From: Frederik Seiffert
Subject: Re: Correct Current NSLocale on Android
Date: Fri, 18 Sep 2020 11:03:44 +0200

Sounds good! I’ve added the following info to the list of known issues:

  • GNUstep Base will also currently not return the system locale as the current NSLocale on Android (the current locale will always default to en_US_POSIX). As a workaround, the app can manually set the system’s locale identifier for the key "Locale" in NSUserDefaults, and use -[NSLocale autoupdatingCurrentLocale] to retreive the locale.

Am 18.09.2020 um 10:44 schrieb Stefan Pauwels <stefan@pauwels.ch>:

OK, -[NSLocale autoupdatingCurrentLocale] works, but only if I
[[NSUserDefaults standardUserDefaults] setObject:whateverCode forKey:@"Locale"]

So, firstly: Thanks a lot, this solves my problem!
But secondly I think for setting up GNUstep on Android it’s not enough to just [NSUserDefaults setUserLanguages:] as mentioned in https://github.com/gnustep/tools-android#status-and-known-issues and the sample app.


Am 17.09.2020 um 10:41 schrieb Frederik Seiffert <frederik@algoriddim.com>:

Hi Stefan,

Can you try using -[NSLocale autoupdatingCurrentLocale] as suggested by Wolfgang?

I think currentLocale gets initialized once doesn’t change when updating the user default value.


Am 16.09.2020 um 17:37 schrieb Stefan Pauwels <stefan@pauwels.ch>:

But how? Even if I do this:
[[NSUserDefaults standardUserDefaults] setObject:@"de_CH" forKey:@"Locale"];
I will always get „en_US_POSIX“ for
NSLog(@"Current Locale: %@", [NSLocale currentLocale]);

Am 16.09.2020 um 14:59 schrieb Wolfgang Lux <wolfgang.lux@gmail.com>:

Hi Stefan

Am 16.09.2020 um 12:23 schrieb Stefan Pauwels <stefan@pauwels.ch>:


I am initializing GNUstep on Android as advised in the tools-android README, i.e. I am calling
[NSUserDefaults setUserLanguages:]
which seems to work for just setting the language, but when I try to rely on the currentLocale (for other information like region, metric system usage, etc.) I always get „en_US_POSIX“ as the locale.

Is there a way to manually init the locale correctly?

The user’s current locale is initialized from the user defaults. This should normally be modified by the defaults tool from the command line or by the SystemPreferences application.
To override that programmatically in your own application set the "Locale" default in the standard user defaults. You may also need to use autoupdatingCurrentLocale to see the effect of the change.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]