Многоязычная проблема лицензионного соглашения Wix Toolset
Я создал файл license.rtf на нескольких языках, и когда я пытаюсь собрать свой проект wix, он показывает мне эту ошибку:
Была предоставлена строка с символами, которые недоступны в указанной кодовой странице базы данных "1252". Либо измените эти символы на символы, существующие в кодовой странице базы данных, либо обновите кодовую страницу базы данных, изменив один из следующих атрибутов: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage или WixLocalization. /@Codepage.
Я пытался добавить этот атрибут Codepage="1256" в теге продукта, он по-прежнему показывает ту же ошибку.
Не могли бы вы помочь мне решить эту проблему?
1 ответ
Это звучало довольно загадочно. Быстрый поиск нашел этот существующий вопрос: строка Wix с символами не доступна в кодовой странице базы данных, хотя кодовая страница установлена.
Кажется, для сводного потока MSI существует отдельная настройка кодовой страницы - свойство Codepage Summary - которая отличается от основной настройки кодовой страницы пакета.
Я заметил настройку кодовой страницы, называемую " SI Codepage " при тестировании с InstEd (см. Вниз страницу). Я не вижу этого свойства сводной кодовой страницы в Orca. Возможно, это там, и я просто не вижу этого.
Может быть, вы неправильно настраиваете эту кодовую страницу потока сводной информации, хотя вы установили основную кодовую страницу пакета?
- Похоже, кодовая страница потока сводной информации установлена в
Package element
и не переопределяется автоматически вwxl
файл локализации. Это, вероятно, ошибка WiX. - Я сделал ручное переопределение в фрагментах ниже (
SummaryCodepage="!(loc.SummaryCodepage)"
- получение значения из файла локализации через локализованную строку. По сути, вы делаете работу самостоятельно, и это должно работать без исправления ошибок от ребят из WiX для того, что вам нужно. Надеюсь - новый релиз WiX тяжелый материал).
- Похоже, кодовая страница потока сводной информации установлена в
Я также вынул
CodePage attribute
дляProduct element
в основномwxs
исходный файл, чтобы попытаться разрешить настройку изwxl
файл локализации вступит в силу. Смотрите последнюю ссылку в списке записей базы данных ошибок WiX внизу.Я чувствую, что " здесь будет больше драконов ". С локализацией очень странно иметь дело. Как это будет вести себя на правильной японской машине? Я хотел бы знать, пожалуйста, сделайте тест.
Я набросал быстрый макет, но у меня нет времени, чтобы проверить правильно. Может быть, есть быстрый тест:
<Product Id="*" Name="!(loc.ApplicationName)" Language="!(loc.LanguageLcid)" Version="1.0.0"
Manufacturer="!(loc.ManufacturerName)" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"
Languages="!(loc.LanguageLcid)" SummaryCodepage="!(loc.SummaryCodepage)" />
А вот файл японской локализации (я понятия не имею, что означают эти японские символы, я просто скопировал и вставил что-то, чтобы закончить тестирование - ОБНОВЛЕНИЕ: ОК, Google Translate для спасения! Не найден оскорбительный язык!):
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ja-JP" Codepage="932" Language="1041"
xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="SummaryCodepage">932</String>
<String Id="LanguageLcid">1041</String>
<String Id="ApplicationName">各務原市農地支援・畑地管理システムインストーラー</String>
<String Id="ManufacturerName">(株)テイコク</String>
</WixLocalization>
Я поместил несколько японских символов в одно лицензионное соглашение RTF, которое я также добавил туда (я не настроил правильное локализованное включение различных файлов RTF). Интерфейс установки выглядит нормально - он отображается на японском языке, а японские символы отображаются в лицензионном соглашении.
Пожалуйста, попробуйте и посмотрите, исчезнет ли ваша проблема. Если нет, возможно, потратьте некоторое время на запросы к базе данных ошибок WiX.
WiX bug-tracker возле хитов: