Aplicaciones multilenguaje

Hola tyrodevelopers, en esta ocasión deseo compartir con ustedes la forma de como crear una aplicación multilenguaje.

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





1 comentario:

  1. Yo recomiendo https://poeditor.com/ para traducir los archivos .resx

    Creo que es una muy rápida y intuitiva herramienta de localización y taducción

    ResponderEliminar