WIX: Статусы при откате удаления не локализованы на французском - PullRequest
0 голосов
/ 12 мая 2011

Я создал установку с использованием WIX V3 с локализацией на французский. Установка работает нормально, но потом мы обнаружили странную вещь:

После установки продукта мы пытаемся удалить его. Во время удаления мы нажимаем кнопку отмены, а затем установка выполняет откат (что нормально). Проблема в том, что при откате статусы появляются на английском ...

Например:

screenshot

Я ищу строки на английском и французском wxl, но не могу их найти.

Установка была протестирована на французской ОС.

У кого-нибудь есть идеи, откуда взялись эти строки?

Ответы [ 2 ]

2 голосов
/ 20 марта 2013

Таблица ActionText не создана по умолчанию.

Вы должны создать его самостоятельно, добавив элемент пользовательского интерфейса в один из ваших файлов wxs. Этот элемент интерфейса должен содержать элементы ProgressText. Установите для атрибута Id каждого элемента ProgressText имя стандартного действия. Внутренний текст такого элемента перезапишет строку, отображаемую для этого конкретного действия.

Элемент 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>

примечание: я не знаю испанского, я просто позволил Google перевести его.

Вот список стандартных действий, происходящих в правильном порядке, на которые вы, возможно, захотите взглянуть:

  • Действие InstallInitialize
  • ProcessComponents Action
  • Действие InstallFiles
  • Действие CreateShortcuts
  • Действие WriteRegistryValues ​​
  • Действие RegisterUser
  • РегистрацияПродукт действия
  • Действие PublishFeatures
  • Действие «Опубликовать продукт»
  • InstallFinalize Action

Мои знания основаны на книге со следующим ISBN: 978-1782160427

1 голос
/ 13 мая 2011

Вы ссылаетесь на строки прогресса в вашей настройке?

WiX не включает их по умолчанию, поэтому вам необходимо убедиться, что вы вручную ссылаетесь на них следующим образом:

<UIRef Id="WixUI_ErrorProgressText" />

Затем, если вы включите французский язык в свои настройки (fr-FR), будут включены локализованные строки.

...