2009-07-06 5 views

Répondre

8

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 support for localization intégré dans le système d'exploitation - tout ce que vous devez faire est de fournir les fichiers de langue appropriés et l'utilisateur peut sélectionner la langue qu'il veut.

+0

Merci beaucoup! Je suis heureux, Si vous me donnez quelques exemples de codes – freddiefujiwara

+1

Ce n'est pas exactement le genre de chose où vous pouvez simplement donner un exemple de code, puisque les interfaces utilisateur Mac sont généralement stockées dans des plumes 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 s'occupera du 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 affichez du texte par programmation, vous utiliserez généralement la fonction NSLocalizedString(). – Chuck

3

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

22
NSLog(@"localeIdentifier: %@", [[NSLocale currentLocale] localeIdentifier]); 
+0

'[[NSLocale currentLocale] displayNameForKey: Valeur NSLocaleIdentifier: [[NSLocale currentLocale] localeIdentifier]]' peut être utilisé pour obtenir la version en clair de localeIdentifier – Alexander

6

extrait de code

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

vous pouvez utiliser comme bon des deux façons suivantes:

NSString *language = [[NSLocale currentLocale] localeIdentifier]; 
NSLog(@"Language: %@", language); 

sortie: Langue: en_US

ou ceci:

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

sortie: Langue: en

0

Pour être exact, il y a un changement avec iOS 9 et plus où [NSLocale preferredLanguages] retourne maintenant - au lieu de seulement. Donc, il est préférable de faire:

NSString *languageOS = [[NSLocale preferredLanguages] objectAtIndex:0]; 

if([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) { 
    languageOS = [[languageOS componentsSeparatedByString:@"-"] objectAtIndex:0]; 
} 
Questions connexes