Настройте CancelDlgIcon для отображения символа предупреждения - PullRequest
0 голосов
/ 23 февраля 2012

Мне нужно показать предупреждающее изображение вместо информационного изображения для CancelDlg в wix. Я смог сделать это, добавив следующий код:

<String Id="CancelDlgIcon" Overridable="yes" Localizable="yes">WixUI_Ico_Exclam<String>

Однако у меня есть сборки для разных языков, например. FR-FR, JA-JP, EN-US и т. д.

Только для en-us работает нормально. Для других языков значок предупреждения не отображается: (

Может кто-нибудь помочь мне и сообщить, какие изменения нужно внести, чтобы он работал для всех языков (es-es, en-us, fr-fr, ja-jp и т. Д.)?

1 Ответ

1 голос
/ 24 февраля 2012

Вы должны создать элемент <String/> для каждой локализуемой строки в каждом файле *.wxl и указать соответствующее значение элемента (WixUI_Ico_Exclam в вашем случае). Кроме того, вы можете иметь разные изображения для разных языков, но это будет выглядеть странно.

В качестве альтернативы (и этот вариант лучше для этого случая, ИМХО) вы можете положиться на культурные группы, которые по сути являются резервным механизмом для переводов. Вы можете указать несколько *.wxl файлов, которые будут встроены в один пакет MSI, и, если фраза не найдена в первом файле в строке, она попытается найти ее во втором, и так далее. Таким образом, для «логически непереводимых» токенов, таких как WixUI_Ico_Exclam, вы можете иметь его один раз в en.wxl и предоставить en в качестве запасной культуры для light.exe.

Подробнее см. В разделе «Указание культур для построения» в WiX.chm.

...