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
Endwith
4) 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 cTraducido
Con 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.