Translating an Application Interface

This page is for application designers who want to translate an application interface into different languages.

Overview

To translate text strings that appear in your application, create a translation table. The translation table contains:

  • the exact text string that appears in the application interface: the entry code
  • the translated text: the translation string
  • the language of the translated text: the language name.

This page explains how to configure translation of text in PhixFlow.

Translation tables do not translate the PhixFlow interface itself. Property tabs and any notification, warning or error messages reported by PhixFlow will continue to be in English. 

It is possible to translate the PhixFlow interface and messages using a client language file. Contact support@phixflow.com for more details on how to do this.

See also:

What You Can Translate

For large organisations, you may need deploy a PhixFlow application across sites in different countries. You can configure some of the text in the application to be displayed in a different language.

Translatable PhixFlow property
containing the source text
Where the text appears in the application

Menu → Name 

The menu name appears an option in a menu.
Menu item → NameThe menu item name appears as a sub-menu option.
Action → Basic Settings → Display Name

Not translatable - see below.

Component (any) → Description → TooltipFor any component, when the user hovers their mouse pointer over the component, PhixFlow displays the tooltip text. 
Component for static text → Display Text

Static text appears:

  • in titles, for example on a form
  • or labels on components, such as buttons.
View attribute → Grid Settings → Label 
or if there is no label → Basic settings → Name

This text appears in a screen that displays data:

  • in the column header of a table
  • in the axis label or legend of a chart
Attribute <values> only when the Table → Advanced → Translate Values property is selected.Attributes values appear in views, such as grids and charts that display the table's records. 
An expression defined with the 
translate() function, for example:
Action → Properties → Basic Settings → In Progress Message
The expression appears as a message, which notifies the user of the progress or completion of an action.

PhixFlow cannot translate:

  • Attributes in analysis models are not translated by default.
  • Component dynamic text, because this displays data from the table.
  • Grid view → Basic Settings → Name. This appears as the title of the grid when it appears in a screen.
  • In a grid view → attribute action → tooltip: if this includes the action display name, it is not translated.
  • Number formats. 


The list of locales available in PhixFlow is a standard list. The presence of a specific locale does not indicate that translations are available for the locale.
If a user selects a Locale that has no:

  • PhixFlow client language file -  the PhixFlow GUI continues to be displayed in English (using the clientengb file).
  • application translation tables -  the application text continues to be displayed in English.

What PhixFlow Does to Translate Text

When a user opens an application, PhixFlow goes through the following steps to determine which language to display:

  1. PhixFlow checks the user's locale.
  2. For source text in a translatable field in the application interface, PhixFlow looks in the translation table.
  3. PhixFlow finds an entry code string that exactly matches the text in the interface.
  4. PhixFlow matches the user's locale language to a language name in the translation table.
  5. PhixFlow displays the translation text for that language instead of the source text.

PhixFlow displays the untranslated source text if it cannot find any translation. This may be because:

  • no translation text is defined
  • the language is not present in the translation table
  • there is no exactly matching entry code
  • no translation table has been set up for the application.

How to Configure Translation

Step 1  Set Up Languages and Locales

PhixFlow is supplied with a set of languages at the system level. These populate the drop-down lists in locales and in the translation table. If you have administration privileges, you can add more languages in the repository; see Language. You cannot add languages at the application level.

You can set up locales at the system level or the application level; see Locale. If all your applications will need to use the same set of locales, it is more efficient to set them up at the system level (in the full repository) rather than at the application level (within the application's repository).

You may need to move an application to a different PhixFlow instance. For example it is common to design and configure applications in a development instance. When the application is ready to use, it is moved (exported/imported) to a production instance. 

If your application is using the system level languages and locales, they must also be present in the destination PhixFlow instance.

When a user opens an application, PhixFlow checks the user's locale.

  1. In the application repository, right-click Locale and  Create New Locale.
  2. Enter a name for the Locale, and select a language from the Language Name drop-down list.

You can only delete a language from the repository when it is no longer used by any locale.

Step 2  Set Up the Translation Table 

Every text string that you want to translate must be listed as an entry code in the translation table. For details about setting translation table properties, see Translation Table.

It is important to be consistent in capitalisation and to minimise the strings, as you need to create entries that pair the text to all the translations.

An application is able to translate text using the information in its translation table. The table contains a list of whole text strings which must exactly match those used in the application.

The translation table must include all variants of a string, for example, with different:

  • spelling variants
  • capitalisation
  • spacing
  • punctuation.

For each text string you must add the translation for each language you want to support. 

It is not possible to break the strings into substrings or translation. For example, you must translate ‘First Name’ and ‘Family Name’ separately, rather than creating translation strings for 'first', 'family' and 'name'.