2009-07-06 19 views

Respuesta

8

Puede utilizar la API de NSLocale para obtener esa información, pero no es necesario para hacer lo que quiere hacer. OS X tiene support for localization integrado en el sistema operativo: todo lo que necesita hacer es proporcionar los archivos de idioma apropiados y el usuario puede seleccionar el idioma que desea.

+0

¡Muchas gracias! Estoy feliz, Si me das algunos códigos de ejemplo – freddiefujiwara

+1

No es exactamente el tipo de cosas en el que sólo puede dar código de ejemplo, ya que las interfaces de usuario de Mac se suelen almacenar en puntas y por lo tanto no hay realmente ningún código responsable. Básicamente, hay una estructura de directorios que los recursos de su aplicación deben seguir y el sistema operativo se encargará del resto por usted. Lea los documentos de localización en el enlace que le di y verá cómo funciona. Para ocasiones en las que está renderizando texto mediante programación, generalmente usará la función NSLocalizedString(). – Chuck

3

lo que busca es "localizar" su aplicación. Para comenzar, consulte los documentos de Apple aquí: Internationalization - Apple Developer Docs. ¡Sin saber más acerca de su aplicación específica, sería difícil sugerir algo más aquí!

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

'[[NSLocale currentLocale] displayNameForKey: valor NSLocaleIdentifier: [[NSLocale currentLocale] LocaleIdentifier]]' puede ser utilizado para obtener la versión plain-Inglés de la LocaleIdentifier – Alexander

6

fragmento de código

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

se puede utilizar cualquier medio de dos maneras siguientes:

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

salida: Idioma: es

o esto:

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

salida: Idioma: es

0

Para ser exactos hay un cambio con IOS 9 y mayor cuando [NSLocale preferredLanguages] ahora regresar - en lugar de solamente. Entonces es mejor hacer:

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

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