Version 2 (modified by 16 years ago) (diff) | ,
---|
О локализации инсталляторов
Локализация инсталляторов, по-сути, выполняется без участия набора утилит. Разные варианты для одних и тех же сообщений, но для разных языков могут быть заданы через секцию CustomMessages в iss-файлах:
Пример:
[CustomMessages] ru.InstVerFound=Обнаружена уже установленная версия. Чтобы установить данную версию - надо деинсталлировать уже установленную. Деинсталлятор обнаружен. Запустить деинсталлятор? en.InstVerFound=Installed version found. If you want to install this version - you must uninstall an installed version. Uninstaller is detected. Launch uninstaller? ru.PackageVersionInstalled=Версия, содержащаяся в данном пакете (%1) судя по всему уже установлена. Если вы продолжите установку - то по-видимому потребуется деинсталлировать уже установленную версию. Продолжить установку? en.PackageVersionInstalled=Version from this package (%1) is already installed. You must uninstall installed version, if you will continue. Continue installing? ru.StandardInstall=Обыкновенная установка en.StandardInstall=Standard install
По-сути эти сообщения представляют из себя константы вида {cm:ИМЯ_КОНСТАНТЫ}
В коде паскалевского скрипта сообщение может быть получено таким образом:
ExpandConstant('{cm:InstVerFound}')
или:
ExpandConstant('{cm:PackageVersionInstalled,'+AppVer+'}')
Во втором случае - сообщение имеет параметр %1, который вносится в текст параметром в тексте внутри фигурных скобок.
В остальных местах скрипта константы могут быть получены обычным способом:
[Types] Name: StandardInstall; Description: {cm:StandardInstall}; Languages:
Следует иметь в виду, что должны быть определены языки:
[Languages] Name: ru; MessagesFile: compiler:Languages\Russian.isl Name: en; MessagesFile: compiler:Default.isl
Причем это минимальное объявление языков, в идеале там же должны быть элементы "LicenseFile?", "InfoBeforeFile?", "InfoAfterFile?".