Para poder seguir las explicaciones que se ofrecen en éste articulo, deberá descargar las librerías de ejemplo, disponibles en Aula Omnis. Encontrará dos ficheros que podrán ser usados a partir de la versión de Omnis Studio 2.1, para Windows descargue el fichero “Strngtab.zip” y para MacOS el “Strngtab.sit.hqx”, descomprimirlos sobre una misma carpeta, en ella deberá encontrar las siguientes librerías:
STRTEST.LBS
STRTEST.LBS
- Esta librería muestra cómo hacer uso de las “String Tables” para añadir soporte multi-idioma a nuestras aplicaciones. Al hacer clic sobre el botón “language”, se nos permitirá seleccionar uno de entre lista desplegable, después bastará con pulsar el botón “Set Language” para que todos los controles se redibujen, mostrando el idioma seleccionado. El ejemplo muestra el uso de las principales características de la interfaz “String Table” y su función “$getText()”.
TABLE.LBS
- Esta librería muestra cómo configurar los controles “String Label” para muestren la información obtenida de entre varias “String Table”.
A continuación mostramos las funciones implicadas en el uso de “String Tables”, atendiendo a su creación, almacenado, eliminación y uso.
Funciones para la creación de “String Tables”:
$loadtablefromlist(≤Nombre de Tabla≥,≤Ruta≥,≤List≥)
Crea una “String Table” a partir de una variable de tipo “List”. Como cabe suponer, la tabla es creada en memoria. Para guardarla se deberá usar la función “$savestringtable”.
$loadcolumn(≤Nombre de columna≥,≤Nombre de Tabla≥,≤Ruta≥)
Crea una “String Table” usando una sola, de las columnas de la tabla.
$loadstringtable(≤Nombre de Tabla≥,≤Ruta≥)
Carga completa de la “String Table” indicada.
Funciones para guardar “String Tables”:
$savestringtable(≤Nombre de Tabla≥)
Guarda una “String Table” de entre las anteriormente creadas.
Nota: No se especifica ruta, puesto que éste parámetro solo es necesario durante su creación.
Nota: No se especifica ruta, puesto que éste parámetro solo es necesario durante su creación.
Funciones para la eliminación “String Tables”:
$removestringtable(≤Ruta≥)
Elimina del disco una “String Table”.
$unloadstringtable(≤Nombre de Tabla≥)
Descarga de la memoria una “String Table”.
$unloadall()
Descarga de la memoria todas las “String Tables”.
Nota: Ambas funciones son opcionales, ya que todas las “String Tables” se descargan automáticamente al salir de Omnis.
Nota: Ambas funciones son opcionales, ya que todas las “String Tables” se descargan automáticamente al salir de Omnis.
Funciones para el acceso y uso de “String Tables”:
$setcolumn(≤Nombre de Columna≥)
Establece la columna actual a la indicada ≤Nombre de Columna≥. Se puede indicar tanto un nombre, como un número.
Nota: Es sensible al uso de mayúsculas y minúsculas. Si se están utilizando varias “String Tables”, deberá usarse la forma ≤Nombre de Tabla≥.≤Nombre de Columna≥, por ejemplo, “StringTable.$setcolumn(“Table1.French”)” o bien “StringTable.$setcolumn(“Table1.3”)”
Nota: Es sensible al uso de mayúsculas y minúsculas. Si se están utilizando varias “String Tables”, deberá usarse la forma ≤Nombre de Tabla≥.≤Nombre de Columna≥, por ejemplo, “StringTable.$setcolumn(“Table1.French”)” o bien “StringTable.$setcolumn(“Table1.3”)”
$getcolumnname([≤Nombre de Tabla≥] )
Obtiene el nombre de la columna actual. No es necesario especificar ≤Nombre de Tabla≥ si se está trabajando con una sola “String Table”.
$getcolumnnumber([≤Nombre de Tabla≥] )
Trabaja del mismo modo que la función anterior, pero devuelve el número de la columna en lugar de su nombre.
$redraw(≤Hwnd≥)
Esta función puede utilizarse para volver a dibujar una ventana completa. En la librería de ejemplo “STRTEST”, se usa la función “StringTable.$redrawAll()” para volver a dibujar todas las ventanas tras la selección un nuevo idioma. Seguramente es el mejor modo de refrescar los controles de tipo “String Label” de nuestras aplicaciones.
$colcnt([≤Nombre de Tabla≥])
Devuelve el número de columnas de .
$rowcnt([≤Nombre de Tabla≥])
Devuelve el número de filas en .
$loadlistfromtable(≤Nombre de Tabla≥)
Copia una “String Table” sobre una variable de tipo “List”.