WiX Localization files (.wxl)¶
The Translate Toolkit is able to process WiX Localization files using the wxl2po converter.
WiX Localization (WiX) is the XML-based localization format used
by the WiX Toolset for building Windows Installer
packages. Files use the .wxl extension.
Format¶
A WXL file contains a WixLocalization root element that carries two
important attributes:
Culture– the locale code for the target language, in lowercase, e.g.de-de,pt-brorcs-cz. This must be set for new files.Codepage– the Windows code page or encoding identifier for the file (e.g.1252for Western European,65001for UTF-8). This is used both as a hint for determining the file encoding and as metadata for the MSI installer.
Translatable strings live in child elements of the root:
<String Id="key">text</String>– text as element content (WiX v3 style)<String Id="key" Value="text" />– text asValueattribute (WiX v4 style); other attributes on the element (e.g.Overridable) are preserved.<UI Id="key" Text="text" … />– translatable text in theTextattribute of aUIelement.
UI elements without a Text attribute are non-translatable layout
overrides that are preserved verbatim on round-trips.
Example (WiX v4):
<?xml version="1.0" encoding="windows-1252"?>
<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl"
Culture="de-de" Codepage="1252">
<String Id="WixUIBack" Overridable="yes" Value="&Zurück" />
<String Id="WixUICancel" Overridable="yes" Value="Abbrechen" />
<UI Dialog="FilesInUse" Control="Retry" X="280" Width="80" />
</WixLocalization>
Example (WiX v3):
<?xml version="1.0" encoding="windows-1252"?>
<WixLocalization xmlns="http://schemas.microsoft.com/wix/2006/localization"
Culture="pt-br" Codepage="1252">
<String Id="WixUIBack" Overridable="yes">&Voltar</String>
<String Id="WixUICancel">Cancelar</String>
</WixLocalization>
Encoding¶
WXL files often lack an explicit XML encoding declaration. When no declaration
is present the toolkit defaults to windows-1252 for parsing (the most
common Codepage in WXL files) and verifies against the Codepage attribute
after the root element has been read, re-parsing with the correct encoding if
necessary.
Files that carry a <?xml … encoding="…"?> declaration are parsed using the
declared encoding directly.