Simulator's language already changed to Japanese, why [[NSLocale preferredLanguages] objectAtIndex:0]
always return "en"
?
Neither preferred language nor region is related to "en", where does "en"
come from?
Tried to get [[NSLocale preferredLanguages] objectAtIndex:
2]
, then crash shows *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFArray objectAtIndex:]: index (2) beyond bounds (1)
Does it means there is no any languages are set in simulator? So weird!
This never happened before upgrading to Xcode 6.1 with iOS8.1/7.1.
Meanwhile, tried same thing on my iPhone 5, console output correct thing.
Why so weird? Does anybody have such problems?
Updates: 1
- Delete Xcode as well as simulators, and reinstall it by downloading from Mac Store.
- Create a new simple project, change simlulator's language
- Still get always "en".
Oh! What's wrong....
Updates: 2
- Today, reinstalled brand new Yosemite by reformatting HD
- Download Xcode 6.1
- Start a new simple default project
- Put these codes
- Change / Add language of simulator, Japanese, Dutch, English,
- Run
- Oh, God! Got only
"en"
again, Japanese and English not found!
Why still only one "en"
could be found? Where are Japanese and English?
What happened to simulators?
Is there anything I missed?
This is a bug. It was driving me crazy. Apple already knows it.
See this answers:
iOS8.1 Simulator always uses US keyboard layout despite german hardware keyboard
and this:
iOS 8.1 Simulator Localization broken (NSLocalizedString)
(In the answer there is a temporary fix changing the schema)
Best, gigi
My iOS simulator suddenly started reporting "en"
rather than "en-US"
, so it seems this issue is still active.
Reproduced in:
- Xcode 8.2.1, iOS 10
- Xcode 9.4.1, iOS 11
I went into the language settings and English and United States were selected. I selected Canada and French, and got "fr-CA"
. I then switched it back and started getting "en-US"
again. I've been unable to reproduce the "en"
issue since.
So it appears we cannot pass the values of [NSLocale preferredLanguages]
on assuming they will be Language-Region pairs.
来源:https://stackoverflow.com/questions/26572115/nslocale-preferredlanguages-objectatindex0-always-return-en