Ich möchte die aktuelle Sprache anzeigen, die die Benutzeroberfläche des Geräts verwendet. Welchen Code würde ich verwenden?
Ich möchte dies als NSString
in vollständig ausgeschriebener Form. (Nicht @"en_US")
EDIT: Für diejenigen, die vorbeifahren, gibt es hier eine Menge nützlicher Kommentare, da sich die Antwort mit neuen iOS-Versionen weiterentwickelt hat.
1 Stimmen
Dies ist eingebaut in
NSLocale
. Siehe meine Antwort.18 Stimmen
iOS9 Kommentar: achten Sie darauf, dass Apple aus irgendeinem Grund das Format geändert hat, das von
[NSLocale preferredLanguages]
. früher wurde sie durch einen Unterstrich getrennt (z. B.en_US
), aber jetzt wurde er in einen Bindestrich umgewandelt:en-US
7 Stimmen
Mehr zu iOS9: Der Erhalt von [NSLocale preferredLanguages] auf einem iOS 8.4-Simulator im Vergleich zu einem 9.0-Simulator weist ebenfalls Diskrepanzen auf. Auf iOS 8.4 ist es "en" und iOS 9.0 ist es "en-US".
0 Stimmen
Dieser Kommentar hat mir sehr geholfen! Wir steckten mit einem einfachen Problem fest und fragten uns, was etwa 1 Stunde lang falsch lief, bis ich Ihren Kommentar sah.
4 Stimmen
NSLocale
hat MethodencomponentsFromLocaleIdentifier:
ylocaleIdentifierFromComponents:
die wahrscheinlich der richtige Weg sind, um das (potenziell veränderbare) Format zu handhaben.