WIX: Statuses while rolling back uninstall are not localized in French
I've created installation using WIX V3 with localization to French. The installation works fine, but then we found out a weird thing:
After installing the produce we try to uninstall it. During the uninstall we press cancel, and then the installation performing rollback (which is fine). The problem is that during the rollback the statuses appears in Engli开发者_开发技巧sh...
For Example:
I've search for the strings in English & French wxl but couldn't fine them.
The installation was tested on French OS.
Does anyone have an idea, where those strings could come from?
Are you referencing the progress strings in your setup?
WiX doesn't include these by default, so you need to ensure that you manually reference them as follows:
<UIRef Id="WixUI_ErrorProgressText" />
Then as long as you're including the French language in your setup (fr-FR
), the localized strings will be included.
The ActionText table is not created by default.
You have to create it yourself by adding a UI element to one of your wxs files. This UI element has to contain ProgressText elements. Set the Id attribute of each ProgressText element to the name of a standard action. The inner text of such an element will overwrite the string that is shown for that particular action.
The ProgressText element also has a Template attribute. Take a look at the documentation for each standard action to define the appropriate template here: Standard Actions Reference. I don't know which specific action is displaying the string you are looking for.
It's best to not hardcode the values for each ProgressText element but instead use a localization file. Create two localization strings for each ProgressText element. One for the Template and one for the actual value.
Example
wxs file
<UI>
<ProgressText Action="InstallFiles" Template="!(loc.InstallFilesTemplate)">!(loc.InstallFiles)</ProgressText>
<ProgressText Action="CreateShortcuts" Template="!(loc.CreateShortcutsTemplate)">!(loc.CreateShortcuts)</ProgressText>
<ProgressText Action="WriteRegistryValues" Template="!(loc.WriteRegistryValuesTemplate)">!(loc.WriteRegistryValues)</ProgressText>
<ProgressText Action="RegisterUser" Template="!(loc.RegisterUserTemplate)">!(loc.WriteRegistryValues)</ProgressText>
<ProgressText Action="RegisterProduct" Template="!(loc.RegisterProductTemplate)">!(loc.RegisterProduct)</ProgressText>
<ProgressText Action="PublishFeatures" Template="!(loc.PublishFeaturesTemplate)">!(loc.PublishFeatures)</ProgressText>
<ProgressText Action="PublishProduct" Template="!(loc.PublishProductTemplate)">!(loc.PublishFeatures)</ProgressText>
<ProgressText Action="InstallFinalize" Template="!(loc.InstallFinalizeTemplate)">!(loc.InstallFinalize)</ProgressText>
</UI>
localization file
<String Id="InstallFiles">Installazione del archivos</String>
<String Id="InstallFilesTemplate">Archivo: [1], Tamaño de archivo: [6], Directorio: [9]</String>
<String Id="CreateShortcuts">Creacion de los atajos</String>
<String Id="CreateShortcutsTemplate">Atajo [1] creado</String>
<String Id="WriteRegistryValues">Escribir en registro</String>
<String Id="WriteRegistryValuesTemplate">Camino: [1], Nombre: [2], valor: [3]</String>
<String Id="RegisterUser">Registrar a los usuarios</String>
<String Id="RegisterUserTemplate">Usario: [1]</String>
<String Id="RegisterProduct">Registrar producto</String>
<String Id="RegisterProductTemplate">Producto: [1]</String>
<String Id="PublishFeatures">Publicar las características</String>
<String Id="PublishFeaturesTemplate">Caraterística: [1]</String>
<String Id="PublishProduct">Publicar el producto</String>
<String Id="PublishProductTemplate">Producto: [1]</String>
<String Id="InstallFinalize">Finalizar la instalación</String>
<String Id="InstallFinalizeTemplate">Finalizar [ProductName]</String>
note: i don't know spanish, i just let google translate it.
Here is list of the standard actions occuring in the correct order you might want to take a look at:
- InstallInitialize Action
- ProcessComponents Action
- InstallFiles Action
- CreateShortcuts Action
- WriteRegistryValues Action
- RegisterUser Action
- RegisterProduct Action
- PublishFeatures Action
- PublishProduct Action
- InstallFinalize Action
My knowledge is based on a book with the following ISBN: 978-1782160427
精彩评论