MSI Factory

Language Properties

Properties

Language name:

The short name of the language. This value is arbitrary and has no meaning in terms of the installer database that is created. It is merely a label that helps you identify the language throughout the project.

Language ID:

The language identifier. This value will set the language identifier for the installer database package.  See the More Information links below for more details about language identifiers. Note that you can use the same language identifier for more than one language in your project if you want to use one or the other in different circumstances.

Code page:

The ANSI codepage to use for strings in your installer database. Usually it is best to leave it as "0" (zero) so that it is set to be a neutral code page.

Automatically synchronize with language file:

If checked, the messages in this language will be synchronized with those from the file named below when the project is loaded. In this case, synchronization means that messages that are missing from the current language are brought in from the file. Existing messages in the language are not overwritten or removed. This feature is useful because it helps make sure that your projects catch new messages that are added to MSI Factory as new features are added.

Note: You can synchronize on demand by clicking the Advanced button and selecting Synchronize from the menu.

Messages

A list of message IDs and strings that are defined for this language. Click the Add button to open the Edit Message dialog and define a new message. Click the Edit button to open the Edit Message dialog and change an existing message. You can also double-click on a message to edit it. You can copy and paste one or more messages between languages or even within the same language using the right-click context menu. You can also import and export language messages using the Advanced button. Choosing the Import option opens the Import Language File dialog.

When you want to use one of these messages in your project, you use the syntax:

!(loc.MESSAGEID)

Where MESSAGEID is the ID of a specific message. For example, to set the text of a button to say "Next" (or whatever the equivalent translation might be) use:

!(loc.UIButtonNext)

At build-time, this will be replaced with the string for that message in the language that you are building with.

Tip: You will know which fields in your project support translated text because they will have a "Translate" checkbox beside them and/or you will be able to right-click on the field and choose Insert > Message ID from the context menu.

More Information

MSDN Online: Code Page Handling (Windows Installer)

MSDN Online: Creating a Database with a Neutral Code Page

MSDN Online: Language Identifier Constants and Strings

MSDN Online: Language Identifiers

MSDN Online: Locales and Languages

MSDN Online: Setting the Code Page of a Database