Traducción automática en IBM i con SQL: Simplifica las traducciones de aplicaciones multilingües con SQL y la API de Azure. Aprende a automatizar el proceso. ¡Sin middleware!

Domina SQL en IBM i: Tu Arma Secreta para una Gestión de Sistemas Fluida

¿Te imaginas simplificar tareas complejas de administración en tu IBM i con solo unas líneas de código? SQL, ese lenguaje que quizás asocias con bases de datos, es mucho más que eso en el mundo de IBM i. Con las mejoras de V7R3M0, se convierte en una herramienta poderosa para optimizar tu sistema y hasta gestionar traducciones, tareas que antes te obligaban a sumergirte en la complejidad del RPG. ¿Listo para descubrir cómo?

Despídete de las Traducciones Manuales: SQL al Rescate

El teto multilingüe

Si gestionas aplicaciones multilingües en IBM i, sabes lo tedioso y propenso a errores que puede ser traducir datos manualmente para cada idioma. Si bien IBM i facilita la traducción de menús y comandos del sistema, la traducción de datos de aplicaciones a menudo requiere soluciones más complejas. Aquí es donde SQL brilla.

SQL: Tu traductor personalizado

Olvídate de las aplicaciones de middleware y las traducciones manuales. Con SQL, puedes crear un servicio que traduzca texto automáticamente. En este ejemplo, usaremos la API de Traducción de Azure, accesible y con una generosa versión gratuita. Importante: Tu partición IBM i necesita acceso a internet y debe confiar en las Autoridades de Certificación (CA) públicas a través de DCM para evitar problemas de conexión.

Captura de pantalla de la API de Azure

Probando la conexión: Un primer paso esencial

Antes de lanzarnos a la traducción, verifiquemos la conexión con la API de Azure usando la función QSYS2.HTTP_POST. Esto nos asegura que todo esté configurado correctamente. ¿Sencillo, verdad?

sql
values QSYS2.HTTP_post('https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=it&to=en', '[{"text":"proviamo a tradurre qualcosa con questa API"}]','{"headers":{"Content-Type":"application/json","Ocp-Apim-Subscription-Key":"YOUR_SUBSCRIPTION_KEY","Ocp-Apim-Subscription-Region":"YOUR_REGION"}}')

Recuerda reemplazar YOUR_SUBSCRIPTION_KEY y YOUR_REGION con tus credenciales. El resultado será el texto traducido, confirmando la comunicación con la API.

Resultado de la Petición HTTP

De JSON a texto: descifrando la respuesta

La API de Azure devuelve la traducción en formato JSON. Para extraer el texto traducido, necesitamos la función JSON_TABLE, una herramienta esencial para analizar datos JSON.

sql
select *
from JSON_TABLE(QSYS2.HTTP_post(...), 'lax $' COLUMNS(dataout varchar(3000) PATH 'lax $[0].translations[0].text'))

Con esta consulta, obtenemos el texto traducido limpio y listo para usar.

Creando una función reutilizable: Automatizando la traducción

¿Para qué repetir el mismo código una y otra vez? Creemos una función SQL reutilizable que simplifique el proceso de traducción. Esta función tomará el idioma de origen, el idioma de destino y el texto como parámetros.

sql
CREATE OR REPLACE FUNCTION sqltools.translate (lanin char(2), lanout char(2), textin varchar(10000))
RETURNS varchar(10000)
LANGUAGE SQL
BEGIN
DECLARE txtout varchar(10000);
SELECT dataout
INTO txtout
FROM JSON_TABLE(
QSYS2.HTTP_post('https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=' || lanin || '&to=' || lanout, '[{"text":"' || textin || '"}]','{"headers":{"Content-Type":"application/json","Ocp-Apim-Subscription-Key":"YOUR_SUBSCRIPTION_KEY","Ocp-Apim-Subscription-Region":"YOUR_REGION"}}'),'lax $' COLUMNS(dataout varchar(3000) PATH 'lax $[0].translations[0].text'));
RETURN txtout;
END;

Usando la función de traducción en tu base de datos

Para probar la función, puedes usar un ejemplo sencillo. Supongamos que tienes una base de datos de ejemplo llamada DEMODB. Con esta función, puedes traducir fácilmente los datos en columnas como DEPTNAME.

sql
SELECT DEPTNAME, sqltools.translate('en', 'it', DEPTNAME) as DEPTIT FROM demodb.DEPT

Como puedes ver, la columna DEPTIT contiene la traducción de DEPTNAME.

Fuente

https://all4power.dev/playing-with-sql-translator-function/
El contenido ha sido generado a partir de la información que puedes encontrar en "Fuente" dentro de la noticia.

Su contenido ha sido traducido, revisado y editado por el equipo de DamePower. Nuestro único objetivo es traer las últimas noticias de Power a su comunidad en español, haciéndola accesible para todos.

Agradecemos su interés en nuestras publicaciones y esperamos seguir brindando información útil y relevante sobre Power. ¡Gracias por formar parte de nuestra comunidad!

podría interesarte

Distribuidor de noticias IBM

Encuentra el SO para ti

¿Qué características tiene cada uno? ¿Cómo lo instalo? Descubre con Dame Power la forma más sencilla de instalar un sistema operativo