Lo primero que hay que hacer es diseñar nuestro sistema en su lenguaje base, para este caso será ingles. Para hacer corto este tutorial, solo será una pantalla, pero se pueden aplicar los principios básicos para desarrollar un sistema completo.
Esta es mi pantalla:
Agregamos un nuevo proyecto tipo “ClassLibrary” llamado “CultureResources”
Una vez creado nuestro proyecto, agregamos un nuevo archivo de recursos llamado “StringResources”:
Nuestro proyecto completo, tiene esta apariencia:
Lo que haremos ahora es agregar todas las claves a nuestro archivo “StringResources”:
Guardamos todos los cambios.
Ahora, haremos dos copias a este archivo:
Las renombraremos para que queden así:
Ahora debemos abrir “StringResources.es-MX.resx” y cambiar los valores a español:
Debemos establecer una propiedad en cada uno de los archivos resx:
La propiedad “CustomTool”
Guardamos todos los cambios
Ahora iremos a nuestro proyecto principal y agregamos una referencia a “CultureResources”:
Agregamos las siguientes directivas using:
//directivas necesarias using System.Globalization; using System.Threading; using CultureResources;
luego, agregamos este procedimiento:
void SetLanguage() { Thread.CurrentThread.CurrentUICulture = new CultureInfo(cboSelectLanguage.Text); this.Text = StringResources.frmLanguageConfiguration_Text; lblSelectLanguage.Text = StringResources.lblSelectLanguage_Text; btnOk.Text = StringResources.btnOk_Text; btnCancel.Text = StringResources.btnCancel_Text; }En el form_load, agregamos los iguiente:
cboSelectLanguage.SelectionChangeCommitted += new EventHandler(cboSelectLanguage_SelectionChangeCommitted); cboSelectLanguage.Text = "es-MX"; SetLanguage();Agregamos este código (fuera del form_load), este código es para cuando seleccionamos el idoma en el combobox:
void cboSelectLanguage_SelectionChangeCommitted(object sender, EventArgs e) { SetLanguage(); }
Antes de ejecutar la aplicación, establecemos la propiedad del combobox DropDownStyle=DropDownList
Ejecutamos la aplicación:
Listo
Yo recomiendo https://poeditor.com/ para traducir los archivos .resx
ResponderEliminarCreo que es una muy rápida y intuitiva herramienta de localización y taducción