il peut être fait facilement bien qu'il m'a fallu des semaines pour déterminer comment ;-)
J'ai une application iPhone appelée IDEX qui est un dictionnaire roumain. Sur l'iPad, le roumain n'est pas disponible en tant que langue de l'interface utilisateur. Je voulais donc permettre à l'utilisateur de sélectionner le roumain dans les paramètres de l'application, car les paramètres de l'appareil ne l'incluaient pas.
Ce que vous avez à faire est d'internationaliser l'application et de la localiser comme d'habitude. Ensuite, dans la principale méthode, définissez la clé AppleLanguages
de la norme NSUserDefaults
à la langue et le pays de votre choix, comme si
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObject:@"ro_RO"] forKey:@"AppleLanguages"];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool drain];
return retVal;
}
Il est impératif que vous définissez la AppleLanguages
clé avant vous exécutez UIApplicationMain()
, car c'est à ce moment que le framework UIKit est chargé et la langue par défaut déterminée.
Il est également important que vous spécifiez la langue et le pays (par exemple, @ "ro_RO" et pas seulement @ "ro"), sinon votre application risque de se bloquer lors de la configuration de la clé. En faisant cela, tous les appels à NSBundle
qui prennent en charge la localisation rechercheront la langue que vous avez établie par programme, par opposition à celle définie sur le périphérique.
espoir qui aide ...
D'après ce que j'ai vu de la documentation d'Apple, seule la récupération de cette AppleLanguages les valeurs de clés est mentionné. Avez-vous rencontré des difficultés pour soumettre votre application sur l'App Store? –
J'ai une application sur l'App Store qui utilise exactement ce code. Il a été mis à jour il y a environ un an, sans problème ... – fedmest