On-prem SeekTable with activated white-label mode supports UI labels customization and this capability can be used for switching UI to non-English language by specifying JSON config at Admin → UI localization. This capability can be used for customization of English labels (for example, "Cube" can be changed to "Dataset" etc). For now the following ready-to-use translations are available:
SeekTable provides internationalization and localization features which make it possible to build multi-language reports and switch between different languages. This is especially important when SeekTable is embedded into multilingual host system: embedded reports (or embedded app view) may be configured for rendering in different languages too. With SeekTable's multi-language support it is possible to avoid cloning and mainaining separate sets of cubes/reports for each language if the only difference are localized labels and numbers/dates formatting.
The following items can be translated/localized:
Technically translations are configured as JSON files (an object with property-value pairs), for example:
{ "Year": "Jahr", "Month": "Monat", "Product": "Produkt" }
Then these files should be registered in docker-compose.seektable.env
in this way:
SeekTable_ST__Appearance__Multilanguage__Enabled=true SeekTable_ST__Appearance__Multilanguage__TranslatePublishedReportLabels=true SeekTable_ST__Appearance__Multilanguage__TranslateOnlySharedCubeLabels=false SeekTable_ST__Appearance__Multilanguage__TranslateReadOnlyEntityName=true SeekTable_ST__Appearance__Multilanguage__AllowSwitchLanguageByUser=true # 1st (index=0) locale "ua" SeekTable_ST__Appearance__Multilanguage__Locales__0__LocaleID=ua SeekTable_ST__Appearance__Multilanguage__Locales__0__UserLabelsFile=/app/locales/uk-UA_user.json SeekTable_ST__Appearance__Multilanguage__Locales__0__AppLabelsFile=/app/locales/uk-UA.json SeekTable_ST__Appearance__Multilanguage__Locales__0__CubeFormatCulture=uk-UA # 2nd (index=1) locale "de" SeekTable_ST__Appearance__Multilanguage__Locales__1__LocaleID=de SeekTable_ST__Appearance__Multilanguage__Locales__1__UserLabelsFile=/app/locales/de-DE_user.json SeekTable_ST__Appearance__Multilanguage__Locales__1__AppLabelsFile=/app/locales/de-DE.json SeekTable_ST__Appearance__Multilanguage__Locales__1__CubeFormatCulture=de-DE # (next locale should use index=2 and so on)
Variable | Description |
---|---|
TranslatePublishedReportLabels |
Determines whether to translate report-specific labels (rows/columns/values "Label" overrides, custom chart X/Y-axes labels) in published reports and shared (via "Team sharing") reports. This translation is based on UserLabelsFile. |
TranslateOnlySharedCubeLabels |
Translate cube labels (dimensions/measures/parameters) only when it is accessed as a 'shared' cube. Otherwise, cube labels are always translated according to the user's language selection. Note that "cube configuration form" always shows non-translated labels. |
TranslateReadOnlyEntityName |
Translate cubes & reports names when they are accessed as read-only (shared) items. This translation is based on UserLabelsFile. |
AllowSwitchLanguageByUser |
Allow end users to switch UI language in "Manage Account". |
LocaleID |
Unique locale identifier. |
UserLabelsFile |
Location of JSON file with user-defined labels (cube labels, report-specific labels) translation. |
AppLabelsFile |
Location of JSON file with app UI labels translation. |
CubeFormatCulture |
The culture name in the format languagecode2-country used for dates/numbers formatting.
Affects localization of month/day-of-week names.
languagecode2 is a lowercase two-letter code as defined in ISO 639-1, or, if no two-letter code is available, a three-letter code as defined in ISO 639-3.
country contains a value defined in ISO 3166 and usually consists of two uppercase letters.
For example:
|
JSON files with labels translation should be located in host's folder and mounted to seektable container by adding
the following line into docker-compose.yml
file:
seektable: image: seektable:latest expose: - 5000 ports: - 80:5000 volumes: - /var/seektable/locales:/app/locales - csv-files-volume:/app-data/csv-files
where /var/seektable/locales is a host-server location, and /app/locales is a bases path used in docker-compose.seektable.env
.
Don't forget to re-create SeekTable docker containers to apply these changes. Then, go to "Admin" → "System setup" → "UI Localization", you should see a message that confirms multi-language support and the list of loaded locale IDs.
Once configured, these locale IDs can be specified in secure embedding JWT payload using seektable_user_locale_id
=LocaleID
.