Ändern der Sprache in der app programmgesteuert in iOS
So ändern Sie die Sprache in Xcode 5
Habe ich 3 Tasten auf der ChangeLanguageViewController
Diese sind:
- Englisch
- Chinesisch (Vereinfacht)
- Bahasa Malaysia
Hier ist der code:
#import <UIKit/UIKit.h>
@interface ChangeLanguageViewController :UIViewController
-(IBAction)changeEnglish:(id)sender;
-(IBAction)changeChinesesimplified:(id)sender;
-(IBAction)changeBahasaMalaysia:(id)sender;
-(IBAction)changeEnglish:(id)sender{
[[NSUSerDefaults standardUSerDefaults] setObject:[NSArray arrayWithObjects:@"en", @"zh-Hans", @"ms", nil] forKey:@"AppleLanguage"];
}
-(IBAction)changeChinesesimplified:(id)sender{
[[NSUSerDefaults standardUSerDefaults] setObject:[NSArray arrayWithObjects:@"zh-Hans", @"ms", @"en", nil] forKey:@"AppleLanguage"];
}
-(IBAction)changeBahasaMalaysia:(id)sender{
[[NSUSerDefaults standardUSerDefaults] setObject:[NSArray arrayWithObjects:@"ms",@"en",@"zh-Hans", nil] forKey:@"AppleLanguage"];
}
Möchte ich sehen, die Sprache zu ändern, wenn der Benutzer eine Taste drückt und es wird nicht töten die Anwendung, sondern es ändert sich die Sprache der app innerhalb
InformationsquelleAutor user3278013 | 2014-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel, wenn Sie Unterstützung offizielle Sprachen, die von Apple unterstützt bei iOS, gibt es keinen Grund zu geben Sprachumschaltung innerhalb der app, nur richtig einrichten, übersetzungen im Projekt und Schnittstelle Sprache automatisch mit dem system. Aber da Sie wollen, dass es von der app, es gibt nur wenige Wege zu gehen über diese:
1) könnten Sie zwingen, eine bestimmte Sprache nur für Ihre app mit dem folgenden code:
Ich würde empfehlen, diesen code in main.m Datei in der "int main" - Funktion unmittelbar vor der "Rückkehr UIApplicationMain". Aber diese Methode erfordert, dass Sie töten die app oder das sagen Benutzer die app starten, um wirksam zu werden.
Können Sie töten die app, ohne Benutzer zu zwingen, beenden Sie die app mit
exit(0)
, aber stellen Sie sicher, Benutzer hat Möglichkeit zum Abbruch der Aktion mitUIAlertView
oder ähnliches, oder Apple kann ablehnen, Ihr app.2) Alternative ist die Umsetzung Ihrer eigenen Lokalisierungs-Logik, wo Sie nur übersetzungen aus Ihrer Sprache die Datei. Eine Möglichkeit in diesem Beispiel nimmt übersetzungen von offiziellen lproj Dateien. Auf diese Weise können Sie die Sprache ändern, on the fly (ohne Neustart), aber Sie müssen manuell laden alle label-Texte aus dem code. Wenn Sie ändern die übersetzung, die Sie haben, um wieder zu bevölkern, die text auf dem Bildschirm.
Ändern der AppleLanguages in NSUserDefaults wird nicht wirksam, wenn genannt, die außerhalb der main-Funktion gesetzt werden muss, um dort. Sie können Ihre eigenen Variablen mit der-Taste, sagen Anwender zum Neustart der app, und in der Haupt-Lesen Sie Ihre variable und legen Sie es auf AppleLanguages.
"Sie können töten die app, ohne Benutzer zu zwingen, beenden Sie die Anwendung mit exit(0), aber stellen Sie sicher, Benutzer hat Möglichkeit zum Abbruch der Aktion mit uialertview-Objekt oder ähnlich, oder Apple kann ablehnen, Ihr app." wie kann ich das machen?
diese Lösung funktioniert nicht mehr in IOS10
InformationsquelleAutor frin
Können Sie das nicht ohne Neustart der app.
So müssen Sie zum speichern der ausgewählten Sprache in
NSUserDefaults
und die app starten, nachdem Sie folgenden Zeilen in Ihremain.h
.InformationsquelleAutor null
EDIT: SWIFT 3.
Verwenden Sie diese helper-Klasse für Ihre Anforderung.
Ich habe ein demo-Projekt in github.
Ändern von server-text vor Ort ist nicht möglich.Was Sie tun müssen, ist geben Sie zwei Sprachen im server und fordern Sie die gewünschte Sprache im header jeder Anfrage.Server mit der Bearbeitung der Kopf-und return-Sprache wie der Wunsch
Dosis das funktioniert für Webview zu?
InformationsquelleAutor LC 웃