Skip to content

Translating your own words

TrakState switches its own interface between languages — menus, buttons, messages. The texts you enter are unknown to the product. Under Settings → Translations you give them their other languages.

You do not have to type anything out or hunt for it. Whenever something that displays text is saved, TrakState reports that text to the list. An empty field simply means: this text has no translation in that language yet.

Collected are board names, widget titles, the text in text tiles, the state words and the column headings from your queries — and likewise the names of your capture masks together with the label above every input.

Not collected are values that get stored: the options of a choice list, for instance. What the operator picks is what ends up in the data, so a translated option would write a different value into your records. The same goes for column names, tag paths and units. You can still have such a value shown translated — see Texts in your data below.

There are no invented identifiers. If something displays “Cycle time”, the entry is called “Cycle time”, and beside it you enter “Taktzeit”. So you always see what is on the screen.

This works in every direction: set your installation up in Polish and you get Polish keys, with German or English beside them.

Rename a text and the translation follows it — as long as the same text is not also used somewhere else. So a correction does not cost you the work again.

You do not have to type the list out yourself. Ask the assistant — on any page, for instance “translate all our texts into English” — and it works through the list: it reads which texts have no translation yet and fills them in, many at a time. This needs AI stage 3.

It only fills what is empty. A translation somebody already entered is kept unless you ask for it to be replaced, and it cannot invent new entries — only texts on the list are translated. Afterwards check the result here and correct single words by hand.

Under Add language you enter a language code — pl for Polish, fr for French. A further column appears at once, and the language shows up in the picker at the top right — even before a single word has been translated into it. So you can switch over and see what you are working on.

Under This plant speaks you find every language. The built-in ones (German, English) cannot be removed; one you added yourself you take out again with the ×, and everything written in it is kept — it is all back the moment you add the language again.

Note: the TrakState interface itself exists in German and English. If somebody picks Polish, your texts appear in Polish while the frame stays English.

Delete something that displayed a text and the entry stays on the list for now — marked no longer in use. That is deliberate: there is work behind it that you did, and the text may be needed again. You can remove such entries yourself at any time.

What a script writes — the text of an automatically raised fault, for instance — or what is in a master-data list is data, not configuration. Data is never translated on its own: “Line 3” or a part number must look the same in every language. You decide which values are texts, by marking them:

  1. Mark the value: put $t: in front of the text where it is written — in the script ("$t:Brush change"), in the master-data row, in the list tag.
  2. Add the word by hand: enter it without $t: under Add a word by hand and give it its translations. Data does not reach the list by itself.

A marked value then appears in the viewer’s language — and without the $t: — in these places:

  • Boards: table and group table cells, a text value on a KPI tile, a state field whose value has no state word, the fault list (fault text, and a severity without a state word), the master-data table, the status value and state chip of the header bar, the entries of a choice filter, and the categories of the bar chart, Pareto, heatmap, scatter legend and photo wall captions.
  • Capture masks: the entries of a choice list and of a listed column in a repeat group.
  • HTML widget: only what the code passes through system.i18n.t — see Widgets.

Limits:

  • Without $t: nothing is translated, even when the same word is on the list.
  • The whole value is the key. $t: has to stand at the very start, and a text with a changing number in it (“Maintenance due: 1250 m²”) would need a word of its own for every number — do not mark such values.
  • Stored stays stored. What the operator picks in a mask, what a filter writes and what goes into a record is the original value, $t: included. Grouping, sorting and filtering use it too, so a group table sorts by the original text.
  • Editing shows the original. The edit dialog of the master-data table shows the stored value with its $t:, so a correction never writes a translation back.
  • Copying text from a board copies what is on the screen, i.e. the translation.
  • A value that really starts with $t: is written as $$t: and shown as $t:.

A template brings its own words for its texts. They appear in the list with the tag from template , and they show on every screen — as long as you have no word of your own for the same text. Two templates with the same text: the one added first wins.

To use your own word instead, click Own translation. That makes an ordinary entry of yours with the template’s words to start from; change it as you like. It wins from then on. Removing the template removes its words, never yours.

A screen that runs without a login has no user for a language to belong to. So you set its language where you create its link: under Settings → Screens, in the field Language of this screen. Left empty, the screen follows the default language.