En el caso que usen aplicaciones traducidas, habrán notado que en el código PL/SQL se va a requerir retornar mensajes y estos deben mostrarse según el idioma en que se este ejecutando la aplicación.

Revisemos primero las validaciones, tenemos una validación cuando el usuario ejecute la página. Dicha validación debe revisar que la fecha inicial sea menor que la fecha final.

Si utilizamos una función sencilla que verifique esto, seria algo como:

Sin embargo, el mensaje solo se retornaría en Ingles. Y quizas deberiamos recibir como parámetro el idioma para saber que mensaje retornar en cada caso.

Hay otra alternativa provista por Oracle APEX: APEX_LANG.MESSAGE nos permite traduccir texto que ha sido generado por objetos almacenados, como funciones, procedimientos, paquetes, etc.

Para esto, modificariamos nuestra función, utilizando como parámetros de APEX_LANG.MESSAGE:

p_name => Nombre del mensaje

p0 ... p9 =>Susitutió dinámica que se utilizara en el mensaje. Son opcionales.

p_lang   => Código del idioma en que se va a retornar el mensaje. Es opcional.

Luego, vamos a Componentes Compartidos -> Traducir Aplicación -> Mensajes de Texto. Creamos un mensaje usando el mismo nombre que utilizamos en la función, seleccionamos el idioma y escribimos el texto que retornará la función.

Se debe crear un mensaje por cada idioma que utilice la aplicación. Al finalizar, publicamos las aplicaciones traducidas.

Nota: El mensaje e idioma deben ser únicos.

    

Por último, creamos la validación en la página utilizando la función previamente creada:

 

Al ejecutar la aplicación, veremos (si no se cumple la validación) el mensaje en cada idioma:

Ahora veamos como utilizar APEX_LANG.MESSAGE en los procesos, creamos la función y sino se proceducen errores retorne el mensaje EXECUTE, en caso contrario que retorne EXECUTE_ERROR.

Creamos los mensajes de texto y publicamos las aplicaciones traducidas.

Creamos el proceso utilizando la función FN_EXECUTE creada previamente. Utilizamos un elemento oculto donde guardamos el resultado de la ejecución, sea exitoso o no.

Y al ejecutar el proceso, podemos visualizar el mensaje definido:

De esta manera hemos utilizado los mensajes de texto en validaciones y procesos de una página.

 

Para más información:

https://docs.oracle.com/cd/E59726_01/doc.50/e39149/apex_lang.htm#AEAPI1156