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.

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.
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
.

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
deObject Sub-Types
)
-
-
language
: código i18n del idioma, debe existir enLanguages
(p.ej.es-ES
,en-US
). -
value
: texto traducido en el idioma indicado enlanguage
.-
No puede compartir
value
registros conkey
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 tablaLanguages
.
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.

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 yvalue
= 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.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 yvalue
= 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.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 dename
en la tablaAttribute Definition Values
.-
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 delvalue
:-
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 tablaLanguages
correspondientes a las traducciones seleccionadas en el wizard (value
) corresponden con los valores dename
en la tablaAttribute Definition Value
-
Revisar que los valores de
name
de la tablaAttribute Definition Value
corresponden con los valores configurados en la ari del YAML del plugin.

-
Roles
Para traducir los nombres de roles, la clave de traducción debe formarse concatenando el prefijoROLE.
con el valor de la columnaname
de la tablaRoles
.-
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 tablaLanguages
.-
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
yplaceHolderTranslationKey
del atributo conname = 'name'
enanjana.attribute_definition
-
-
Infraestructura
-
NEW_WIZARD_ASSISTANT.INFRASTRUCTURE
-
TOOLTIP.INFRASTRUCTURE
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'infrastructure'
enanjana.attribute_definition
-
-
Tecnología
-
NEW_WIZARD_ASSISTANT.TECHNOLOGY
-
TOOLTIP.TECHNOLOGY
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'technology'
enanjana.attribute_definition
-
-
Zona
-
NEW_WIZARD_ASSISTANT.ZONE
-
TOOLTIP.ZONE
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'zone'
enanjana.attribute_definition
-
-
Localización
-
NEW_WIZARD_ASSISTANT.PATH
-
TOOLTIP.PATH
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'path'
enanjana.attribute_definition
-
-
Unidad Organizativa
-
CONTAINER
-
GRAPH.NODE_ORGANIZATIONAL_UNIT
-
MODAL.ORGANIZATIONAL_UNIT
-
TOOLTIP.ORGANIZATIONAL_UNIT
-
FILTERS.ORGANIZATIONAL_UNIT
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'organizationalUnit'
enanjana.attribute_definition
-
-
Posición
-
COMMON.POSITION
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'position'
enanjana.attribute_definition
-
-
Nombre físico
-
COMMON.PHYSICAL_NAME
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'physicalName'
enanjana.attribute_definition
-
-
Origen
-
COMMON.SOURCE
-
FORM_RELATION.SOURCE
-
RELATION.SOURCE
-
SOURCE
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'source'
enanjana.attribute_definition
-
-
Destino
-
FORM_RELATION.DESTINATION
-
RELATION.DESTINATION
-
FILTERS.DESTINATION
-
DESTINATION
-
labelTranslationKey
yplaceHolderTranslationKey
del atributo conname = 'destination'
enanjana.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.

Para dar de alta una capa desde el Panel de configuración:
-
Pulsar el botón New en la esquina superior derecha.
-
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 propiafalse
). -
value
: texto visible para el usuario cuando selecciona el idioma indicado enlanguage
.(ej.: Dominio).
-
-
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 camposvalue
,usedFor
einternal
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 camposkey
olanguage
si 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 |
---|---|---|
|
int4 |
PRIMARY KEY. Identificador único. |
|
varchar(255) |
NOT NULL. Clave de traducción. Única por idioma en combinación con |
|
varchar(255) |
NOT NULL. Código i18n (debe existir en |
|
varchar(255) |
Opcional. Etiqueta funcional (p.ej. |
|
varchar(4000) |
NOT NULL. Texto traducido. |
|
bool |
DEFAULT |
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.