Translation bundles
The DatAscend application handles translation by using i18n bundles.
The main way to manage these translation bundles is through the DatAscend Studio.
By using the resource configuration endpoints (available on Swagger UI), users can interact with these bundles.
Managing translation bundles for entities via the DatAscend Studio
Section titled “Managing translation bundles for entities via the DatAscend Studio”The following steps describe how an operator manages entity translation bundles in DatAscend Studio:
Bundle Creation
Section titled “Bundle Creation”If the entity does not have a bundle created, when it is created, a new generic bundle will be generated automatically.
The operator should open the Translations tab to view and manage the translation bundles in the entity drawer.

Select the Language
Section titled “Select the Language”At the top of the Translations tab, the Language dropdown menu is available. The operator should click on it and choose the language to translate the entity into.

Translate the Main Label
Section titled “Translate the Main Label”The Label field is for the entity’s main name (e.g., “Worksheet”). The operator should change the text in this field to the correct translation for the chosen language.

Translate the Attributes
Section titled “Translate the Attributes”In the Attributes section, for each attribute listed in the left column (such as id or owner), a corresponding text field is found in the Label column on the right. The operator should enter the translation for each attribute’s name here.

Translate the Relations
Section titled “Translate the Relations”The Relations section works the same way as the attributes. For each listed relation, the operator should type its translation into the text field in the Label column.

Save the Changes
Section titled “Save the Changes”Once all translations are complete, the operator should click the Save button at the bottom of the drawer to apply them.
Managing translation bundles via the API
Section titled “Managing translation bundles via the API”The API provides endpoints to retrieve translation bundles.
The base URL for all endpoints is /api/v1/config/resources/.
Get available namespaces
Section titled “Get available namespaces”Retrieve a list of available namespaces for translation bundles.
Endpoint:
GET /api/v1/config/resources/namespaces?version=:versionParameters:
Name Type From Description versionstring query The name of the version to query Example response:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": ["application","entities"],"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Get specific translation bundles
Section titled “Get specific translation bundles”Retrieve specific translation bundles by language, namespace, and bundle names.
Endpoint:
GET /api/v1/config/resources/:language/:namespace?version=:version&bundle[]=:bundleName1&bundle[]=:bundleName2Parameters:
Name Type From Description languagestring path Language code (e.g., “en”, “es”) namespacestring path Namespace (e.g., “application”, “entities”) versionstring query The name of the version the bundles belong to bundle[]string query Array of bundle names to retrieve (value after namespace of $meta.name)Example response:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": "22b9f18a-493a-430d-9657-1261a3f9a4e9","$meta": {"engine": "string","format": "string","fallback": "string","language": "string","version": "string","name": "string","created": "string","modified": "string"},"en": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"},"es": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"}},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}
Update a translation bundle
Section titled “Update a translation bundle”Update the translations for a specific bundle.
Endpoint:
PATCH /api/v1/config/resources/:language/:namespace?version=:version&bundle=:bundleParameters:
Name Type From Description languagestring path Language code (e.g., “en”, “es”) namespacestring path Namespace (e.g., “application”, “entities”) versionstring query The name of the version the bundle belongs to bundlestring query The name of the bundle being updated (value after $meta.name)Request body:
{"id": "00000000-0000-0000-0000-1234567890AB","en": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"},"es": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"}}Example response:
{"error": false,"status": 200,"message": "string","errors": [{}],"data": {"id": "22b9f18a-493a-430d-9657-1261a3f9a4e9","$meta": {"engine": "string","format": "string","fallback": "string","language": "string","version": "string","name": "string","created": "string","modified": "string"},"en": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"},"es": {"additionalProp1": "string","additionalProp2": "string","additionalProp3": "string"}},"pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}