WIX:回滚卸载时的状态未以法语本地化

时间:2011-05-12 06:12:59

标签: localization installer wix status

我使用WIX V3创建了安装,本地化为法语。 安装工作正常,但后来我们发现了一个奇怪的事情:

安装产品后,我们尝试卸载它。 在卸载期间,我们按取消,然后安装执行回滚(这很好)。问题是在回滚期间,状态显示为英文...

例如:

screenshot

我用英语搜索字符串&法语wxl但不能罚款。

安装在法语操作系统上进行了测试。

有没有人知道这些字符串可能来自何处?

2 个答案:

答案 0 :(得分:2)

默认情况下,ActionText表是而不是

您必须通过向其中一个wxs文件添加UI元素来自行创建它。此UI元素必须包含ProgressText元素。将每个ProgressText元素的Id属性设置为标准操作的名称。此类元素的内部文本将覆盖为该特定操作显示的字符串。

ProgressText元素还具有Template属性。请查看每个标准操作的文档,以在此处定义相应的模板:Standard Actions Reference。我不知道哪个特定操作正在显示您要查找的字符串。

最好不对每个ProgressText元素的值进行硬编码,而是使用本地化文件。为每个ProgressText元素创建两个本地化字符串。一个用于模板,一个用于实际值。

实施例

wxs文件

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

本地化文件

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

注意:我不懂西班牙语,我只是让google翻译它。

以下是您可能需要查看的正确顺序的标准操作列表:

  • InstallInitialize Action
  • ProcessComponents Action
  • InstallFiles Action
  • CreateShortcuts Action
  • WriteRegistryValues Action
  • RegisterUser Action
  • RegisterProduct Action
  • PublishFeatures Action
  • 发布产品操作
  • InstallFinalize Action

我的知识基于具有以下ISBN的书:978-1782160427

答案 1 :(得分:1)

您是否在设置中引用了进度字符串?

默认情况下,WiX不包含这些内容,因此您需要确保手动引用它们,如下所示:

<UIRef Id="WixUI_ErrorProgressText" />

然后,只要您在设置中包含法语(fr-FR),就会包含本地化字符串。