2010-08-24 5 views
0

Je travaille actuellement sur une application iPad (iOS SDK v3.2). L'application est localisée en plusieurs langues, par exemple anglais, allemand, russe, ...Comment changer la localisation après le démarrage d'une application iPad

Je souhaite que l'utilisateur puisse changer la localisation pour certains éléments de l'interface utilisateur après l'application a été démarrée. Quel est le meilleur moyen d'y parvenir? NSLocalizedString choisit toujours les paramètres régionaux définis dans les préférences du système, cela n'aidera pas.

Remarque: la localisation est entièrement effectuée à l'aide de fichiers .strings, il n'y a pas de NIB localisées dans mon projet.

Pour rendre l'ensemble du processus plus clair, voici un exemple: Lorsque l'application est démarrée, l'interface utilisateur s'affiche en anglais. L'utilisateur peut sélectionner une langue différente d'un UITableView et des parties de l'interface utilisateur sont mises à jour avec la langue choisie. Dois-je charger manuellement le fichier Localizable.strings spécifique et l'analyser complètement ou existe-t-il une meilleure option pour obtenir les chaînes appropriées?

Tout conseil utile est apprécié.

Merci beaucoup d'avance et meilleures salutations.

Répondre

4

Je suppose que je trouve une réponse à ma propre question:

NSLocale *selectedLocale; // defined in the classes interface 
NSString *language = [selectedLocale objectForKey:NSLocaleLanguageCode]; 
NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]; 
NSBundle *bundle = [NSBundle bundleWithPath:path]; 

self.textView.text = NSLocalizedStringFromTableInBundle(@"Yadayada", @"Localizable", bundle, @"Yadayada comment"); 
Questions connexes