Problema con Localizacion C#

Iniciado por EsGibtKeinProblem, 28 Abril 2010, 23:56 PM

0 Miembros y 1 Visitante están viendo este tema.

EsGibtKeinProblem

Yo tengo ya el codigo en C# pero lo que necesito, es que cuando presiono el boton en espanol, quiero que cambio todo en espanol o cuando presione en aleman que todo cambie en aleman, automatico. Quien ha hecho un trabajo parecido o quien me puede ayudar, se agradece la ayuda de antemano.

lesone-

Hombre yo he usado para irc bots un traductor, usando la API de google...

O también para eso está la sentencia "if"
--------- #Elhacker.net   ---------------

EsGibtKeinProblem

#2
[img]http://r.i.elhacker.net/cache?url=http://img504.imageshack.us/i/worterbuch.jpg/[img]

http://img504.imageshack.us/i/worterbuch.jpg/

Esta es la imagen del Programa que he hecho ( Gui ), pero como dije cuando presione Deutsch ( Aleman )  o Spanisch ( Espanol ), quiero que cambie todos los nombre de los Labels, tabs, etc. en el idioma que he elegido atraves del Boton. Creo que el if no me ayudaria.
Gracias.

[D4N93R]

Primero, cámbiale el Icono de la ventana jeje :P

Con respecto a lo de Localization, conozco dos formas.

Supongo que cambiaste el idioma del formulario y luego colocaste los captions de cada control. Lo que tienes que hacer después es cambiar la cultura del Thread,

     CultureInfo cInfo = new CultureInfo(<Acá pones el nombre del Culture Info del idioma>);
     Thread.CurrentThread.CurrentCulture = cInfo;
     Thread.CurrentThread.CurrentUICulture = cInfo;


Creo que es algo así, ahora no tengo VS aquí para probarlo.

Saludos

EsGibtKeinProblem

#4
Ja ja ja, no soy muy bueno en Photoshop, es un trabajo de la universidad asi que no hay problema.
Lo que tu has escrito esta claro.

CultureInfo cInfo = new CultureInfo(<Acá pones el nombre del Culture Info del idioma>);
    Thread.CurrentThread.CurrentCulture = cInfo;
    Thread.CurrentThread.CurrentUICulture = cInfo;

pero la situacion, es que yo quiero cambiar el idioma tambien, ya iniciado el programa, quiero hacerlo cada vez que yo quiera ( con solo presionar un boton )
Esto fue lo que hice en el metodo del boton espanol:
private void languageButton_Click(object sender, EventArgs e)
       {
           Thread.CurrentThread.CurrentUICulture = new CultureInfo("es");
           System.Globalization.CultureInfo myCultureInfo = new
                                   System.Globalization.CultureInfo("es");
           //InitializeComponent();
           dopaint();
       }

pero cuando presiono el boton este, no me funciona, pense que con dopaint() podia ir tambien pero nada.
gracias por todo


EsGibtKeinProblem

Muchas gracias, ya resolvi mi problema.

MANULOMM

y como lo solucionaste....

Es un error comun para la gente pensar que la localizacion es traducción de cualquier cosa, el Framework NO tiene traducción, suele ocurrir que cuando haces un  .ToString con un formato especifico a un DateTime te retorno Monday o Lunes dependiendo de la localización.
La localización solo sirve para definir o saber el entorno en el cual se esta trabajando. por ejemplo:
si tienes un informe y quieres que las fechas salgan asi: "Lunes, Mayo 1 de 2010" dependiendo de la localizacion puede salir o no en otro idioma, si quieres obligarlo siempre a español pues defines para el hilo la cultura y el no tomará el del sistema operativo.
Como te decian lo que puedes hacer es utilizar un Bot de Traducción y dependiendo de la localizacion eliges el idioma asi no te limitas a solo 2 pues puede ser cualquiera que el bot soporte.
Lo mas comun para los programas con multiples idiomas es definir archivos XML con las etiquetas de cada idioma y que cuando cambie la localización cargar el XML adecuado.

Atentamente,

Juan Manuel Lombana
Microsoft Student Partner
Microsoft Certified Professional
Medellín - Colombia