Lokalizowanie setupów WiX

Jeśli używasz WiX do tworzenia setupów z interfejsem mondo, tak jak to opisano w dokumentacji zapewne natknąłeś się na problem lokalizacji tekstów wyświetlanych w okienkach. Z moich doświadczeń wynika, że wystarczy wykonać parę prostych kroków, aby rozwiązać ten problem.

1. Nagłówek xmlowy pliku .wxs musi określać w jakiej stronie kodowej został napisany, może to być windows-1250, chyba że wszystkie teksty są w unicode – wtedy pozostawiamy bez zmian:

<?xml version="1.0" encoding="windows-1250"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

2. W elemencie product trzeba ustawic language na wartość 1045 odpowiadającą językowi polskiemu więcej info tutaj dodatkowo trzeba znowu zdefiniować strone kodową, w moim przypadku będzie to 1250. Dodatkowo stronę kodową trzeba określić również w elemencie Package:

    <Product Id="b07fe36d-a77f-439b-a40a-d8e861dc80f2" Name="PUT-PRODUCT-NAME-HERE" Language="1045" Version="1.0.0.0" Manufacturer="PUT-COMPANY-NAME-HERE" UpgradeCode="11b3430f-a2db-4791-b237-6f9db8734754" Codepage="1250">

    <Package InstallerVersion="200" Compressed="yes" Languages="1045" />

3. W ostatnim kroku należy stworzyć plik z lokalizacją np WixUI_pl-pl.wxl najlepiej na podstawie oryginalnego, który jest dostępny w Ľródłach, albo w cvs. Niestety czeka nas tutaj trochę pracy z tłumaczeniem wszystkich komunikatów. W nagłówku znowu należy określić stronę kodową oraz język w polu Culture. Pole culture musi odpowiadać wartości Language z pola Product inaczej nie zostaną wyświetlone poprawne komunikaty.

<?xml version="1.0" encoding="windows-1250"?>

<WixLocalization Culture="pl-pl" xmlns="http://schemas.microsoft.com/wix/2006/localization">

  <String Id="YOURLOCID">Your localized string</String>

</WixLocalization>

Podczas budowania Votive automatycznie doda plik .wxl do kompilacji. Jeśli kompilacja odbywa się ręcznie należy dodać parametr -loc do wywołania light:

Light.exe -ext "C:\Program Files\Windows Installer XML v3\bin\WixUIExtension.dll" -loc WixUI_pl-pl.wxl -out "WixProject2.msi" -pdbout "WixProject2.wixpdb" WixProject2.wixobj

One thought on “Lokalizowanie setupów WiX

  1. […] Lokalizowanie setupów WiX […]

Comments are closed.