Globalizando nuestras aplicaciones con Oracle APEX

Este artículo proporciona una visión general del mecanismo de traducción integrado en Oracle APEX y cómo debe utilizase. Hay muchas razones por las cuales podemos necesitar una aplicación multilingüe. Si los usuarios finales se encuentran ubicados internacionalmente, por ejemplo, la aplicación deberá admitir muchos idiomas o al menos los más utilizados.

 

Hay que tener en cuenta también, a la hora de implementar la aplicación en varios idiomas, los formatos de fecha y número o los idiomas impresos de izquierda a derecha.

 

Si los datos de la aplicación han de ser también multilingües, habrá que tenerlo en cuenta en el modelo de datos y el código de aplicación.

 

Oracle APEX maneja las traducciones como una copia de la aplicación principal. Eso significa que para cada idioma soportado por la aplicación, APEX crea internamente una “Shadow Application“. Estas aplicaciones ocultas no figuran en el generador de aplicaciones, pero son copias exactas de la aplicación principal y existen en las tablas del diccionario APEX.

 

Todos los cambios se realizan en la aplicación principal y después se implementan en las “Shadow Applications” traducidas mediante las operaciones “Seed” y “Publish”. Por lo tanto, siempre que se necesite implementar cambios en el código, se deberán inicializar y publicar todas las traducciones. El paso principal para comprender las traducciones en Oracle APEX es asumir que siempre hay una copia de la aplicación completa (cada página, cada proceso y cada línea de código) para cada idioma que se desee admitir.

 

Los pasos necesarios para crear aplicaciones APEX multilingües son tres:

  1. Preparar la aplicación para el proceso de traducción
  2. Crear una barra de navegación amigable para el cambio de lenguaje
  3. Seguir el proceso de traducción en el apartado Globalización

 

 1. Preparar la aplicación para el proceso de traducción

 

  •  Acceder al bloque Componentes compartidos de la aplicación principal

 

 

  • Acceder a los atributos de globalización en el menú Globalización y establecer la propiedad Idioma de Aplicación Derivado de la Preferencia de Elemento (usar elemento que contenga la preferencia).

 

 

APEX ahora sabe que puede derivar el idioma para mostrar la página desde un elemento de aplicación especial. Pero este elemento aún tiene que ser creado.

 

Ahora, para crear un elemento para la preferencia, se requieren los siguientes pasos:

  • Acceder a Componentes Compartidos
  • Bajo el menú Lógica de Aplicación

 

 

 

  • Acceder a Elementos de Aplicación > Crear
  • Introducir el nombre FSP_LANGUAGE_PREFERENCE
  • Bajo Protección de Estado de Sesión, seleccionar Total de Control Necesario: Nivel de Sesión
  • Hacer clic en Crear Elemento de Aplicación

 

 

El elemento se llama FSP_LANGUAGE_PREFERENCE, porque APEX reconoce ese nombre como un elemento reservado para los idiomas de la aplicación. Cuando se representa una página, APEX verifica el elemento FSP_LANGUAGE_PREFERENCE para ver en qué idioma debe mostrarse la página.

 

Cada vez que se cambia el idioma, la página debe volver a cargarse para mostrar el resultado. Para que esto suceda, agregaremos un proceso de aplicación que se encargará de la recarga de la página.

  • Acceder a Componentes Compartidos > Procesos de Aplicación > Crear
  • Introducir el nombre set_language
  • Establecer el Punto como En Carga: Antes de Cabecera (cabecera de plantilla de página)
  • Hacer clic en Siguiente

 

 

  • En el bloque de código, introducir el siguiente código PL/SQL

 

begin
owa_util.redirect_url('f?p='||:APP_ID||':'||:APP_PAGE_ID||':'||:
APP_SESSION);
end;

 

  • Hacer clic en Siguiente

  • Seleccionar Tipo de Condición Solicitud = Expresión 1
  • Introducir LANG en el área de texto Expresión 1 (LANG todo en mayúsculas)
  • Hacer clic en Crear Proceso para finalizar

 

Nuestra aplicación ahora dispone del Proceso de Aplicación y del elemento de lenguaje específico.

 

2. Crear una barra de navegación amigable para el cambio de lenguaje

Para que el usuario pueda cambiar el idioma de la aplicación con un solo clic, necesitamos crear una entrada en la barra de navegación y las opciones de idioma. El mejor lugar para crear el selector de idioma es en un lugar que permanezca visible todo el tiempo. En este caso, utilizaremos la barra de navegación. Como esta barra se encuentra en la cabecera de nuestra aplicación, es visible en todas las páginas e ideal para nuestro propósito.

Crear las entradas de navegación:

 

  • Acceder a Componentes Compartidos > Navegación > Lista de Barra de Navegación > Barra de Navegación de Escritorio > Crear Entrada

 

 

 

  • En la Etiqueta de Entrada de Lista poner los nombres de cada entrada
  • En tipo de objetivo seleccionar Página en esta Aplicación
  • En Página poner &APP_PAGE_ID. (el punto ‘.’ es necesario)
  • Solicitud: LANG
  • Defina estos elementos: FSP_LANGUAGE_PREFERENCE
  • Con estos valores: en (código del lenguaje)
  • Hacer clic en Crear Entrada de Lista

 

 

Repetir los mismos pasos para crear las entradas del menú para los idiomas requeridos.

 

Ahora que tenemos una aplicación traducible, podemos comenzar con el proceso para crear una versión traducida de la aplicación en otro idioma.

 

3. Seguir el proceso de traducción en el apartado Globalización

El flujo de trabajo de traducción consta de una serie de pasos, que pueden repetirse cada vez que se implementa una nueva versión de la aplicación:

  • Acceder a Componentes Compartidos > Traducir Aplicación

 

 

Bajo esta opción, podremos ver el mencionado flujo de trabajo de traducción.

 

 

 

a) Definir Idiomas de la Aplicación (mapear los IDs de la aplicación principal y las aplicaciones de traducción)

  • Acceder a Definir Idiomas de la Aplicación > Crear
  • Introducir un ID único para la aplicación traducida

(Consejo: Para evitar conflictos con otras aplicaciones en el espacio de trabajo, es recomendable extender el ID de la aplicación traducida desde la aplicación principal. Por ejemplo, si el ID de la aplicación principal es 105, los IDs de las aplicaciones traducidas podrían ser 10501, 10502, etc.)

 

  • Seleccionar el lenguaje al que queremos traducir y finalizar con Crear

Esto le dirá a APEX el nuevo lenguaje que va a ser utilizado.

 

 

b) Extraer Texto Traducible (Extraer y exportar los textos a un fichero para su traducción)

  • Volver al flujo de trabajo de traducción y acceder a Extraer Texto Traducible
  • Seleccionar las aplicaciones traducidas y hacer clic en Extraer

 

 

 

Esto creará entradas en el repositorio de traducción de APEX para cada texto traducible de la aplicación. Estas entradas serán usadas posteriormente para generar los ficheros XLIFF.

Uno de los más estándares de traducción más reconocidos mundialmente es el formato XLIFF. XLIFF es la abreviatura de XML Localization Interchange File Format. Como su nombre indica, es un estándar XML y ha sido adoptado por APEX como el formato en que los diferentes ficheros de traducción pueden ser exportados e importados en las aplicaciones APEX.

 

c) Descargar archivos de traducción XLIFF

  • De nuevo hay que volver al flujo de trabajo de traducción y acceder a Descargar archivos de traducción XLIFF
  • Seleccionar el idioma de la lista de idiomas

En esta página tenemos dos opciones para exportar el fichero XLIFF: seleccionar una pagina de la aplicación o la aplicación completa

  • Hacer clic en Exportar Archivo XLIFF para Aplicación y salvar el fichero en el directorio local (este fichero XLIFF contiene datos XML)

 

 

El fichero XLIFF se descargará y estará listo para ser editado. La forma más rápida de traducir grandes cantidades de texto es continuar utilizando el archivo XLIFF. Como es un estándar internacional, un archivo XLIFF puede ser enviado a cualquier servicio de traducción.

 

d) Traducir el texto del fichero (trabajo de terceros)

Aunque también podemos hacerlo nosotros mismos.

  • Abrir el fichero XLIFF descargado en un editor de texto y cambiar el texto de las etiquetas <target> por la traducción en el idioma deseado del texto en las etiquetas <source>

Ejemplo:

<source>Página Global – Escritorio</source>

<target>Global Page – Desktop</target>

<source>Inicio</source>

<target>Home</target>

 

Una vez traducido el texto de las etiquetas <target>, salvar el fichero.

 

e) Aplicar Archivos de Traducción XLIFF

  • Desde el flujo de trabajo de traducción, acceder a Aplicar Archivos de Traducción XLIFF
  • Hacer clic en Cargar Archivos (cargar el fichero modificado)
  • Seleccionar la aplicación traducida de la lista
  • Marcar la casilla de selección
  • Hacer clic en el botón Aplicar Selección

 

 

f) Publicar aplicaciones traducidas

  • Volver al flujo de trabajo de traducción y acceder a Publicar aplicaciones traducidas
  • Marcar la casilla de selección y hacer clic en Extraer
  • Marcar de nuevo la casilla de selección y hacer clic en Publicar

 

Ahora pueden verificarse los datos del idioma de origen y destino en el repositorio de traducción. Para eso, navegar de nuevo al flujo de trabajo de traducción y acceder a Repositorio de Traducción bajo el apartado Utilidades de Traducción.

 

Ahora la aplicación está disponible en dos idiomas para el usuario.

 

 

Twitter
LinkedIn
Evolución, innovación y transformación
3 expertise + 42 especializaciones avaladas por Oracle 
Nuestra propuesta de valor
Posts 100% Oracle
Sigue nuestro día a día