iPhone Lokalisationen (oder ist das Lokalisierungen?) Übernehmen keine Notiz von der Region der Benutzersätze (dh, UK, Aus, NZ). Es gibt nur eine "englische" Sprachübersetzung, die standardmäßig verfügbar ist. Sie können jedoch mit Dingen herumhacken, um sie dazu zu zwingen, eine andere Übersetzungseinstellung zu verwenden - ich habe das gerade getan, um zwischen "Englisch" (US) und "en_GB" (britisches Englisch) zu wählen.
In Ihrer main.m Datei ändern, damit er so etwas wie unten aussieht (put in ihren eigenen Tests für NZ oder AU)
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// Set up the locale jiggery pokery
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSString *locale = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
if ([language isEqualToString:@"en"] && [locale isEqualToString:@"GB"]) {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en_GB", @"en", nil] forKey:@"AppleLanguages"];
}
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
Daraufhin wird das Benutzer Sprache (zB " de ") in die Sprache NSString und das Gebietsschema des Benutzers (z. B. NZ, GB, AU) in das Gebietsschema NSString. Wenn sie (in meinem Fall) mit en und GB übereinstimmen, dann setze ich die voreingestellten Spracheinstellungen der Benutzer auf "en_GB", dann auf "en".
Dann in Ihrer Anwendung Delegierten Anwendung: didFinishLaunchingWithOptions Methode Sie entfernen möchten, dass NSUserDefaults Einstellung, die Sie mit dem Code nur gesetzt
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
Es ist sicher an dieser Stelle zu entfernen, weil alle das Bündel Initialisierung abgeschlossen ist. Ihre App sollte nun eine Localization.strings-Datei im Verzeichnis en_GB.lproj verwenden.
Es ist ein bisschen eine schreckliche, hacky Lösung, aber es funktioniert für mich.
Löschen der englischen Datei verursachte eine Reihe von Problemen ... Ich habe eine Reihe von anderen Sprachen arbeiten, aber wenn ich die gleiche Sprache aber für verschiedene Regionen verwenden will, funktioniert es nicht: S – dewberry