6

Actualmente tengo dos idiomas compatibles: inglés y español. Por lo tanto, tengo dos archivos main.strings para cada idioma. Uno en en.lproj y uno en es.lproj.iPhone: archivo de cadenas por defecto de localización/internacionalización

Lo que quiero ahora es que el main.strings Inglés es el archivo predeterminado si un usuario con una configuración regional que no enes o llega a la aplicación, por ejemplo, de o fr.

Sé que puedo configurarlo manualmente para cada cadena en el código con el parámetro defaultString:

NSLocalizedStringWithDefaultValue(key, @"main",[NSBundle mainBundle], defaultString, comment); 

Pero yo preferiría no entrar en él allí de nuevo (y tienen que cambiar en dos lugares), sino que tiene el archivo enmain.strings como predeterminado para cualquier otra configuración regional "no compatible".

Respuesta

11

Lo que quiero ahora es que los Inglés main.strings es el archivo predeterminado si un usuario con una configuración regional que no es o es llega a la aplicación, por ejemplo, de o fr.

¿Has probado eso? Estoy casi seguro de que la aplicación volverá a la configuración en inglés sin que usted haga nada en absoluto. Incluso los diálogos del sistema aparecerán en inglés a menos que su aplicación admita explícitamente la configuración regional actual.

+1

Argh. Tienes toda la razón. Estúpido de mí por no haber probado a fondo. En lugar de utilizar un lenguaje completamente diferente, usé "es" para probar, para lo cual ya tenía un archivo de cadena vacío creado. – znq

+6

el repliegue depende de la secuencia de [NSLocale preferredLanguages] en lugar del inglés predeterminado. por ejemplo, si cambias de chino a alemán, el primero es deutsch y el segundo chino, por lo que si la aplicación admite chino, entonces muestra chino en lugar de inglés – chings228

+0

este de arriba debería ser la respuesta aceptada –

Cuestiones relacionadas