WIX: Statuses while rolling back uninstall are not localized in French

邮差的信 提交于 2019-12-11 17:07:45

问题


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 English...

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?


回答1:


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




回答2:


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.



来源:https://stackoverflow.com/questions/5973994/wix-statuses-while-rolling-back-uninstall-are-not-localized-in-french

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!