If I change the language on an iOS 8.1 simulator to anything and try to detect this from code with
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"Language: %@", language);
I get "en" back. I've tried resetting the navigator, etc. I've tried this using the iOS 7.1 runtime (in Xcode 5.1.1), and it worked fine. Has anyone managed to find a workaround to this problem?
According to the release notes this is a known issue. There is a work around. If you go to "Edit Scheme..." then the "Options" tab there's an "Application Language" option. This only affects the current run settings, not the app, much like changing the language of the device.
https://i.stack.imgur.com/74xw0.png
Another dupe of iOS8.1 Simulator always uses US keyboard layout despite german hardware keyboard
Known and documented bug as mentioned in the Xcode 6.1 release notes. File a radar if you want to add your +1 to the complaint list at http://bugreport.apple.com
My simulator is in French language. When I want to check interface in English then changing the iphone language is not enough. I have to switch the region settings minimum two times.
use [[NSLocale availableLocaleIdentifiers]
In my case, editing schema works for region but not for language. It looks overwrite by development language. Changing developmentRegion works fine with project.pbxproj like this.
developmentRegion = ja;
https://i.stack.imgur.com/3H8fF.png
Xcode Version 11.3.1 (11C504)
iPhoneX iOS 13.3.1
Success story sharing