Sprache in der App programmgesteuert ändern

9

So ändern Sie die Sprache in Xcode 5

Ich habe 3 Knöpfe auf dem ChangeLanguageViewController

Dies sind:

  • Englisch
  • Chinesisch vereinfacht
  • Bahasa Malaysia

Hier ist Code:

%Vor%

Ich möchte sehen, dass sich die Sprache ändert, wenn der Benutzer auf eine Schaltfläche klickt und die Anwendung nicht beendet wird, aber die Sprache der App in

ändert     
user3278013 27.02.2014, 07:07
quelle

3 Antworten

19

Wenn Sie in der Regel offizielle Sprachen unterstützen, die Apple in iOS unterstützt, gibt es keinen Grund, die Sprachumschaltung innerhalb der App zu ermöglichen. Wenn Sie Übersetzungen in Ihrem Projekt und in der Sprache der Benutzeroberfläche richtig einrichten, wechselt das System automatisch mit dem System. Aber da Sie es von der App wollen, gibt es einige Möglichkeiten, dies zu tun:

1) Sie könnten eine bestimmte Sprache nur für Ihre App mit dem folgenden Code erzwingen:

%Vor%

Ich würde vorschlagen, diesen Code in die main.m-Datei in der "int main" -Funktion direkt vor dem "return UIApplicationMain" einzufügen. Bei dieser Methode müssen Sie jedoch die App beenden oder den Benutzer bitten, die App neu zu starten, damit sie wirksam wird.

Sie können die App beenden, ohne dass der Benutzer das Beenden der App mit exit(0) erzwingen muss. Stellen Sie jedoch sicher, dass der Nutzer die Aktion mit UIAlertView oder ähnlich abbrechen kann oder dass Apple Ihre App ablehnt.

2) Alternative implementiert Ihre eigene Lokalisierungslogik, in der Sie nur Übersetzungen aus Ihrer eigenen Sprachdatei übernehmen. Ein Weg ist dieses Beispiel , das Übersetzungen aus offiziellen lproj-Dateien übernimmt. Auf diese Weise können Sie die Sprache im laufenden Betrieb ohne Neustart ändern, aber Sie müssen alle Etikettentexte manuell aus dem Code laden. Wenn Sie die Übersetzung ändern, müssen Sie den Text auf dem Bildschirm neu auffüllen.

    
frin 27.02.2014, 07:25
quelle
7

Sie können dies nicht ohne Neustart der App tun. Sie müssen also die ausgewählte Sprache in NSUserDefaults speichern und die App neu starten, nachdem Sie die Zeilen in Ihrem main.h eingefügt haben.

%Vor%     
null 27.02.2014 07:17
quelle
1

BEARBEITEN: SWIFT 3.

Verwenden Sie diese Hilfsklasse für Ihre Anforderung.

%Vor%

Ich habe ein Demo-Projekt in github gemacht.

    
Anish 웃 19.05.2016 15:39
quelle

Tags und Links