8
votes

Comment obtenir des paramètres régionaux de langue de l'utilisateur dans Objective-C?

Je développe une application pour Mac OS X. Je souhaite modifier le contenu de l'indication par la langue des langues (anglais, espagnol, etc.) de l'utilisateur de l'application, comment obtenir des informations sur quelle langue est utilisée?


0 commentaires

6 Réponses :


8
votes

Vous pouvez utiliser l'API Nslocale pour obtenir cette information, mais il n'est pas nécessaire de faire ce que vous voulez faire. OS X a Prise en charge de la localisation intégrée au système d'exploitation - Tous Il faut faire est de fournir les fichiers de langue appropriés et l'utilisateur peut sélectionner la langue qu'il souhaite.


2 commentaires

Merci beaucoup! Je suis heureux, si tu me donnes des tests d'exemple


Ce n'est pas exactement le genre de chose où vous pouvez simplement donner l'exemple de code, car les interfaces utilisateur MAC sont généralement stockées dans des NIB et donc il n'y a pas vraiment de code responsable. Fondamentalement, il y a une structure de répertoire que les ressources de votre application doivent suivre et le système d'exploitation gérera le reste pour vous. Lisez les documents de localisation dans le lien que je vous ai donné et vous verrez comment cela fonctionne. Pour les occasions où vous rendantez du texte programmatique, vous utiliserez généralement la fonction NsLocalizedString ().



3
votes

Vous cherchez à "localiser" votre application. Pour commencer, consultez les documents Apple ici: Internationalisation - Documents du développeur Apple . Sans en savoir plus sur votre application spécifique, il serait difficile de suggérer quelque chose de plus ici!


0 commentaires

25
votes
NSLog(@"localeIdentifier: %@", [[NSLocale currentLocale] localeIdentifier]);

1 commentaires

[[Nslocale CurrentLocale] DisplayNameForKey: NslocalIdentifier Valeur: [[[[[Nslocale CurrentLocale] LocalIdentifier]] peut être utilisé pour obtenir la version plaine-anglaise du localidiifier



6
votes

Snippet de code

 NSLocale *locale = [NSLocale currentLocale]; 
 [locale objectForKey:NSLocaleLanguageCode]


0 commentaires

3
votes

Vous pouvez utiliser n'importe quel moyen des deux manières ci-dessous:

NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"Language: %@", language);


0 commentaires

0
votes

Pour être exact, il y a un changement avec iOS 9 et plus élevé où [Nslocale PreferredLanguages] est maintenant de retour - au lieu de seulement. Donc, il vaut mieux faire: xxx


0 commentaires