Configuración
Breadcrumbs

Traducciones

Los textos visibles en los diferentes módulos del Portal de Datos y los mensajes de la aplicación pueden ser customizados mediante la configuración de traducciones para diferentes idiomas. Siempre que se añadan nuevos textos o se incorporen nuevos idiomas, es necesario registrar las traducciones correspondientes en la plataforma.

image-20250915-153753.png
Ejemplo de Perfil de usuario en el que se puede escoger el idioma de uso de la plataforma

Notas:

  • Los nombres de los objetos del metamodelo no admiten traducciones.

  • Si faltan claves de traducción, estas serán visibles en la plataforma, sin embargo, no impiden su uso normal.

    image-20250916-102044.png


Tabla Translations del Panel de Configuración (Visión administrador)

Las traducciones visibles en el Portal de Datos (formularios, menús, mensajes, filtros, etc.) se almacenan en la tabla Translations.

image-20250915-150202.png
Tabla Translations en el que se configuran todos los textos de la plataforma

Estructura de la tabla Translations

Cada registro representa una clave de traducción en un idioma:

  • Id: identificador único del registro. Se asigna automáticamente desde el Panel de configuración.

  • key: clave de traducción.

    • La misma key debe existir una vez por cada idioma disponible.

    • No se recomienda usar como key los nombres de los objetos del metamodelo (campo name de Object Sub-Types)

  • language: código i18n del idioma, debe existir en Languages (p.ej. es-ES, en-US).

  • value: texto traducido en el idioma indicado en language.

    • No puede compartir value registros con key diferentes para traducciones de atributos o metadatos de referencia.

  • used_for: campo informativo para clasificar/filtrar usos (p.ej. AUDIT, WORKFLOWS); puede quedar vacío.

  • internal: flag que indica si la traducción es texto interno de Anjana Data (true) o texto de configuración como atributos, menús, roles, etc. (false).

Notas:

  • No puede repetirse la combinación (key, language ).

  • El valor de language debe existir previamente en la tabla Languages .

Traducciones de los idiomas

Los idiomas de la tabla de idiomas tienen sus propias traducciones visibles desde el selector de idiomas del perfil del usuario.

image-20250915-162035.png
Claves de traducción para los idiomas disponibles en el Perfil de Usuario


La traducción del código i18n en el campo key (ej.: es-ES) determina el nombre visible del idioma (value) que visualiza un usuario cuando tiene la aplicación en el idioma indicado en language

  • Ejemplo: El registro con key= es-Es, language= en-US y value= Spanish sirve para que, cuando un usuario que tiene la aplicación en inglés americano ( language= en-US), vea la traducción Spanish (value= Spanish) junto a la bandera de España.

    image-20250915-161237.png
    Traducción de es-ES cuando el usuario utiliza la plataforma con idioma en-US


  • Ejemplo: El registro con key= es-Es, language= es-ES y value= Español sirve para que, cuando un usuario que tiene la aplicación en español ( language= es-ES), vea la traducción Español (value= Español) junto a la bandera de España.

    image-20250915-161446.png
    Traducción de es-ES cuando el usuario utiliza la plataforma con idioma es-ES

Consideraciones especiales para claves de traducción

Existen ciertos elementos de la configuración de Anjana Data que requieren un criterio específico a la hora de definir las claves de traducción:

  • Infraestructura, Tecnología y Zona (Tripletas)
    Las claves de traducción (key) de los valores posibles de estos atributos deben corresponderse exactamente con las partes de la tripleta configurada en los plugins de Tot. Estos a su vez deben corresponder con los valores de name en la tabla Attribute Definition Values.

    image-20250915-163011.png
    • Ejemplo: Si en el plugin de Tot de Azure se define la tripleta:

      Virtualizador / Denodo / Territorio
      

      entonces las claves de traducción (key) deben ser las siguiente, independientemente del value:

      • infrastructure: Virtualizador

      • technology: Denodo

      • zone: Territorio

Nota: Los valores de estos atributos no deben contener los caracteres :, #, ( o ) para evitar interferencias con los identificadores internos de Anjana Data.

Importante:

Si durante la importación de metadatos en el wizard de creación, al seleccionar una tripleta aparece un error que indica “No existe un plugin para extract” es probable que el motivo sea que los valores de la tripleta en el YAML del plugin no sean los correctos para las traducciones seleccionadas. Es conveniente:

  • Revisar que los key de la tabla Languages correspondientes a las traducciones seleccionadas en el wizard (value) corresponden con los valores de name en la tabla Attribute Definition Value

  • Revisar que los valores de name de la tabla Attribute Definition Value corresponden con los valores configurados en la ari del YAML del plugin.

image-20250916-120410.png


  • Roles
    Para traducir los nombres de roles, la clave de traducción debe formarse concatenando el prefijo ROLE. con el valor de la columna name de la tabla Roles.

    • Ejemplo:

      ROLE.architect
      
  • Idiomas
    Para traducir los nombres de los idiomas, la clave de traducción debe coincidir con el código i18n definido en la tabla Languages.

    • Ejemplo:

      es-ES
      en-US
      fr-FR
      

Traducciones internas de la plataforma

En Anjana Data existen traducciones internas que se repiten bajo diferentes claves, ya que fueron generadas según la funcionalidad o la pantalla en la que se utilizan.

Importante: si se desea modificar una traducción interna, es necesario actualizar el valor en todas las claves asociadas dentro de la tabla Translations.

Por ejemplo, al cambiar la traducción del atributo obligatorio infrastructure, se debe modificar tanto la clave de Infraestructura del wizard de creación, como la de los filtros, la del atributo en la plantilla y la del tooltip en la cabecera del objeto.

Claves de traducción de atributos obligatorios de entidades/relaciones
  • Nombre

    • COMMON.NAME

    • NEW_WIZARD_ASSISTANT.CARD_NAME

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'name' en anjana.attribute_definition

  • Infraestructura

    • NEW_WIZARD_ASSISTANT.INFRASTRUCTURE

    • TOOLTIP.INFRASTRUCTURE

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'infrastructure' en anjana.attribute_definition

  • Tecnología

    • NEW_WIZARD_ASSISTANT.TECHNOLOGY

    • TOOLTIP.TECHNOLOGY

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'technology' en anjana.attribute_definition

  • Zona

    • NEW_WIZARD_ASSISTANT.ZONE

    • TOOLTIP.ZONE

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'zone' en anjana.attribute_definition

  • Localización

    • NEW_WIZARD_ASSISTANT.PATH

    • TOOLTIP.PATH

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'path' en anjana.attribute_definition

  • Unidad Organizativa

    • CONTAINER

    • GRAPH.NODE_ORGANIZATIONAL_UNIT

    • MODAL.ORGANIZATIONAL_UNIT

    • TOOLTIP.ORGANIZATIONAL_UNIT

    • FILTERS.ORGANIZATIONAL_UNIT

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'organizationalUnit' en anjana.attribute_definition

  • Posición

    • COMMON.POSITION

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'position' en anjana.attribute_definition

  • Nombre físico

    • COMMON.PHYSICAL_NAME

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'physicalName' en anjana.attribute_definition

  • Origen

    • COMMON.SOURCE

    • FORM_RELATION.SOURCE

    • RELATION.SOURCE

    • SOURCE

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'source' en anjana.attribute_definition

  • Destino

    • FORM_RELATION.DESTINATION

    • RELATION.DESTINATION

    • FILTERS.DESTINATION

    • DESTINATION

    • labelTranslationKey y placeHolderTranslationKey del atributo con name = 'destination' en anjana.attribute_definition

Alta de una traducción en la tabla Translations

El alta de una nueva traducción implica añadir en la tabla Translations un registro.

image-20250915-154735.png
Ejemplo de alta de la traducción del filtro por el atributo Dominio

Para dar de alta una capa desde el Panel de configuración:

  1. Pulsar el botón New en la esquina superior derecha.

  2. Completar los campos:

    • Key: clave de traducción declarada en la tabla correspondiente (Menu, Sections, Attribute Definitons…) (ej.: FILTERS.DOMINIO).

    • Language: código i18n del idioma para el que se configura la traducción (ej.: es-ES).

    • usedFor: texto informativo para clasificar/filtrar usos (ej.: vacío).

    • internal: flag que indica si la traducción es interna o configuración de la organización. (ej.: en este caso es configuración propia false).

    • value: texto visible para el usuario cuando selecciona el idioma indicado en language.(ej.: Dominio).

  3. Pulsar en Save para guardar la capa o en Cancel para descartar.

Nota: Tras el alta, es necesario:

  • Ejecutar la acción Upload Translations Files desde el Panel de configuración (Actions > Upload Translations Files) para que los cambios se apliquen y sean visibles en el Portal de Datos.

  • Ejecutar la acción Clear cache desde el Panel de configuración (Actions > Clear cache) para que los cambios se apliquen y sean visibles en el Portal de Datos.

Modificación de una traducción en la tabla Translations

La modificación de traducciones es una operación habitual cuando se necesita ajustar el texto mostrado al usuario o actualizar terminología ya existente.

  • Campos editables:
    Los campos value, usedFor e internal pueden modificarse en cualquier momento sin restricciones. Estos cambios no afectan a la estructura del sistema, únicamente actualizan el texto visible en el Portal de Datos o la clasificación de la traducción.

  • Campos no recomendados para edición:
    No es recomendable modificar los campos key o languagesi antes no se han modificado los campos correspondientes de las tablas de configuración (Menu, Sections, Attribute Definition, Roles, …).

Nota: Tras la modificación, es necesario:

  • Ejecutar la acción Upload Translations Files desde el Panel de configuración (Actions > Upload Translations Files) para que los cambios se apliquen y sean visibles en el Portal de Datos.

  • Ejecutar la acción Clear cache desde el Panel de configuración (Actions > Clear cache) para que los cambios se apliquen y sean visibles en el Portal de Datos.


Configuración de Traducciones mediante acceso directo a la base de datos (Visión desarrollador)

Las traducciones se almacenan en la tabla portuno.translations.

Columna

Tipo

Restricciones / Notas

id_translations

int4

PRIMARY KEY. Identificador único.

config_key

varchar(255)

NOT NULL. Clave de traducción. Única por idioma en combinación con language.

language

varchar(255)

NOT NULL. Código i18n (debe existir en zeus.languages.i18n_code).

used_for

varchar(255)

Opcional. Etiqueta funcional (p.ej. AUDIT, WORKFLOWS).

value

varchar(4000)

NOT NULL. Texto traducido.

internal

bool

DEFAULT false. true = texto interno de plataforma; false = textos de configuración del cliente.

Ejemplo de configuración de claves de traducción:

INSERT INTO portuno.translations
(id_translations, config_key, "language", used_for, value, internal)
VALUES
  (346, 'COMMON.NAME', 'en-US', NULL, 'Name', true),
  (347, 'COMMON.NAME', 'es-ES', NULL, 'Nombre', true),
  (402, 'WORKFLOWS.TABLE.HEADER_TITLE.NAME', 'en-US', NULL, 'Object name', true),
  (403, 'WORKFLOWS.TABLE.HEADER_TITLE.NAME', 'es-ES', NULL, 'Nombre del objeto', true),
  (550, 'FORM_FIELD.PLACEHOLDER.ENTER_NAME', 'en-US', NULL, 'Enter your name...', true),
  (551, 'FORM_FIELD.PLACEHOLDER.ENTER_NAME', 'es-ES', NULL, 'Introduzca su nombre...', true),
  (582, 'FULL_HISTORY.TABLE.HEADER_TITLE.OBJ_NAME', 'en-US', NULL, 'Object Name', true),
  (583, 'FULL_HISTORY.TABLE.HEADER_TITLE.OBJ_NAME', 'es-ES', NULL, 'Nombre del objeto', true);

Importante:

  • Una vez ejecutado el insert, ejecutar la actualización de secuencias de la tabla. (Desde el Panel de configuración en Actions > Reset DQ sequences se pueden actualizar las secuencias de todas las tablas, incluida esta).

  • Todo el peso de la lógica de configuración recae en el desarrollador que ejecuta las queries SQL directamente sobre la tablas. Se recomienda revisar cuidadosamente el apartado de Estructura de la tabla.