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;
}
}
}
}