Estoy desarrollando una aplicación para un cliente en Europa. Soy un hablante de inglés en los Estados Unidos. Nuestra aplicación admite varios idiomas, pero no inglés. Tengo todas las cadenas en nuestra aplicación en archivos traducidos de Localized.strings, configurados correctamente para los diferentes idiomas, y todos funcionan bien cuando el dispositivo está configurado en el idioma correcto (el idioma del dispositivo es alemán = la aplicación está correctamente localizada para el alemán) .Idioma predeterminado no inglés para la aplicación iOS?
Existe un problema cuando el dispositivo no está configurado en uno de los idiomas que admitimos, por ejemplo, en mi teléfono que está configurado en inglés. Queremos que el teléfono vuelva al alemán en casos como este, pero eso no está sucediendo. Lo que estamos viendo es que el teléfono está utilizando el idioma que aparece más alto en la lista Idioma en la sección Internacional de Settings.app. Para mi teléfono, el idioma que no está en inglés más alto de la lista es el francés, de modo que cuando ejecuto la aplicación, está localizado en francés. Si cambio mi teléfono al alemán y luego al inglés (lo que cambia el orden en la lista de idiomas), la aplicación se ubica en alemán.
¿Cómo puedo asegurarme de que la aplicación tenga por defecto el alemán para los idiomas no admitidos? Usé this tutorial para configurar las configuraciones regionales del proyecto. Esto incluye eliminar la configuración regional "inglesa" predeterminada que se crea cuando localiza por primera vez un archivo. En el archivo de proyecto, he añadido:
developmentRegion = de;
Además, en el Info.plist, tengo
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
sin éxito.
¡Cualquier idea sería apreciada!
Pascal tiene la respuesta correcta: La aplicación volverá a caer a la siguiente localización más razonable; esto es por diseño, y es la forma en que se supone que todas las aplicaciones en iOS y Mac OS X funcionan. Tu aplicación no es especial. –
Todavía estoy reflexionando sobre esta respuesta. Si bien esta es obviamente una respuesta bien pensada, al final del día, el requisito comercial sigue siendo que la aplicación debe volver al alemán en el caso de que no exista una localización adecuada; esto no es negociable con el cliente Lo que es interesante, y lo que estoy aludiendo en el título de mi pregunta, es que si la carpeta English.lproj se mantiene en el proyecto, se usa como un respaldo cuando no hay otra localización disponible.Si no puedo entender nada más, simplemente mantendré esa carpeta y copiaré los activos "de" allí. –
No, el inglés tampoco es un valor predeterminado del sistema. Es simple, el sistema operativo tiene una lista de localizaciones, como se establece en las preferencias. Al iniciar una aplicación, busca las carpetas * .lproj correspondientes y utiliza la primera que coincide con un idioma de la lista. Es por eso que usa el inglés cuando no hay nada más cerca. ;) Pero sé otro truco, formulará una nueva respuesta ... – Pascal