En este artículo pretendo explicar una forma sencilla, pero que a su vez resulta muy potente para realizar aplicaciones Multi-Lenguaje en Visual Fox Pro.
La base de este desarrollo, será la creación de una tabla en donde se almacenen todos los textos que se mostrarán posteriormente en pantalla. Su formato será el siguiente:
ETIQUETAS Idioma01 C(200) Idioma02 C(200) (ambos campos con índice)
Como podemos imaginar, debemos de crear un campo por cada uno de los lenguajes a utilizar en nuestra aplicación.
Luego, simplemente añadiremos en esta tabla los textos que se correspondan a los distintos idiomas.
Ejemplo: Idioma01 Idioma02
Hola Hello
Para utilizarlo correctamente, debemos de cargar en el inicio de nuestra aplicación, una variable que indicará cual es el idioma activo (por ejemplo leyéndolo desde un fichero de configuración) y seleccionar el índice correcto.
Posteriormente, en nuestra clase base de aquellos controles que muestren texto, debemos de realizar algo parecido a lo siguiente:
Ejemplo para una label:
1) Creamos una variable global G_Idioma == "01".
2) Creamos una clase labelbase.
3) En el evento INIT, incluimos el siguiente código:
With This If !Empty(.Caption) This.Caption = Traducir(.Caption) endiF Endwith4) Creamos la funcion Traducir
Function Traducir Lparameters pTexto Local cTexto, cCampo cTexto = PADR(Alltrim(pTexto), 200) cCampo = "Idioma" + G_Idioma If SeeK(cTexto, "Etiquetas", cCampo) cTraducido = Alltrim(Eval("Etiquetas." + cCampo)) Else Append Blank In Etiquetas Replace I01 With pTexto In Etiquetas cTraducido = pTexto EndIf Return cTraducidoCon la función Traducir podemos realizar la traducción de absolutamente todos los textos de la aplicación. Por supuesto, hay determinadas condiciones para que esto funcione: que la longitud del texto no supere el tamaño del campo, que tengamos un idioma de referencia (en el ejemplo es 01), etc.
Angel Casas
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.