New WINDEV 28 feature!
  • In this lesson you will learn the following concepts
  • What is a multilingual application?
  • Choosing the project languages
  • Internationalizing the analysis
  • Internationalizing the project elements
  • Internationalizing an image
  • Internationalizing controls
  • Internationalizing messages in the code
  • Internationalizing menus
  • The translation tools
  • Entering translations directly
  • Translation with WDMSG and WDTRAD
  • Other elements to translate: the framework messages
  • Changing the language programmatically
  • Adding a menu option
  • Programming
  • Project test
Lesson 4.15. Managing multiple languages
In this lesson you will learn the following concepts
  • What is a multilingual application?
  • Creating a multilingual application, step by step.
Lesson duration

Estimated time: 20 mn
Previous LessonTable of contentsNext Lesson
What is a multilingual application?
A multilingual application is an application that can be run in different languages (English, French, Spanish, German or any other language).
In other words, the same application can be used in multiple languages. We will see how to do it in this lesson.
We are use a project that can be run in English or French, according to the user's choice.
The main steps of a multilingual application are:
  • Choosing the project languages.
  • Internationalizing the analysis.
  • Internationalizing the project elements (windows, reports, controls, help system, etc.).
  • Internationalizing messages in the code.
  • Changing the application language programmatically.
These different steps will be applied to the "WD Full Application" project. This project is in English and will be translated into French.

  • Open the project you worked on in the previous lesson.
    1. Go to the WINDEV home page (Ctrl + <).
    2. On the home page, click "Tutorial", then in "Part 4 - Full application with data", double-click "Full application (Exercise)".
    3. A dialogue box prompts you to open the project you worked on in the previous lesson. You can open the local copy or the original project. Select "Open the local copy".


A corrected project is available. This project allows you to perform the different operations in this lesson (if you have not followed the previous lessons). To open the corrected project, go to the home page and click "Tutorial", then in "Part 4 - Full application with data", double-click "Full application (Answers)".
Choosing the project languages
  • First, we will select the project languages.
    1. Open the project description: on the "Project" tab, in the "Project" group, click "Description".
    2. Click the "Languages" tab. Our application will be in English and French.
    3. Click the "Add" button. The language selection window appears.
      Selecting project languages
    4. Click "French". A checkmark is displayed on the right of the language.
    5. Validate. "French" appears in the list of project languages.
  • The "Languages" tab also allows you to set the language options related to numbers, currencies or dates for the selected language. Let's see an example:
    1. Click "French".
    2. Select the "Date" tab.
    3. The Windows language options are used by default. Select "Use the following parameters": you now have the ability to define the date format as well as the translation used for the days and months.
    4. Keep the "Use the settings defined in the operating system language options" option.


In the language options, you can set the text direction ("Miscellaneous" tab, "Text direction" option). This allows you to create interfaces with a language written from right to left.
  • Validate. A message prompts you to synchronize the different project elements. Answer "Yes". All the open elements in the editor (windows, reports, etc.) are closed and the additional languages are added to these elements.
    Remark: The captions that exist in the base project language are automatically copied to the added languages.
Internationalizing the analysis
By default, an analysis is created in a specific language and cannot be translated.
However, some information can be written in several languages (notes in the documentation, shared information, etc.).
If your application uses Reports and Queries, the names of the data files and items can also be translated. This translation can be done in the "Reports and Queries" tab (this tab is both in the data file and the item description window).
By default, the controls created from the analysis items have the item caption specified in the analysis. If a caption has been specified in the shared information of the item, it will be used when creating the control.
When you change the language of the project linked to the analysis, this change is not automatically applied to the analysis, since analyses can be shared between multiple projects.
  • To include multiple languages in an analysis:
    1. Open the data model editor: click Load project analysis in the quick access buttons of the WINDEV menu.
    2. In the analysis description ("Analysis description" option in the context menu), select the "International" tab.
    3. The list of languages supported by the analysis is displayed. French is not supported:
      • Click the "Add" button.
      • Select "French".
      • Validate the language selection window.
    4. Validate the analysis description window.


      To take into account all the languages of the project linked to the current analysis, click "Synchronize with the project".
  • Here is a simple example of how to enter shared information in multiple languages: let's define the text of the control bound to the "Address" item in the "Customer" data file:
    1. Select the Customer data file.
    2. Open the description of the items (select "Description of items" in the context menu of the data file).
    3. Select the "Address" item and open the parameters of the control bound to the selected item (shared information). To do so, click the link at the bottom of the screen. The shared information is displayed in a new window.
    4. In the "General" tab, in the French caption, enter "Adresse".
    5. Validate the shared information window.
    6. Validate the description window of the items.


      The shared information of the analysis can be translated:
      • when creating the analysis.
      • at any time via the editor.
      • at any time via WDMSG and WDTRAD, tools used to extract, translate and reintegrate the different elements of the project.
  • To take changes into account, you must generate the analysis: on the "Analysis" tab, in the "Analysis" group, click "Generation".
  • Close the analysis editor (click the "X" icon of the analysis in the open document tabs).
Internationalizing the project elements
All project elements can be multilingual: windows, reports, help, etc.
We will modify some elements in the WIN_Menu window to have a general view of the different methods that can be used.
We will modify:
  • the image of the bar used in WIN_Menu.
  • the captions of the controls in WIN_Menu.
  • the menu options.
  • the message displayed by the WLanguage code when closing the application.
  • Open the "WIN_Menu" window in the editor (double-click its name in the "Project explorer" pane for example).
  • First, make sure that WIN_Menu is associated with the different languages defined in the project:
    1. Open the window description ("Description" in the context menu).
    2. Select the "Language" tab: the two languages selected in the project are displayed.
    3. Validate the window.

Internationalizing an image

  • To change the image of the bar used in the WIN_Menu window according to the runtime language:
    1. Open the "WIN_Menu.WDW" window.
    2. The bar image is contained in the template associated with the window. Therefore, the associated window template must be opened:
      • Click the "WD FullApplication" control and open the context menu.
      • Select "Open template".
      • The window template appears, enclosed in an orange border.
    3. Open the bar description window:
      • Select the "WD FullApplication" control and open the context menu.
      • Select "Description".
    4. In the "Image" section, click .
    5. In the context menu that appears, select "Multilingual".
    6. The window for managing multilingual images is displayed. A different image can be used for each language. This feature is very useful if you use images that contain text.
    7. For our example, in the "French" area, select the "header-fr.png" file:
      • Click .
      • Select "Browse".
      • Select the desired file.
    8. Validate. The "<Multilingual value>" text appears in the "Image" section of the description window.
    9. Validate the control description window.
    10. Save the window template ( or Ctrl + S).
    11. Update the windows that use the window template by clicking the icon in the orange bar. Validate the update window.
    12. Close the window template displayed in the editor.

Internationalizing controls

Controls can display different types of information to the user:
  • a caption,
  • a help message,
  • an image, etc.
Sometimes, this information must be translated. This data is available in the different tabs of the control description window.
  • For our example, we will translate the first tab of the Tab control.
    1. Double-click the Tab control to open its description window.
    2. In the "General" tab of the description window, select "List of products".
    3. In the "Static pane description" section, do the following:
      • enter the translation of the tab label: "Liste des produits".
      • define one specific image per language for the tab (as previously done).
      • define a tooltip for each language.
    4. Close the control description window.

Internationalizing messages in the code

All messages in your program can be translated into multiple languages. In our example, when you click the "Exit" menu option, the "Exit application?" dialog box is displayed. We will translate this message.

  • To translate the menu option text:
    1. Open the code of the menu option:
      • Expand the menu in the editor.
      • Select the "Exit" option.
      • Right-click to open the context menu and select "Code".
    2. To translate this type of message, move the cursor to the "Exit application?" string and press Ctrl + T. You can also go to the "Code" tab, "Languages" group, expand "Translate strings" and select "Translate messages".
    3. The following window is displayed:
    4. This window allows you to translate all messages of your program into all project languages.
    5. In the "French" area, type "Quitter l'application?" and validate.
    6. The icon appears in the code editor.
      This icon indicates that the message is in multiple languages. You can quickly view the different translations by hovering over the icon.
    7. Close the code editor.

Internationalizing menus

A menu option can be translated like any other control via its description window, or directly from the window editor.
  • To translate the menu of the "WIN_Menu" window:
    1. On the "Display" tab, in the "Options" group, expand "Language displayed" and select the language to display in the editor (French in our case).
    2. The menu options are displayed in the selected language. If no translation corresponds to the selected language, the menu options are displayed in English.
    3. Expand the "Menu" option.
    4. Select "Send an email".
    5. Press the Space key: the text becomes editable.
    6. Type the caption in French: "Envoyer un email" and validate.
    7. Switch the displayed language back to English: on the "Display" tab, in the "Options" group, expand "Language displayed" and select "English".
The translation tools
We have translated some elements of the application manually.
Several methods can be used to translate this information:
  • translating the messages directly in the editors. Messages can be translated via a translation tool (e.g., Google Translate, provided you have a license), etc.
  • a translation performed via an external tool (WDMSG and WDTRAD).

Entering translations directly

The translations are typed in the product interface directly. For example, the caption of "New" button becomes "Nouveau" in French. Simply open the control description window and enter the corresponding translation in the desired language.
If you want to use a translation software or a translation site, WINDEV can be configured to use this software:
  1. On the "Home" tab, in the "Environment" group, expand "Options" and select "General options of WINDEV".
  2. Go to the "Translation" tab.
  3. Specify:
    • Whether the regional settings must be automatically enabled according to the language used for the input. In this case, if the language requires a specific character set, it will be automatically selected.
    • The translation software or site to be used. You can use WDDIXIO, a translation dictionary included with WDMSG (see next paragraph), a specific translation software or site, or Google Translate.
      For more details, see Translation with Google Translate.
    • The languages supported (e.g., "English" as the source language and "French" as the destination language).
  4. Validate.
  5. Once the translation settings are defined, you can use the button in the different description windows of the project elements: this button allows you to use the translation software.

Translation with WDMSG and WDTRAD

You can use WDMSG, a tool (not provided with WINDEV) that allows you to:
  • extract all the project messages (control captions, code message, window titles, etc.) to translate them,
  • reintegrate the translated messages.
The messages to translate are extracted:
  • in a text format that can be configured to be used by most translation tools
  • in HFSQL format.
WDMSG also comes with WDTRAD, a computer-assisted translation tool. WDTRAD makes it easy to enter all the translations of multilingual resources in a project.
Contact PC SOFT Sales Department for more details about WDMSG and WDTRAD.

Other elements to translate: the framework messages

There are multiple messages in the WINDEV framework. For example, the days and months used by the date functions come from the WINDEV framework. To translate one or more libraries of this framework, you must use WDINT (not provided with WINDEV).
This program is used to get a WDM file. To use this file in your application:
  • you can use LoadError.
  • you can include the file in the "Languages" tab of the project description. Simply select the desired language and go to the "Miscellaneous" tab.
Contact PC SOFT Sales Department for more details about WDINT.
Changing the language programmatically
By default, the project is run in the runtime language defined in the "Languages" tab of the project description ("Description" in the "Project" tab).
In an application, the language can be chosen via a menu option. You can change the language of the running application by calling Nation in the event associated with the menu option.

Adding a menu option

  • To add a menu option:
    1. Open the "WIN_Menu" window in the editor if necessary (double-click its name in the "Project explorer" pane).
    2. Click the "Menu" option in the window. The menu is expanded.
    3. Select "Send an email".
    4. Right-click to open the context menu. Select "Add after". Enter "Languages" and validate.
    5. Select the "Languages" option you have just created.
    6. Right-click to open the context menu and select "Transform to expand a submenu".
    7. Enter the text of the first sub-option: "English".
    8. Press the "Enter" key twice and enter the text of the second option ("French").
We will write the WLanguage code required to change the language.


To enter the language management code:
  1. Select "Menu .. Languages .. French" in the editor.
  2. Right-click to open the context menu. Select "Code".
  3. Write the following code:
  4. Save your changes and close the code editor.
  5. Select "Menu .. Languages .. English" in the editor.
  6. Right-click to open the context menu. Select "Code".
  7. Write the following code:
    Nation changes the execution language of the application. The constants passed as parameters allow you to specify the language to be used.
    The language is changed immediately by Nation.
  8. Save your changes and close the code editor.

Project test

We have translated some elements of the application. Now, we will change the language in test mode.
  • To test the application:
    1. Test the project (click in the quick access buttons). The window is displayed in test mode in English.
    2. Select "Menu .. Languages .. French".
    3. The elements that we modified in our application are displayed in French:
      • the image of the window template.
      • the first tab label.
    4. End the test by selecting "Menu .. Exit". The message is displayed in French.
    5. Validate and go back to the editor.
Previous LessonTable of contentsNext Lesson
Minimum version required
  • Version 28
Click [Add] to post a comment