WPF: Localizing Applications
MM .NET makes it easy for end users to add new languages and localize the applications themselves without assistance from developers. Users can add new languages and translate the entire application including text such as labels, buttons, tool tips, and system messages. This section describes how to perform these localizations.
Putting the Application in Localize Setup Mode
To put a WPF application in Localize Setup mode so that it can be localized, run the application and select Localize Setup. This is the menu bar you created in WPF: Adding Localization Menu Items. Selecting this menu option puts the application in Localization Mode and puts a check mark in the Localize Setup menu item.Localizing Windows
To localize a Window and all its elements (including Toolbars and menus):- Put the application into Localize Setup mode as described in the previous section
- Launch the Window to be localized.
- Double-click the Window. This displays the Localize User Interface dialog:

The Original Text list box displays all the unique text of the Window to be localized including its Title, all contained elements including menus and toolbars, and Tooltip text. The Language combo box displays a list of all languages in the Language table. The Original text box displays the original language text of the item currently selected in the Original Text list box. The Translated text box displays the translated text for the currently selected item and language. If no translation has been performed for the currently selected language, the Translated text box contains the same value as the Original text box.
Notice all separator characters (colons, by default) are removed from labels before they are displayed in the Original Text list box. This prevents users from having to localize redundant text whose only difference is a trailing colon. For example, if a label's text is set to "Last Name:", and there is also a grid with the header text "Last Name" you only have to translate this phrase once.
- To translate text, select the text to be translated in the Original Text list box, and select the language you want to translate to in the Language combo box. If the text has not been previously translated, the Translated text box contains the same value as the Original text box. To localize the text, enter the corresponding phrase in the Translated text box.
For example, if you want to translate the English word "Address" to German:
- Select the word "Address" in the Original Text list box.
- Select German in the Language combo box
- Change the text in the Translated box to "Adresse"
- To save the translated text, either select a different item in the Original Text list box (which does a save behind the scenes), or click the Save button which saves the text and closes the dialog.
Localizing Application Messages
Most applications display text in message boxes to alert the user when something "interesting" has happened. A number of these messages are also displayed by MM .NET at run time. For example, if a user closes a WPF Window and there are pending changes, MM .NET asks the user if they want to save changes.When you run the mmLocalize.sql script (Step 1: Adding Localization Tables to a Database) it automatically adds all MM .NET messages to the Message table. You can also add your own application-specific messages to this table for display and localization. You should use the localization-aware mmMessageBox class to display application messages rather than the standard .NET MessageBox class. For details, see the MM .NET Help topic Displaying Localized Message Boxes with mmMessageBox.
To localize application messages, when the Localize User Interface dialog is displayed, select the Show System Messages check box.
The Message Key list box displays all MM .NET message text as well as any application-specific message text you add to the Messages table. See the earlier section Localizing Windows for details on translating text using this dialog.
© (c) 2026 Oak Leaf Enterprises, Inc., 1996-2026 • Updated: 04/26/18
Comment or report problem with topic
