Wie bekomme ich das aktuelle Anwendungsgebietsschema?

9

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.

    
Alexandr 01.05.2015, 12:39
quelle

5 Antworten

18

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%     
Vijay yadav 01.05.2015, 13:02
quelle
19

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

hinzufügen %Vor%

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.

    
Michael 01.05.2015 13:09
quelle
7

In Swift 3 benutzen:

let language = Bundle.main.preferredLocalizations.first

    
Jonathan Francis 01.05.2015 12:56
quelle
3

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.

    
Viral Savaj 01.05.2015 12:42
quelle
0

Sie können ausgewählte Sprache mit folgendem Code erhalten.

%Vor%

List_of_ISO_639-1_codes

Hoffe, das wird dir helfen.

    
Jatin Patel 01.05.2015 13:05
quelle