Ich muss das aktuelle Gebietsschema abrufen. Nicht Benutzergebietsschema, sondern mein Anwendungsgebietsschema.
Nehmen wir an, meine Anwendung hat zwei Lokalisierungen (in den Projekteinstellungen): Englisch (Standard) und Französisch. Wenn der Benutzer die französische Sprache auf dem iPhone einstellt, zeigt meine Anwendung die französische Benutzeroberfläche an. Wenn der Benutzer die deutsche Sprache auf dem iPhone einstellt, zeigt meine Anwendung die englische Benutzeroberfläche an (weil Englisch die Standardeinstellung ist).
Wie bekomme ich das aktuelle Anwendungsgebietsschema, das gerade angezeigt wird? Vielen Dank im Voraus.
Die ausgewählte Antwort gibt die aktuelle Gerätesprache, aber nicht die in der App verwendete Sprache zurück. Wenn Sie in Ihrer App keine Lokalisierung für die bevorzugte Sprache bereitstellen
%Vor% Es mag einen einfacheren Weg als diesen geben (siehe andere Antworten), aber dieser ist am robustesten und solange das allgemeine Prinzip der Lokalisierung einer App durch eine strings
-Datei nicht veraltet ist , diese Methode wird funktionieren.
Im Allgemeinen müssen Sie das Gebietsschema der Anwendung nicht ermitteln (aber lesen Sie weiter, es ist möglich!) Wenn Sie lokalisierten Text möchten, verwenden Sie NSLocalizedString()
. Wenn Sie Bilder lokalisieren müssen, verwenden Sie lokalisierte Ressourcen und so weiter. Es gibt jedoch Gründe, die ich mir vorstellen kann, die es nett machen würden, das "Application Locale" zu bekommen, wie Sie es nennen: zum Beispiel für Analysen (Sie wollen wissen, in welcher Sprache Ihre App verwendet wird), oder für die Bereitstellung eines konsistente einsprachige Benutzeroberfläche für den Benutzer, wenn Sie serverbasierte Kommunikation verwenden (z. B. um die Serverfehlermeldungen in derselben Sprache zu lokalisieren, die der Benutzer in der App sieht.)
Wenn Sie die Lokalisierung der App, die derzeit sichtbar ist, erhalten möchten, haben Sie vermutlich eine Localizable.strings
-Datei für jede unterstützte Ländereinstellung. In der Zeichenkette können Sie die Zeile
und in der französischen String-Datei fügen Sie die Zeile
hinzu %Vor% Dann können Sie das Anwendungs-Gebietsschema immer abrufen, indem Sie NSLocalizedString("lang")
(swift) oder NSLocalizedString(@"lang")
(objective-C) aufrufen. Und natürlich, wenn Sie Ihrer App eine neue Lokalisierung hinzufügen, müssen Sie einen "lang" -Eintrag in die neue Lokalisierungs-Strings-Datei setzen.
In Swift 3 benutzen:
let language = Bundle.main.preferredLocalizations.first
Sie können auf diese Weise Ländercode aus dem Gebietsschema abrufen,
%Vor% Ländercode, z.B. es
(Spanien), fr
(Frankreich), etc.
Sie können diesen Code für Ihre Schnittstellenauswahl zuordnen.
Hoffe, das hilft dir.
Sie können ausgewählte Sprache mit folgendem Code erhalten.
%Vor%Hoffe, das wird dir helfen.
Tags und Links objective-c ios locale localization nslocale