¿Cuál es la forma correcta de cambiar el idioma del formulario en el tiempo de ejecución?Forma correcta de cambiar el idioma en el tiempo de ejecución
- Ajuste todos los controles de forma manual utilizando la recursividad como this
- Guardar elección de idioma para presentar> Reiniciar aplicación> Carga Languge elección antes
InitializeComponent();
- Usando Formulario constructor para sustituir a instancia de activo a partir de (si esto es posible)
- Algo más
Hay por lo tanto hilos medio escribir sobre esto, pero no proporcionan s respuesta real sobre cuál es la forma correcta de hacer esto?
ACTUALIZACIÓN:
Para aclarar mi pregunta:
Hacer algo como esto:
public Form1()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de");
this.InitializeComponent();
}
funciona bien y todos mis controles y todo lo demás en los recursos se traducen correctamente. Y hacer algo como:
private void button1_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
}
no hace nada, la forma queda en la lengua He definido antes InitializeComponent();
posible duplicado de [¿Cómo puedo cambiar la cultura de una aplicación WinForms en tiempo de ejecución] (http://stackoverflow.com/questions/7556367/how-do-i-change-the-culture-of-a- winforms-application-at-runtime) –
@Hans Esto no es un duplicado, mi pregunta es: ¿cuál es la manera correcta de hacerlo? La pregunta a la que se vinculó solo ofrece una solución rápida y no es una respuesta real. – formatc
¿Qué demonios está mal con una "solución rápida"? La mayoría de los programadores los favorecen con un rediseño completo del marco. Supongo que asumes que esto debería ser una función incorporada para Winforms. No lo es. Solo la capacidad de aplicar "soluciones rápidas" es una función de diseño. –