Ver Mensaje Individual
  #9 (permalink)  
Antiguo 25/01/2013, 10:40
Avatar de thegodinez
thegodinez
 
Fecha de Ingreso: octubre-2010
Ubicación: Culiacán, Sinaloa
Mensajes: 54
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: mejor opción para gestionar idiomas

red_robe yo te recomiendo archivos xml.

Por ejemplo, este seria tu archivo "Idioma.xml":
Código HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<Idiomas>
  <Español>
    <Pagina_Login>
      <Label_Usuario>Usuario: </Label_Usuario>
      <Label_Contraseña>Contraseña: </Label_Contraseña>
      <Boton_Entrar>Entrar</Boton_Entrar>
    </Pagina_Login>
  </Español>
  <English>
    <Pagina_Login>
      <Label_Usuario>User: </Label_Usuario>
      <Label_Contraseña>Password: </Label_Contraseña>
      <Boton_Entrar>OK</Boton_Entrar>
    </Pagina_Login>
  </English>
  <Português>
    <Pagina_Login>
      <Label_Usuario>Usuário: </Label_Usuario>
      <Label_Contraseña>Senha: </Label_Contraseña>
      <Boton_Entrar>Entrar</Boton_Entrar>
    </Pagina_Login>
  </Português>
</Idiomas> 
Y este codigo para leerlo en la pagina que traduciras, ahora bien, puedes crear un clase que se llame Idioma, que le envies por parametros la pagina que vas a traducir y que te retorne un arreglo, con los textos traducidos, etc, es decir, hay formas de pulirlo más:

Código:
       public void Traducir(string Idioma)
        {
            XmlNodeList V_Label_Usuario, V_Label_Contraseña,V_Boton_Entrar;
            string Usuario = string.Empty;
            string Contraseña = string.Empty;
            string Entrar = string.Empty;
            string Lat = string.Empty, Lon = string.Empty;

            string xml = String.Format("{0}\\Idiomas.xml", Application.StartupPath);

            if (System.IO.File.Exists(xml) && !string.IsNullOrEmpty(xml))
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(xml);
                XmlNodeList resultado = xDoc.GetElementsByTagName(Idioma);
                XmlNodeList lista = ((XmlElement)resultado[0]).GetElementsByTagName("Pagina_Login");
                if (lista.Count >= 1)
                {
                    foreach (XmlElement nodo in lista)
                    {
                        int i = 0;
                        V_Label_Usuario = nodo.GetElementsByTagName("Label_Usuario");
                        V_Label_Contraseña = nodo.GetElementsByTagName("Label_Contraseña");
                        V_Boton_Entrar = nodo.GetElementsByTagName("Boton_Entrar");
                        Usuario = V_Label_Usuario[i].InnerText;
                        Contraseña = V_Label_Contraseña[i].InnerText;
                        Entrar = V_Boton_Entrar[i].InnerText;
                        Label_Contraseña.Text = Contraseña;
                        Label_Usuario.Text = Usuario;
                        Boton_Entrar.Text = Entrar;
                    }
                }
            }
        }