Skip to main content
Version: Latest (4.0.0)

Translation and Language Management in Hosted Pages


Overview

Translations and languages appear across many parts of cidaas: emails and SMS, login and registration pages (hosted pages), consents, and fields.

Learn more about Hosted Pages Management.

Hosted page translations are managed through Translation Management in Trustdesk — a centralized system for all localized resources. Instead of editing raw JSON in the hosted pages area, you manage hosted page strings from the Translation Management UI, with schema validation, completion tracking, and support for multiple translation sets.

This gives instance administrators a single place to:

  • View and edit hosted page translations across all supported locales
  • Override bundled default strings or add fully custom locales
  • Track translation completeness (critical, warning, and total missing keys)
  • Maintain multiple translation sets for different brands or use cases
  • Assign a translation set to an application via its hosted page layout

At a Glance

System overview

┌──────────────────────────────────────────────────────────────────────────┐
│ ADMIN (Trustdesk) │
│ │
│ Translations UI ──► localization-srv ──► CDN (locale files) │
│ (edit strings) (validate & store) (en.json, de.json, …) │
└──────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────┐
│ RUNTIME (user opens login / register) │
│ │
│ Hosted Pages ──► public-srv ──► app-srv (resolve layout + set) │
│ │ │
│ └────────────► CDN (load locale file for assigned set) │
└──────────────────────────────────────────────────────────────────────────┘

Configuration model — one app, one translation set

Resource: default-hosted-pages-webapp

├── Translation set: default Translation set: enterprise
│ ├── locale: en ├── locale: en
│ └── locale: de └── locale: de

Hosted Page Layout: layout-consumer-001
└── resources
└── default-hosted-pages-webapp
└── translationSet: "enterprise" ◄── pick which set this layout uses

Application: Consumer Portal (client_id: a1b2…)
└── hosted_pages_layout_id: "layout-consumer-001" ◄── links app to layout above

Two apps can share one layout (same translation set) or use different layouts (different sets) while editing strings in the same resource.

Runtime flow

User Hosted Pages public-srv app-srv CDN
│ │ │ │ │
│ open login │ │ │ │
│────────────────►│ │ │ │
│ │ GET /public/{requestId} │ │
│ │────────────────►│ │ │
│ │ │ resolve layout │ │
│ │ │ + translationSet│ │
│ │ │────────────────►│ │
│ │ │◄────────────────│ │
│ │◄── page config (branding, providers, …) │
│ │ │ │ │
│ │ GET …/enterprise/de.json (assigned set + locale) │
│ │──────────────────────────────────────────────────►│
│ │◄── translations ──────────────────────────────────│
│◄ localized UI ──│ │ │ │

How It Works

Hosted pages are a static translation resource in the localization platform. At runtime, the hosted pages web app loads translations through public-srv, which resolves the correct translation set for the application's client ID and serves the locale data via CDN.

Typical flow:

  1. Setup — Hosted pages are registered as a localization resource with a schema and default translation set.
  2. Edit — An admin edits translations in Translation Management; changes are validated against the schema and published to CDN.
  3. Assign — A hosted page layout maps the hosted pages resource to a translation set; the application references that layout.
  4. Serve — At login or registration, hosted pages request configuration from public-srv and load the assigned translation set for the user's locale.

Terminology

TermExplanation
ResourceA localizable entity in cidaas. Hosted pages are one resource among others (for example, field setup).
Translation setA named collection of translations for a resource (for example, default, enterprise). A resource can have multiple sets for different brands or configurations.
LocaleA language code such as en or de. Each translation set supports one or more locales.
Bundled translationsDefault strings shipped with cidaas hosted pages (English and German). You can override individual keys without providing every string.
Custom localeA language beyond the bundled defaults (for example, French or Italian). All required keys must be translated for that locale.
Completion statusMetrics showing missing translations: critical (required keys), warning (optional keys), and total.

Note: Bundled defaults are available for English (en) and German (de). For other languages, provide translations for all required keys.

Manage Hosted Page Translations

Step 1: Open Translation Management

  1. Log in to Trustdesk.
  2. Navigate to Translations.

From the resource overview you can see all localization resources, their supported locales, translation sets, and completion progress.

Step 2: Select the Hosted Pages Resource

  1. Open the hosted pages resource (for example, Default Hosted Pages / default-hosted-pages-webapp).
  2. Review the resource details: supported locales, translation sets, and completion status per locale.

Hosted pages support multiple translation sets. Use the default set unless you need a separate set for a specific brand or application.

Step 3: Edit Translations

  1. On the resource details page, select a translation set.
  2. Click Edit Translations for the locale you want to work on.
  3. Use one of the editors:
    • Table editor — Spreadsheet-style view with reference language, target translation, and missing/translated status. Best for bulk work across many keys.
    • Category editor — Keys grouped by page or feature (login, MFA, register, and so on). Best for focused edits within one area.
  4. Edit translation values only. Do not change translation keys.
  5. Save your changes. The system validates against the JSON schema before publishing.

Translation keys, descriptions, and UI hints come from the resource schema — you do not need a separate key reference list. Search and category filters in Translation Management help you find the string you need.

:::warning Watch out

Do not edit translation keys or placeholders. Change only the displayed text values. Keys such as GUEST_LOGIN or LOGIN.WELCOME_HEADER must remain unchanged — only their values should be translated.

:::

Step 4: Add a Locale or Translation Set

Add a locale to an existing set when you want to support a new language.

Create a translation set when you need a separate copy of hosted page strings (for example, a white-label brand). You can optionally copy from an existing set.

Step 5: Assign a Translation Set to Your Application

Translations take effect when the application uses a hosted page layout that points to the correct translation set.

In Trustdesk:

  1. Go to Branding → Hosted Pages Layout and open (or create) the layout used by your application.
  2. Under Resources, set the translation set for the hosted pages resource (key: default-hosted-pages-webapp).
  3. Go to Integrations → Applications, open your app, and set Hosted Pages Layout (hosted_pages_layout_id) to that layout.

Example — hosted page layout (PUT /hostedpages-srv/hosted-page-layouts/{id}):

{
"description": "Consumer portal branding",
"layout": {
"hosted_page_group": "consumer-pages",
"primaryColor": "#f7941d"
},
"resources": {
"default-hosted-pages-webapp": {
"translationSet": "enterprise"
}
}
}

Example — application link (App Configuration API):

{
"client_id": "a1b2c3d4-e5f6-4789-a012-3456789abcde",
"display_name": "Consumer Portal",
"hosted_pages_layout_id": "layout-consumer-001"
}

Two applications can share one layout (same translation set) or use different layouts (different translation sets) while editing strings in the same hosted pages resource.

Step 6: Preview Hosted Pages

After saving translations:

  1. Open the hosted pages preview from Translation Management or the hosted pages area in Trustdesk.
  2. Map your application, select the response type, and copy the preview link.
  3. Open the link in a browser to verify the translated content.

How Translation Sets Reach Hosted Pages at Runtime

The translation set is configured on the hosted page layout and resolved at runtime when a user opens a hosted page. The hosted pages web app does not call localization-srv directly. See Runtime flow above for the sequence diagram.

StepWhat happens
1User starts login; hosted pages receive a requestId.
2Hosted pages call Public Page Information (GET /public-srv/public/{requestId}) for branding, providers, and page settings.
3public-srv resolves the application and its hosted_pages_layout_id, including resources.default-hosted-pages-webapp.translationSet.
4Hosted pages load the locale file for that translation set from CDN (bundled defaults merged with your overrides).

To verify the assignment via API before testing in the browser:

  1. LayoutGET /hostedpages-srv/hosted-page-layouts/{id} → check data.resources.default-hosted-pages-webapp.translationSet.
  2. ApplicationGET /apps-srv/apps/{clientID} → check hosted_pages_layout_id matches the layout above.
  3. RuntimeGET /public-srv/public/{requestId} after starting a login for that app → confirms the page bootstrap for the same client (translations are loaded separately from CDN using the resolved translation set).

Technical Integration

cidaas provides REST APIs for managing hosted page translations and assigning translation sets to applications. Translation content is managed through the Localization API (localization-srv). Layout and application linking use the Hosted Pages API and App Configuration API.

Translation Management

APIDescriptionLink
List ResourcesLists localization resources, including hosted pages.View API
Get Resource SchemaRetrieves the JSON schema used for validation.View API
List Translation SetsLists translation sets for a resource.View API
Get LocaleReads translations for a locale in a set.View API
Update LocaleUpdates translations (PUT full replace, PATCH partial merge).View API
Bulk Update LocalesUpdates multiple locales at once.View API

Translation Set Assignment

APIDescriptionLink
Get Layout by IDReads resources.{resourceId}.translationSet from a layout.View API
Update LayoutSets the translation set per resource on a layout.View API
Get App ConfigurationReads hosted_pages_layout_id for an application.View API

Public API (Runtime)

APIDescriptionLink
Public Page InformationBootstrap hosted page config for a requestId (branding, providers). Translations load separately from CDN using the resolved translation set.View API

API Authentication

Localization APIs require OAuth2 client credentials with the following scopes:

  • cidaas:localization_read — Read access for localization resources
  • cidaas:localization_write — Write access for localization resources
  • cidaas:localization_delete — Delete access for localization resources

For hosted page layout API scopes, see Hosted Pages Management — API Authentication.

For hosted page group and layout details, see Hosted Pages Management.

:::warning Need help implementing this?

Please contact us on our Developer Support Page.

:::