Translation Self Service
Introduction
TrustX provides users with the functionality to customize various text and labels that are shown in the Trustweb application per individual language using the Translations page. Translation configurations are set per tenant and will be applied to all Process Instances for that tenant.
To access the Translations page, navigate to the Backoffice and find System Management > Translations from the left-side vertical navigation bar.

Translations Page
The Translations page provides 8 languages that can be customized in TrustX.
- German
- English
- Spanish
- French
- Hebrew
- Italian
- Portuguese
- Dutch
Each language contains its own JSON configuration that can be updated independently to set different text and labels for each translation.

Available Actions
For each language the following options are available under the 'Actions' column.
- View - Enables users to view the current JSON configuration of a language.
- Customize - The customize pencil icon will take users to the JSON upload page where users can change the configuration of the chosen language. For more information, see the ((insert link to section))
- Reset - This action will be available for languages that have the yellow 'Custom' label under the 'Configurations' column. Clicking this button will enables users to reset the chosen language to the default configuration.
Customizing a Language in the Backoffice
Clicking the customize option under the 'Actions' column will direct the user to the customization page for the chosen language.

By default, the default configuration of a language will be shown. If no previous customization has been saved, the Custom Translations will be empty and show a JSON upload option.

The JSON of the default translation can be downloaded for easier customization by clicking the download arrow button next to the 'Default Translations' title.

When customizing translations, it is possible to upload a JSON file that contains a partial translation file. In the example below, only the instructions
object is updated. All instances of the word "selfie" have been updated to read "face image".
{
"instructions": {
"faceCaptureDescriptionV2": "To achieve optimal outcomes, make sure to capture the face image as instructed below:",
"faceVisible": "Face Fully Visible",
"goodLighting": "Good Lighting",
"listTitle": "Guidance",
"minimizeGlare": "Try to minimise glare or shadow",
"neutralExpression": "Keep a neutral expression",
"neutralExpressionV2": "Neutral Expression",
"provideface image": "We need you to provide a face image to check that you are really you and to keep your account secure.",
"removeHats": "Remove anything that might obstruct your face",
"face imageImageAlt": "Instructions for capturing a face image",
"face imageInstructionsV2": "We'll automatically scan your face image when you’re in position.",
"face imageTitleV2": "Capture face image",
"takePhoto": "Take photo",
"takePhotoV2": "Start",
"takeface image": "Take a face image",
"title1": "Face Image"
},
"pageIntroduction": {
"description": "Follow steps shown below to complete your verification process",
"getStarted": "Get Started",
"selfie": "Face Image",
"takeASelfie": "Take a face image",
"verifyYourIdentity": "Verify your identity"
}
}
Any object not updated within the JSON will remain as the value currently configured for that language.
When the file is uploaded successfully, a preview of the JSON will populate the Custom Translations box. This JSON can be removed by clicking the blue 'X' button that appears beneath the download button.

Once all configurations have been made, click the 'Save' button to complete the customization. The configuration will be saved and the page will be redirected to the Translations overview. Notice that the 'Configuration' for the language has now changed from 'Default' to 'Custom'.

When a new Process Token is generated, the TrustWeb flow will be updated to show the custom language:

Example shows the default "Selfie" updated to "Face Image"
Customizing a Language via API
The TrustX API provides a /translations endpoint that can be used to retrieve and update translations programatically. This section will demonstrate various example of customizing translations through the API.
Retrieving All Language Translations
Users are able to retrieve all custom languages for a given tenant using the /translations endpoint.
Example Request:
GET https://skydev1.oak.trustx-dev.com/api/theme-server/translations
Content-Type: application/json
Authorization: Bearer {{token}}
Example Response:
{
"translations": [
{
"locale": "de",
"type": "CUSTOM"
},
{
"locale": "en",
"type": "CUSTOM"
},
{
"locale": "es",
"type": "DEFAULT"
},
{
"locale": "fr",
"type": "DEFAULT"
},
{
"locale": "he",
"type": "DEFAULT"
},
{
"locale": "it",
"type": "DEFAULT"
},
{
"locale": "nl",
"type": "DEFAULT"
},
{
"locale": "nr",
"type": "CUSTOM"
},
{
"locale": "pt",
"type": "CUSTOM"
}
]
}
Retrieving Details of a Single Language
Details such as the last the last updated date and JSON URL can be retrieved by passing the location in the GET request at /translations/{location}
Example Request:
GET https://skydev1.oak.trustx-dev.com/api/theme-server/translations/de
Content-Type: application/json
Authorization: Bearer {{token}}
Example Response:
{
"locale": "de",
"type": "CUSTOM",
"defaultCdnUrl": "https://cdn.trustx-dev.com/translations/labels_de.json",
"customCdnUrl": "https://cdn.trustx-dev.com/translations/skydev1/labels_de.json",
"createdAt": "2025-02-19T13:42:45.846Z",
"updatedAt": "2025-02-19T13:42:45.846Z",
"createdBy": "test@daon.com",
"updatedBy": "test@daon.com"
}
Customize a Language
The JSON of a language can be customized by performing a POST to the specified language at /translations/{location}/custom
Similar to uploading JSON via the Backoffice, any JSON object not included will remain as the default value. The example below updates face related instructions for the English language.
Example Request:
POST https://skydev1.oak.trustx-dev.com/api/theme-server/translations/en/custom
Content-Type: application/json
Authorization: Bearer {{token}}
{
{
"instructions": {
"faceCaptureDescriptionV2": "To achieve optimal outcomes, make sure to capture the face image as instructed below:",
"faceVisible": "Face Fully Visible",
"goodLighting": "Good Lighting",
"listTitle": "Guidance",
"minimizeGlare": "Try to minimise glare or shadow",
"neutralExpression": "Keep a neutral expression",
"neutralExpressionV2": "Neutral Expression",
"provideface image": "We need you to provide a face image to check that you are really you and to keep your account secure.",
"removeHats": "Remove anything that might obstruct your face",
"face imageImageAlt": "Instructions for capturing a face image",
"face imageInstructionsV2": "We'll automatically scan your face image when you’re in position.",
"face imageTitleV2": "Capture face image",
"takePhoto": "Take photo",
"takePhotoV2": "Start",
"takeface image": "Take a face image",
"title1": "Face Image"
}
}
}
Revert to Default
A language can be reverted to default via the API by sending a DELETE query to the /translations
endpoint.
Example Request:
DELETE https://skydev1.oak.trustx-dev.com/api/theme-server/translations/{locale}/custom
Content-Type: application/json
Authorization: Bearer {{token}}
It is also possible to revert all languages back in a single query.
Example Request:
DELETE https://skydev1.oak.trustx-dev.com/api/theme-server/translations/custom
Content-Type: application/json
Authorization: Bearer {{token}}