The visible texts in the different modules of the Data Portal and the application messages can be customized by configuring translations for different languages. Whenever new texts are added or new languages are incorporated, it is necessary to register the corresponding translations in the platform.
Notes:
-
Metamodel object names do not support translations.
-
If translation keys are missing, they will be visible in the platform; however, they do not prevent normal use.
Translations Table in the Configuration Panel (Administrator view)
The translations visible in the Data Portal (forms, menus, messages, filters, etc.) are stored in the Translations table.
Structure of the Translations table
Each record represents a translation key in a language:
-
Id: unique identifier of the record. It is automatically assigned from the Configuration Panel. -
key: translation key.-
The same key must exist once for each available language.
-
It is not recommended to use metamodel object names as the key (the
namefield ofObject Sub-Types).
-
-
language: i18n language code; it must exist inLanguages(e.g.es-ES,en-US). -
value: text translated into the language indicated inlanguage.-
Records with different
keyvalues cannot share the samevaluefor translations of reference attributes or metadata.
-
-
used_for: informational field for classifying/filtering uses (e.g.AUDIT,WORKFLOWS); can be left empty. -
internal: flag indicating whether the translation is internal Anjana Data text (true) or configuration text such as attributes, menus, roles, etc. (false).
Notes:
-
The combination (
key,language) cannot be repeated. -
The value of
languagemust already exist in theLanguagestable.
Language translations
The languages in the languages table have their own translations visible from the language selector in the user profile.
The translation of the i18n code in the key field (e.g.: es-ES) determines the visible name of the language (value) that a user sees when the application is in the language indicated in language.
-
Example: The record with
key= es-Es,language= en-US andvalue= Spanish is used so that, when a user who has the application in American English (language= en-US), they see the translation Spanish (value= Spanish) next to the flag of Spain.
Translation of es-ES when the user uses the platform with language en-US
-
Example: The record with
key= es-Es,language= es-ES andvalue= Español is used so that, when a user who has the application in Spanish (language= es-ES), they see the translation Español (value= Español) next to the flag of Spain.
Translation of es-ES when the user uses the platform with language es-ES
Special considerations for translation keys
Certain elements of the Anjana Data configuration require a specific approach when defining translation keys:
-
Infrastructure, Technology and Zone (Triplets)
The translation keys (key) for the possible values of these attributes must match exactly the parts of the triplet configured in the Tot plugins. These in turn must correspond to thenamevalues in theAttribute Definition Valuestable.
-
Example: If in the Tot plugin for Azure the following triplet is defined:
Virtualizador / Denodo / Territoriothen the translation keys (
key) must be the following, regardless of thevalue:-
infrastructure: Virtualizador -
technology: Denodo -
zone: Territorio
-
-
Note: The values of these attributes must not contain the characters :, #, ( or ) to avoid interference with Anjana Data internal identifiers.
Important:
If during metadata import in the creation wizard, selecting a triplet shows an error stating “No plugin exists for extract”, the likely cause is that the triplet values in the plugin YAML are not correct for the selected translations. It is advisable to:
-
Check that the
keyvalues in theLanguagestable corresponding to the translations selected in the wizard (value) match thenamevalues in theAttribute Definition Valuetable. -
Check that the
namevalues of theAttribute Definition Valuetable match the values configured in the ari of the plugin YAML.
-
Roles
To translate role names, the translation key must be formed by concatenating the prefixROLE.with the value of thenamecolumn in theRolestable.-
Example:
ROLE.architect
-
-
Languages
To translate language names, the translation key must match the i18n code defined in theLanguagestable.-
Example:
es-ES en-US fr-FR
-
Internal platform translations
In Anjana Data there are internal translations that are repeated under different keys, as they were generated according to the functionality or screen where they are used.
Important: if you wish to modify an internal translation, it is necessary to update the value in all associated keys within the Translations table.
For example, when changing the translation of the mandatory attribute infrastructure, you must modify both the Infrastructure key in the creation wizard, and the one in the filters, the one in the attribute in the template, and the one in the tooltip in the object header.
Translation keys for mandatory entity/relationship attributes
-
Name
-
COMMON.NAME -
NEW_WIZARD_ASSISTANT.CARD_NAME -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'name'inanjana.attribute_definition
-
-
Infrastructure
-
NEW_WIZARD_ASSISTANT.INFRASTRUCTURE -
TOOLTIP.INFRASTRUCTURE -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'infrastructure'inanjana.attribute_definition
-
-
Technology
-
NEW_WIZARD_ASSISTANT.TECHNOLOGY -
TOOLTIP.TECHNOLOGY -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'technology'inanjana.attribute_definition
-
-
Zone
-
NEW_WIZARD_ASSISTANT.ZONE -
TOOLTIP.ZONE -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'zone'inanjana.attribute_definition
-
-
Location
-
NEW_WIZARD_ASSISTANT.PATH -
TOOLTIP.PATH -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'path'inanjana.attribute_definition
-
-
Organizational Unit
-
CONTAINER -
GRAPH.NODE_ORGANIZATIONAL_UNIT -
MODAL.ORGANIZATIONAL_UNIT -
TOOLTIP.ORGANIZATIONAL_UNIT -
FILTERS.ORGANIZATIONAL_UNIT -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'organizationalUnit'inanjana.attribute_definition
-
-
Position
-
COMMON.POSITION -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'position'inanjana.attribute_definition
-
-
Physical name
-
COMMON.PHYSICAL_NAME -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'physicalName'inanjana.attribute_definition
-
-
Source
-
COMMON.SOURCE -
FORM_RELATION.SOURCE -
RELATION.SOURCE -
SOURCE -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'source'inanjana.attribute_definition
-
-
Destination
-
FORM_RELATION.DESTINATION -
RELATION.DESTINATION -
FILTERS.DESTINATION -
DESTINATION -
labelTranslationKeyandplaceHolderTranslationKeyof the attribute withname = 'destination'inanjana.attribute_definition
-
Adding a translation in the Translations table
Adding a new translation involves adding a record to the Translations table.
To add a record from the Configuration Panel:
-
Click the New button in the upper right corner.
-
Fill in the fields:
-
Key: translation key declared in the corresponding table (Menu, Sections, Attribute Definitions…) (e.g.: FILTERS.DOMINIO). -
Language: i18n language code for which the translation is being configured (e.g.: es-ES). -
usedFor: informational text for classifying/filtering uses (e.g.: empty). -
internal: flag indicating whether the translation is internal or organization configuration. (e.g.: in this case it is own configurationfalse). -
value: text visible to the user when they select the language indicated inlanguage. (e.g.: Dominio).
-
-
Click Save to save the record or Cancel to discard.
Note: After adding, it is necessary to:
-
Run the Upload Translations Files action from the Configuration Panel (
Actions > Upload Translations Files) so that the changes are applied and visible in the Data Portal. -
Run the Clear cache action from the Configuration Panel (
Actions > Clear cache) so that the changes are applied and visible in the Data Portal.
Modifying a translation in the Translations table
Modifying translations is a common operation when it is necessary to adjust the text displayed to the user or update existing terminology.
-
Editable fields:
Thevalue,usedForandinternalfields can be modified at any time without restrictions. These changes do not affect the system structure; they only update the visible text in the Data Portal or the classification of the translation. -
Fields not recommended for editing:
It is not recommended to modify thekeyorlanguagefields unless the corresponding fields in the configuration tables (Menu, Sections, Attribute Definition, Roles, …) have been modified first.
Note: After modifying, it is necessary to:
-
Run the Upload Translations Files action from the Configuration Panel (
Actions > Upload Translations Files) so that the changes are applied and visible in the Data Portal. -
Run the Clear cache action from the Configuration Panel (
Actions > Clear cache) so that the changes are applied and visible in the Data Portal.
Translation Configuration via direct database access (Developer view)
Translations are stored in the portuno.translations table.
|
Column |
Type |
Constraints / Notes |
|---|---|---|
|
|
int4 |
PRIMARY KEY. Unique identifier. |
|
|
varchar(255) |
NOT NULL. Translation key. Unique per language in combination with |
|
|
varchar(255) |
NOT NULL. i18n code (must exist in |
|
|
varchar(255) |
Optional. Functional label (e.g. |
|
|
varchar(4000) |
NOT NULL. Translated text. |
|
|
bool |
DEFAULT |
Example of translation key configuration:
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);
Important:
-
Once the insert has been executed, run the sequence update for the table. (From the Configuration Panel under
Actions > Reset DQ sequences, the sequences of all tables, including this one, can be updated). -
The full weight of the configuration logic falls on the developer who executes the SQL queries directly against the tables. It is strongly recommended to carefully review the Table Structure section.