2011-02-25 15 views
5

Estoy en proceso de localizar/internacionalizar mi aplicación de iPhone y tengo una pregunta. En un lugar de mi aplicación, muestro una lista de los 12 meses del año. Como está en su estado actualmente no localizado, simplemente tengo los meses de enero a diciembre codificados en un NSArray. Me gustaría usar NSCalendar para construir programáticamente este NSArray de meses según la configuración regional del usuario. ¿Cuál es la mejor manera de hacer esto?¿Cómo construir programáticamente NSArray de nombres de mes calendario localizados?

Respuesta

11

Usted puede obtener el nombre localizado del mes de la NSDateFormatter:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
for (int i = 0; i < 12; ++i) { 
    NSString *monthName = [[df monthSymbols] objectAtIndex:i]; 
    [...] 
} 
[df release]; 
+4

fresco! Lástima que no funciona en el simulador, una vez que pensé que era un método equivocado ... hasta que lo intenté en el dispositivo ... tks Volker – meronix

+0

¡Gracias por mencionar que no funciona en el simulador, me estaba volviendo loco! –

2

No hay necesidad de hacer la iteración, acaba de obtener los meses directamente:

NSDateFormatter dateFormatter = [[NSDateFormatter alloc] init]; 
NSLog(@"Months = %@", dateFormatter.monthSymbols); 

Swift:

let dateFormatter = NSDateFormatter() 
print("Months = \(dateFormatter.monthSymbols)") 
0

Swift version .... intentado en el patio

proporcionan la localización o el uso currentLocale

var str = "Hello, playground" 

var formatter = NSDateFormatter() 

formatter.locale = NSLocale(localeIdentifier: "sv_SE") 
//formatter.locale = NSLocale.currentLocale() // use this to find it automatically 

print(formatter.monthSymbols) 

RESULTADO

"["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"]\n" 
Cuestiones relacionadas