wiki:LocaliseSetup

Version 4 (modified by Sagrer, 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" - что позволяет задать специфические текстовые файлы для каждого языка.

Что касается переводов текста для особых компонентов - обновлений - то необходимо чтобы в iss была константа с именем "UpdateFromVersion?" и с содержимым вроде "Обновление с версии %1" - она будет использоваться для генерации названий компонентов вроде "Обновление с версии 0.1.0.124".

Компоненты для языковых модулей будут добавляться в iss автоматически, тексты их названий также будут вноситься IssBuilder-ом автоматически.