Translations

Manual for the Translations configuration page: the operator texts of the project and their translation per project language, edited in a table, imported and exported as CSV.

Updated 7 min read
On this page (10 sections)
  1. Overview
  2. Project Languages
  3. Translations Table
  4. Editing Translations
  5. Add Text
  6. Delete
  7. Rescan Project
  8. Import and Export
  9. AI Chat
  10. Configuration API and MCP

The Translations entry in the Configuration menu opens the list of operator texts of the project with one column per project language. An operator selects a language with the Select Language action. Every text that has a translation in that language is then shown translated; a text without a translation shows its default text.

The list is built from the project when the page opens. Every operator text in the table below appears automatically, also before it has a translation, so texts do not have to be entered first. A text that a Label, Input, Button or other object shows is listed once, however many objects show it, and is translated everywhere at once. An Alarm or Event message that contains variable references is listed as a template: each different variable reference is replaced by a numbered placeholder {0}, {1} and so on, in the order of first appearance, so one translation covers every value. A translation must keep these placeholders, for example Tank {0} level high translated as Tankniveau {0} hoog.

Changes apply to every client: a client loads the new translations when it opens a page. The translations are stored in the project configuration, replicated to the standby server, recorded in the Audit Trail and included in the project export.

SourceTexts
LabelLabel caption
InputInput caption
ButtonOn Text and Off Text
ToggleOn Text and Off Text
Drop-downEvery item of a Drop Down
TrendDescriptions of the Trend series
Alarm BannerTable Name and column names
AlarmAlarm messages
EventEvent messages
RecipeRecipe Type and Recipe descriptions, the Items of a Recipe Type Parameter with the Selection editor, and the descriptions of the variables a recipe addresses

Project Languages

The language columns are the project languages of the Languages section on the Parameters page, in the order of Languages in file. Add a language there with Add Language and it appears as a column on the Translations page; the hint above the table links to the Parameters page, and the Translations button of Project Language Texts in that section opens this page. When no language is configured, the table shows one English column.

A text of digits only is not translated and is not listed.

Translations Table

The table uses the configuration table with search, column filters, sorting and the column chooser described in the Configuration Tables article. The search matches the default text, the translations, the source and the page names.

ColumnDescription
Default TextThe text as the project shows it. This is the key of the translation and cannot be edited here; it changes when the object, alarm or event changes. Hover over the cell to see the full text.
Language columnsOne column per project language, headed by the language name. An empty cell has no translation; the Missing view lists the texts with an empty cell.
SourceWhere the text is used, for example Label or Alarm. Hover over the cell to see the pages that show the text.
ManualKeeps the text when it is not found in the project. Use it for a text that the project shows without containing it, for example a text that the expression of an Input or Label returns.
In ProjectChecked when the text is found in the project.
ActionsDelete, offered for a text that is Manual or not found in the project.

The buttons above the table select which texts are listed. Each button shows the number of texts it lists.

ViewTexts listed
AllEvery text.
MissingTexts without a translation in at least one project language.
Not in ProjectTexts that are not found in the project: texts added with Add Text, and translated texts whose object, alarm or event was removed.
ManualTexts with Manual checked.

Editing Translations

Click a language cell and type the translation. While a cell is edited it grows to show every line; Enter starts a new line, so a multi-line caption keeps its line breaks. Clearing a cell removes the translation, and the operator then sees the default text in that language. Manual is changed with its checkbox.

Edits are kept on the page until they are saved. A changed cell is marked with a bar on its left side, and Unsaved changes in the toolbar counts the changed cells. Save writes all changes at once; Discard restores the saved values. Changes stay while scrolling, searching, filtering or switching the view. Leaving the page with unsaved changes asks for confirmation.

Add Text

Add Text opens a dialog with the Default Text, one field per project language and Manual, which is checked by default. Enter the text exactly as the project shows it, fill in the translations and press Add. A text that already has translations is refused; edit it in the table instead. A text of digits only is refused.

Add Text is meant for texts the project does not contain as such. Texts on pages, in alarms, events and recipes are listed automatically.

Delete

Delete in the toolbar deletes the translations of the selected texts, and Delete in the Actions column those of one text; Manual is cleared with them. A text that is still found in the project stays in the list without translations.

To clean up after objects, alarms or events were removed, select the Not in Project view, select the texts that are no longer needed and press Delete. The view also lists the texts added with Add Text, so check the Manual column before deleting.

Rescan Project

The list of project texts is built when the page opens and is kept while scrolling and filtering. Rescan Project searches the pages, alarms, events and recipes again and refreshes the table and the counts, for example after a page was edited in another browser tab.

Import and Export

Export writes every text of the table to a CSV file, encoded as UTF-8, with the CSV Delimiter of the Parameters page. A line break inside a text is written as \n and a delimiter inside a text is replaced automatically; both are restored on import. The export contains the saved translations, so unsaved changes on the page are pointed out before the file is written.

ColumnContent
DefaultThe default text.
One column per project languageThe translation, headed by the language name.
InProjectTRUE when the text is found in the project, otherwise FALSE.
ManualTRUE or FALSE.
SourceWhere the text is used, for example Label, Alarm.

Import opens the Import Translations dialog. Select the CSV file and the Import Mode, then press Import. The first column is the default text. A language column is recognized by its language name or its language code and must be a project language; Manual is read when the column is present; InProject, Source and any other column are ignored. A file without a column for a project language is refused before anything is written, which protects the translations against a file read with the wrong delimiter. A first line sep=; as written by Excel sets the delimiter of that file.

Import ModeResult
Merge with the existing textsThe texts and language columns in the file are updated, and an empty cell removes that translation. Texts and languages that are not in the file keep their translations. Use it for a file that holds part of the texts or part of the languages, for example a file returned by a translator for one language.
Replace all textsThe file replaces all stored texts. Texts that are not in the file and languages without a column lose their translations. The page asks for confirmation before the import.

A file written by the Project Language Texts Export of the Parameters page in earlier versions has the same columns and is imported the same way.

AI Chat

With AI chat enabled, a user in the Administrators group can ask the AI assistant on this page to fill in translations, for example Translate the missing texts into French. The assistant lists the texts without a translation, writes the translations and requests a confirmation in the chat before each change is stored; reading the texts needs no confirmation. On this page the assistant is instructed to keep placeholders such as {0} and line breaks, and to leave the default texts on pages, alarms and events unchanged; review the proposed translations in the confirmation before storing them.

After a confirmed change the table and the counts reload. Edits that are not yet saved on the page stay pending.

The number of tool calls per chat message is limited by Max Tool Rounds in the AI Chat section of the Parameters page, so a large project is translated in several steps and the assistant may ask to continue.

Configuration API and MCP

The translations are available through the Configuration API and through the matching MCP tool ManageTranslations, where the action argument selects the operation and the items argument carries the texts. Texts are addressed by the default text. Calls require a user in the Administrators group, and writes are accepted on the primary node. A write changes only the languages it names: an empty value removes that translation.

EndpointMCP toolDescription
GET API/Config/TranslationsManageTranslations, action 'get'Lists the texts with their translation per project language, the missing languages, Manual, In Project, the sources and the pages. view=missing, notInProject or manual narrows the list.
POST API/Config/TranslationsManageTranslations, action 'create'Adds texts that the project does not contain as such. A text that already has translations is refused.
PUT API/Config/TranslationsManageTranslations, action 'update'Sets translations and Manual of texts that have translations or are found in the project.
POST API/Config/Translations/DeleteManageTranslations, action 'delete'Deletes the translations of texts.
Something missing or wrong in this article? Contact us