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

发布于 2024-11-06 20:30:26 字数 291 浏览 3 评论 0原文

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

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

例如:

screenshot

我已搜索字符串英语和英语法国wxl但无法罚款他们。

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

有谁知道这些字符串可能来自哪里?

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:

screenshot

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迟月 2024-11-13 20:30:27

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

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

<UIRef Id="WixUI_ErrorProgressText" />

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

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.

听,心雨的声音 2024-11-13 20:30:27

默认情况下创建ActionText表。

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

ProgressText 元素还具有 Template 属性。请查看每个标准操作的文档,以在此处定义适当的模板:标准操作参考。我不知道哪个具体操作正在显示您正在查找的字符串。

最好不要对每个 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>

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

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

  • InstallInitialize 操作
  • ProcessComponents 操作
  • InstallFiles 操作
  • CreateShortcuts 操作
  • WriteRegistryValues 操作
  • RegisterUser 操作
  • 操作
  • PublishFeatures 操作
  • PublishProduct 操作
  • InstallFinalize 操作

RegisterProduct 以下 ISBN:978-1782160427

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文