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 and Linux installers currently are 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

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 three settings:

Setting Value  Meaning
 Untranslated  <untranslated> Use the english text
 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 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:

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.

The translation list is restricted to 50 translations so you will need to select the project Context or use the find option to drill down to the required text.

The language add option should only be used by Touch-Base personnel as the initial translations are created as part of the software build process.

In this example, the calibrate dialog has been selected within the Dutch language.

To search for a specific translation, enter text (which can be from any of the 3 columns - English / Default / Custom).
You can also select from the drop down list of project context values. A context is an internal name of the project which more or less relates to a dialog or item in a given program. To review all translations you should select each project context in turn.
To change a translation click the 'link' in the  “custom” field. If there is a custom value it will be shown here otherwise “edit” is shown.

The translation edit screen is then shown:

Simply enter the translation in the custom field and click save.

​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 edit option 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:

Once translation 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 1998”. 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