localizzazioni di iPhone (o è che localizzazioni?) Non prendono alcun avviso della Regione l'utente imposta (ad esempio, Regno Unito, Aus, NZ). C'è una sola traduzione in lingua "inglese" disponibile per impostazione predefinita. Tuttavia, puoi incappare in qualcosa per costringerlo a utilizzare una diversa impostazione di traduzione: l'ho appena fatto per scegliere tra "English" (Stati Uniti) e "en_GB" (inglese britannico).
Nel file main.m, alterarlo in modo che sembra qualcosa di simile al di sotto (mettere il proprio test per NZ o 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;
}
Questo apre la lingua degli utenti (ad esempio " it ") nella lingua NSString e nella locale dell'utente (ad esempio, NZ, GB, AU) nella locale NSString. Se (nel mio caso) corrispondono a en e GB, quindi imposto alle impostazioni predefinite della lingua di preferenza degli utenti "en_GB", quindi "en".
Poi, nell'applicazione delegati di applicazione: Metodo didFinishLaunchingWithOptions si desidera rimuovere che NSUserDefaults impostazione appena impostato con il codice
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
E 'possibile rimuovere a questo punto perché tutta l'inizializzazione fascio è stato completato. L'app dovrebbe ora utilizzare un file Localization.strings nella directory en_GB.lproj.
È un po 'una soluzione orribile e hacky, ma funziona per me.
eliminare il file inglese ha causato un sacco di problemi ... Ho un sacco di altre lingue di lavoro, ma quando voglio usare la stessa lingua, ma per regioni diverse, non funziona: S – dewberry