Language support

As of driver UPDD release 6.0.550 we have added language support within the driver GUI dialogs. This language support will eventually cover all installed utilities (developed in QT that caters for language support). This supports a core number of languages. Please contact support if a desired language is not available and we will create as required.

However, please note, the installers used to install the software are not part of this generic translation as the installers are unique to each OS and have been created specifically for individual OS. The Mac installers are English and German and Linux installers are currently English only. The UPDD Windows installer utilises a 3rd party installation tool that comes with its own translations files that we include in our Windows software and therefore, depending on the systems language locale, the install may be in the native language.

Language selection

The language selection is set in a number of ways.

In all cases where the language code is specified it can be in the format 'xx' or 'xx_XX'  where xx is the base language and XX is the varient, such as in de_CH representing Swiss (CH) German (de). A useful list of the possible locale codes is available here.

Where xx_XX is defined, if translations cannot be located based on the full xx_XX local code a search for a match on the first two characters is made.
e.g. if a translation file is available for de_DE (German) but de_CH (Swiss) is requested, then after checking for a swiss translation the software will go on to utilise the German

At any time you can return to English translations by setting the language code to 'en' albeit a specific language file does not exist for English as this is the default text used in the programs and dialogs.

Global setting

By default the language will be displayed in English.

The global (no device) setting default_locale specifies the language to use. This is initially set at the point the software is delivered and can be one of two settings:

Setting Value  Meaning
System locale  <system> Use the language defined by the system language setting (if a matching language file exists).
Language code  xx[_XX] Individual local codes can be specified to give a language specific package. The language varient XX is optional e.g. cs_CZ, da_DK, fi etc.
Can be useful for testing without the need to launch programs with a specific environment or argument (see below).
To see the available language files list the .qm files that reside in the UPDD Application 'translations' sub-folder as per this Windows example:

To update this setting, either:

Any components already loaded, such as the UPDD Console, will only show the desired language when they restart.

If the command line is used to change the language code then UPDD Test, the driver's test program, needs the driver to be reloaded before displaying the correct language text.

Run time options 

All core components and extension components, where translation exist, can accept a run time option in the following two ways: 

Environment variable

Setting the environment variable UPDD_LOCALE prior to launching a program as in this example launching upddutils in Finish:

In the example below 'de' is a upddutils command meaning digitizer_events and not de as in German language!

Command line option

Passing a command line option locale=xx as in this French example
In the absence of either of the above the value set in default_locale will be used.

Translation editor

For the complete set of UPDD components we hold the English text that can used to generate a desired language file utilising Google translate API. This means that the initial translation is computer generated. This being the case, it is likely that some tweaks will be needed by a native speaker of the language.

To this end, we have added an edit facility to cater for manual adjustments.

​During the translation process it is highly recommended that you have the software installed, so you can see the User Interface dialogs where the text is displayed, as this will allow you to see the context in which the text is used. To this end, this installer installs the software that includes a 'virtual' device that will allow you to see the dialogs and text and how it is use/presented.

Use a browser to visit the UPDD Language Server and log in with credentials supplied by Touch-Base.

To logout of the language server use the URL

After logging in, you will  be presented with a list of available languages. Please contact support if a desired language is not available, and we will create as required.

Click on the desired language to view or edit the translations in the translation's editor page.

You will be presented with the language function bar. From the bar you can select the UPDD software component and select 1 or 3 views of the translations, Incomplete, Complete or All


 Shows the English and machine translation and is waiting to be reviewed and updated by a native speaker


 Shows the English, the machine translation and the real translation, entered by a native speaker

By default, the system selects the 'calibrate' component and shows the Incomplete list of translations.

In the above example  (which is only showing the top incomplete translation), the English word 'Confirm' has not been reviewed.

Once reviewed and approved you can either just 'tick' the checkbox (if the default translation is acceptable) or enter an updated translation in the custom 'edit' field which can be expanded if needed.

The English and Default translations are fixed. Only the custom field can be edited. Values entered are saved automatically (no save button).

Once the translation is reviewed and approved 'tick' the checkbox. The translation will then move over to the Complete list.

For a complete translation the custom text is read only.

All entries for a selected project / completeness are listed on a single large page which can be searched using the browser’s find option.

​Once translations have been updated, future driver builds will contain the new translations.


Machine translation

We are aware that the initial pass using machine translation will give some strange or incorrect translations, especially when translating technical text, as in these German examples: Port -> Hafen -> Harbour or ID -> Ich würde -> I would.

Fortunately using the language server editor these can be easily be identified (by a technically aware native speaker) and updated as appropriate.


We are aware that the language strings as they appear in the language server may be difficult to place into context until they are seen in a new build of the software. Therefore the translations are an iterative process such that new translations need to be reviewed in a new build and adjusted where required, both in the context used and the translation used, both meaning and length. It may be that a shorter translation works better when displayed in the dialog or the dialog needs to be adjusted to cater for longer text.


A hotkey is represented by a & symbol and indicates the keyboard hot key that can be used to select the control.

If XXXX translates to YYYY and &XXXX is the English then generally the translation is YYYY (&X) 

This scheme works well with non-latin based languages. It does have the advantage that when supporting software in many languages it’s easier to identify various fields.

However, in the example above you could enter &YYYY as the translated test so long as:

  • this approach is consistent across all items in a Language
  • care is taken to avoid clashes (same hotkey multiple times on  a page) 

Certain languages may well lend themselves better suited to &YYYY and this was the case for the German translation.

e.g. In German &Check for Updates is default translated to Auf Updates prüfen (&C), which is not expected and is better translated to Auf &Updates prüfen, meaning hotkey would change from C to U.

This needs to be assessed on a language by language basis.

For the UPDD Daemon menu component the machine translation will create some trailing hotkeys and this does not look good in the menu display. Please, where possible, utilise inline hotkeys as per this example:

English Default   Custom
 &About  Di (&A)  &Info
 &Configure  &Configurazione  Edit
 &Enabled  Abilitato (&E)  &Abilitato

Once translations have been completed you need to review each dialog to see if there are any hotkey duplicates and amend accordingly to identify a suitable letter for the hotkey.

Text not to update

There are some copyright notices “Touch-Base Ltd 2022”. The No. is defined with  %n and is substituted at run-time so in that case %2 become the current year so no need to change the year shown.

Unfamiliar terms

The English text may contain terms that are not directly translatable or familiar in the native language.

For example we reference touch device(s)  instead of touchscreen(s). In German this is translated to Touch-Gerät(e), which would be the correct 1:1 translation, but that term in unfamiliar in German.

The reason we use 'touch devices(s)' is the driver supports a range of what would more accurately be described as “pointer devices”; pens, tablets, whiteboards, trackballs, mice and touch screens etc hence using the generic term.

If there is native term that encompasses these devices then use that otherwise touchscreen is acceptable as it may be the only term available for a touchable device.

General notes

The automatic translation process may remove new lines (CR/LF) and concatenate multi lines into one line. It may be necessary to re-add missing newlines in formatted multi-line texts.

The auto translation process may add some additional blanks, especially around %x placement holders. These should be removed to replicate how they are seen in the English texts.

Texts with HTML-tags, though shown wrong in the translation columns of the table, have do in fact have the correct HTML tags