Cambie el idioma de la aplicación mediante programación con guiones gráficos

Necesito crear una aplicación para iPhone que sea bastante simple con un par de formularios que envíen algunos datos a una aplicación web. La primera vez que el usuario abre la aplicación, se le debe presentar una pantalla de selección de idioma.

Creé la aplicación utilizando guiones gráficos y todo funciona como debería, las vistas de selección de idioma aparecen por primera vez, el idioma seleccionado se guarda en los valores predeterminados de usuario estándar, etc.

Ahora, ¿cuál es la mejor manera de implementar un segundo idioma (francés), ya que es la primera vez que trato con aplicaciones localizadas? Después de buscar un poco, descubrí cómo agregar un nuevo idioma/localización a un guión gráfico y todo funciona según lo previsto cuando se selecciona el idioma correcto en la configuración del teléfono. Ahora lo que debo hacer es llamar al guión gráfico correcto cuando el usuario hace clic en la bandera de un país en la configuración de la aplicación.

Cuando el usuario hace clic en una bandera, su selección se escribe en standardUserDefaults. Y después de eso, estoy tratando de cambiar al guión gráfico correcto.

Un código que he encontrado que parece que podría ser útil es:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *rootVC = [storyboard instantiateInitialViewController];

El código no funciona porque no sé cómo llamar al guión gráfico francés.

¿Alguna forma más sencilla?

preguntado el 22 de mayo de 12 a las 14:05

1 Respuestas

¿Por qué no utiliza el soporte de idioma nativo? Simplemente configure sus labelFields, por ejemplo

labelField.text = NSLocalizedString(@"key", nil);

Tendrá un archivo Localized.strings con este

"key" = "translated key";

La aplicación elegirá automáticamente el idioma para el que está configurado el dispositivo.

Respondido 04 Jul 17, 10:07

Es necesario tener esa estúpida pantalla de selección de idioma, porque al tipo que diseñó la aplicación le gusta cómo se ve y quiere tener esa opción. Si hay una manera en que pueda implementar su solución con la capacidad de cambiar el idioma sobre la marcha, sería increíble. - Slavenko Miljic

Por supuesto, puede implementar esta solución con algo como [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"]; - Teófilo Israel Vizcaíno Rodrig

Pero trata de convencer al tipo que diseñó la estúpida interfaz de usuario, tal vez él no sepa nada de esto. - Teófilo Israel Vizcaíno Rodrig

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.