Escribo una aplicación para iOS, donde deseo que el usuario pueda cambiar el idioma de la interfaz de usuario independientemente del idioma del iPhone o del iPad. La pregunta es, ¿cómo recargo el archivo NIB apropiado para la vista que se muestra actualmente cuando cambia el idioma y cómo cargo el archivo .strings apropiado para que NSLocalizedString
funcione correctamente?Cambiar el idioma de la aplicación iOS sobre la marcha
Respuesta
Esto debería ser el truco, suponiendo que de
es el nuevo idioma seleccionado por el usuario. También asegúrate de que estás reiniciando la vista actual.
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil]
forKey:@"AppleLanguages"];
Gracias por su respuesta rápida. ¿Pero eso no cambia el idioma de todo el teléfono? – tommazzo
No, no puede cambiar la configuración del teléfono del código (al menos el código "aprobado"). – sorin
Aquí hay una lista de todas las representaciones de los nombres de idiomas: http://www.loc.gov/standards/iso639-2/php/English_list.php – KKendall
Personalmente, no me gusta la idea de dar archivos NIB a los traductores. En cambio, diseño los NIB para que haya suficiente espacio para los idiomas que no están en inglés (generalmente requerirán un 50% más de espacio para el texto), y luego almaceno todos los recursos de texto en archivos Localizable.strings.
Luego, en mi código establezco el texto para cada control de UI.
[_myButton setTitle:NSLocalizedString(@"My button title",
@"My description for translation file, e.g. including chars limit")
forState:UIControlStateNormal];
Me parece que esto hace que el proceso de traducción sea más fácil de administrar.
Para responder a su pregunta original, pondría este código en la función viewWillAppear
de su para asegurarse de que se vuelva a cargar cada vez que vuelva a aparecer la IU.
Acabo de localizar mi aplicación y tengo que estar de acuerdo con lo que estás diciendo. +1. – Moshe
Gracias, esta es definitivamente una manera de hacerlo. Discutiré este cambio de idioma de nuevo con mis clientes. Una alternativa, el uso de los archivos NIB para la localización es preguntar al usuario si desea reiniciar la aplicación, una vez que se detecta un cambio en la configuración del idioma. – tommazzo
- 1. uploadify | cambiar uploadifysettings sobre la marcha
- 2. cambiar la configuración de idioma de la aplicación en iOS no en el dispositivo completo
- 3. ¿Cambiar el valor de configuración sobre la marcha?
- 4. Cambiar el idioma de la aplicación mediante programación
- 5. Cambiar la ordenación en un NSFetchedResultsController sobre la marcha
- 6. iOS: cómo obtener el idioma actual de la aplicación
- 7. Cambiar el idioma de descripción predeterminado de la aplicación
- 8. Cambiar un objeto QuerySet sobre la marcha en Django
- 9. métodos Creación sobre la marcha
- 10. Cargando jQuery sobre la marcha
- 11. iOS: Configuración del idioma principal para la aplicación al localizar
- 12. ¿Cómo cambiar el texto de la pestaña de Android sobre la marcha?
- 13. ¿Puedo cambiar la metaetiqueta de la vista en safari móvil sobre la marcha?
- 14. Escribir en/res/dibujable/sobre la marcha?
- 15. Abrir archivo PDF sobre la marcha desde una aplicación Java
- 16. Cambiar el tamaño de la imagen PHP sobre la marcha vs almacenar imágenes redimensionadas
- 17. Generando un archivo RDP sobre la marcha
- 18. Cálculo de percentiles sobre la marcha
- 19. Archivos ZIP de PHP sobre la marcha
- 20. Cargando complementos Haskell sobre la marcha
- 21. Convertir EPS a PDF sobre la marcha con pdflatex sobre la marcha
- 22. claves de diccionario Generación sobre la marcha
- 23. Creación de subdominios sobre la marcha
- 24. Creación de claves JSON sobre la marcha
- 25. ExtJS 4 Cambiar la tienda de la grilla sobre la marcha
- 26. ¿Cómo puedo cambiar la duración de una Animación de Android AnimationDrawable sobre la marcha?
- 27. Idioma predeterminado no inglés para la aplicación iOS?
- 28. android: refleje el cambio de idioma de la interfaz de usuario en la marcha sin la aplicación de recarga/reinicio
- 29. Forzar actualización de interfaz de usuario sobre la marcha, después de cambiar la cultura actual en WPF
- 30. Cambiar el color de fondo de elementos individuales sobre la marcha
Usted sabe que las personas pueden cambiar el idioma en la aplicación de Configuración y su aplicación ** no ** debe tener una opción separada para esto, ¿no? –
Es posible que necesite una opción separada para esto, si desea que un determinado idioma sea el idioma de respaldo, ese no es el mismo idioma que la primera localización existente en la lista de idiomas de los usuarios. Este es un patrón muy común. – brainray