Секция [Languages]

Inno Setup поддерживает многоязычную установку. Секция [Languages] определяет языки, доступные программе установки.

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

  1. Выполняется поиск языка, указанного в директиве LanguageID (обычно в секции [LangOptions] языкового файла .isl), который совпадает с идентификаторами основного и дополнительного языка пользовательского интерфейса текущего пользователя или локали (зависит от значения в директиве LanguageDetectionMethod).
  2. Если совпадений не найдено, выполняется поиск совпадений только с идентификатором основного языка. Если два и более доступных языков имеют один и тот же идентификатор основного языка, то выбирается язык, который в секции [Languages] указан первым.
    Исключение: для языка Simplified Chinese этот этап пропускается, если текущим языком пользовательского интерфейса или локали является язык Traditional Chinese и наоборот (зависит от значения в параметре LanguageDetectionMethod).
  3. Если ничего не найдено, по умолчанию принимается язык, который в секции [Languages] указан первым.

Если директива ShowLanguageDialog в секции [Setup] имеет значение yes (используется по умолчанию), будет показан диалог "Выбор языка", в котором пользователь сможет переопределить язык программы установки. Для получения дополнительной информации обратитесь к разделу справки "Секция [LangOptions]".

Ниже приведен пример секции [Languages], в котором указываются два языка: Английский (English), базирующийся на файле Default.isl, и Нидерландский (Dutch), базирующийся на переводе третьих лиц.

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
Name  (обязательный)

Внутреннее имя языка, которое может быть каким угодно. Это имя можно использовать в качестве приставки для параметров секции [LangOptions] или [Messages], чтобы связать эти параметры с конкретным языком. Константа {language} возвращает внутреннее имя выбранного языка.

Пример:
Name: "en"
MessagesFile  (обязательный)

Определяет имя (имена) файла(-ов) .isl для чтения сообщений по умолчанию. При сборке инсталлятора эти файлы должны находиться в исходном каталоге сценария, в противном случае к этим файлам следует указать полный путь или путь с приставкой "compiler:", тогда компилятор будет искать их в собственном каталоге.

Каждый файл сообщений должен содержать секцию [LangOptions], секцию [Messages] и секцию [CustomMessages].

Если задано несколько файлов, то они считываются по порядку, сверху вниз, причём последний файл переопределяет языковые параметры или сообщения всех предыдущих файлов. Любые языковые параметры или сообщения в основном сценарии переопределяют параметры из файлов сообщений.

Если используется файл Unicode, он должен быть в кодировке UTF-8.

Примеры:
MessagesFile: "compiler:Dutch.isl"
MessagesFile: "compiler:Default.isl,compiler:MyMessages.isl"
LicenseFile

Определяет файл лицензионного соглашения в формате .txt или .rtf (текст с разметкой), который будет показан перед выбором папки установки приложения. При сборке инсталлятора файл документа должен находиться исходном каталоге сценария, в противном случае к этому файлу необходимо указать полный путь или путь с приставкой "compiler:", тогда компилятор будет искать его в собственном каталоге.

Если используется Unicode файл .txt, он должен быть в кодировке UTF-8 (с маркером BOM или без него) или UTF-16LE.

Пример:
LicenseFile: "license-Dutch.txt"
InfoBeforeFile

Определяет файл дополнительного документа "readme" в формате .txt или .rtf (текст с разметкой), который будет показан перед выбором папки установки приложения. При сборке инсталлятора файл документа должен находиться исходном каталоге сценария, в противном случае к этому файлу необходимо указать полный путь или путь с приставкой "compiler:", тогда компилятор будет искать его в собственном каталоге.

Если используется Unicode файл .txt, он должен быть в кодировке UTF-8 (с маркером BOM или без него) или UTF-16LE.

Пример:
InfoBeforeFile: "infobefore-Dutch.txt"
InfoAfterFile

Определяет файл дополнительного документа "readme" в формате .txt или .rtf (текст с разметкой), который будет показан в случае успешной установки. При сборке инсталлятора файл документа должен находиться исходном каталоге сценария, в противном случае необходимо указать полный путь к файлу или путь с приставкой "compiler:", тогда компилятор будет искать его в собственном каталоге.

Эта директива отличается от файлов с флагом isreadme тем, что текст документа отображается на странице мастера, а не в Блокноте Windows.

Если используется Unicode файл .txt, он должен быть в кодировке UTF-8 (с маркером BOM или без него) или UTF-16LE.

Пример:
InfoAfterFile: "infoafter-Dutch.txt"