Интересным решением можно предложить вывод дополнительного меню выбора для пользователя в начале установки. Пользователю будет выведен список, в котором он отмечает файлы, которые он хочет установить. Установщик обрабатывает данный выбор и устанавливает файлы в зависимости от выбранных компонентов.
Общий синтаксис написания такого условия:
Вводим условия для сравнения, а также подготавливаем список, который будет выведен пользователю:
!({"некоторое условие1"},{"некоторое условие2"},....,{"некоторое условиеN"})
IF (условие1)
Описание действия для установщика
ENDIF
IF (условие2)
Описание действия для установщика
ENDIF
....
IF (условиеN)
Описание действия для установщика
ENDIF
1. Меню выбора языка установки.
Бывают случаи, когда язык ОС смартфона может не соответствовать языку приложения, который бы хотел использовать пользователь. Поэтому интересным решением будет сделать вывод меню выбора языка приложения, в котором пользователь сам выбирает, какой язык в приложении ему предпочтительней.
Рассмотрим на примере:
Разбрем подробнее код:
Вписываем в условие языки, которые будут выведены пользователю ввиде списка в дополнительном меню в начале установки:
!({"English"},{"French"},{"German"},{"Russian"})
Если пользователь отметил в меню выбора языка English:
IF (Option1)
То выводим текстовую информацию на английском языке об устанавливаемом приложение с опцией Продолжить установку. Затем последует установка файла английской локализации и файла справки на английском языке.
"D:\Text01.txt"-"", FT, TC
"D:\Resource\Apps\ACM0x20000131.R01"-"!:\Resource\Apps\ACM0x20000131.R01", FF
"D:\Resource\Help\ACMHelp0x20000131.h01"-"!:\Resource\Help\ACMHelp0x20000131.h01", FF
Конец обработки условия English
ENDIF
Если пользователь отметил в меню выбора языка French:
IF (Option2)
То выводим текстовую информацию на французском языке об устанавливаемом приложение с опцией Продолжить установку. Затем последует установка файла французской локализации и файла справки на французском языке.
"D:\Text02.txt"-"", FT, TC
"D:\Resource\Apps\ACM0x20000131.R02"-"!:\Resource\Apps\ACM0x20000131.R02", FF
"D:\Resource\Help\ACMHelp0x20000131.h02"-"!:\Resource\Help\ACMHelp0x20000131.h02", FF
Конец обработки условия French
ENDIF
Если пользователь отметил в меню выбора языка German:
IF (Option3)
То выводим текстовую информацию на немецком языке об устанавливаемом приложение с опцией Продолжить установку. Затем последует установка файла немецкой локализации и файла справки на немецком языке.
"D:\Text03.txt"-"", FT, TC
"D:\Resource\Apps\ACM0x20000131.R03"-"!:\Resource\Apps\ACM0x20000131.R03", FF
"D:\Resource\Help\ACMHelp0x20000131.h03"-"!:\Resource\Help\ACMHelp0x20000131.h03", FF
Конец обработки условия German
ENDIF
Если пользователь отметил в меню выбора языка Russian:
IF (Option4)
То выводим текстовую информацию на русском языке об устанавливаемом приложение с опцией Продолжить установку. Затем последует установка файла русской локализации и файла справки на русском языке.
"D:\Text16.txt"-"", FT, TC
"D:\Resource\Apps\ACM0x20000131.R16"-"!:\Resource\Apps\ACM0x20000131.R16", FF
"D:\Resource\Help\ACMHelp0x20000131.h16"-"!:\Resource\Help\ACMHelp0x20000131.h16", FF
Конец обработки условия Russian
ENDIF
Думаю, что в рамках данной статьи вы получили основные, базовые сведения о том, как строится PKG файл, а также узнали, каким образом Вы можете оригинально дополнить или создать свою собственную сборку.
В завершении, приведу пример готовой сборки приложения с краткими пояснениями.
Краткое пояснение, что выполняет данный установщик:
Вводим поддержку двух языков: английский и русский:
; Languages
&EN, RU
Задаем условия для списка выбора, что будет предложен пользователю при установке. Выбор языка установки (обратите внимание, что в данном случае каждое условие дважды дублируется, т.к. у нас введена поддержка двух языковых пакетов в Languages):
!({"English","English"},{"Russian","Russian"})
На данном шаге проверяется, какой язык ОС установлен основным у пользователя в смартфоне. В случае, если язык ОС русский, то будет выведена текстовая информация на русской языке:
IF (Language=0x00000010)
"D:\Text16.txt"-"", FT, TA
В случае, если язык ОС не русский, а любой другой, то будет выведена текстовая информация на английском языке:
ELSE
"D:\Text01.txt"-"", FT, TA
ENDIF
Проверка на принадлежность к платформе. В случае, если телефон с Symbian OS9.2, то устанавливается исполняемый файл, отвечающий за корректную работы приложения на данной ОС:
IF (EXISTS("z:\system\install\Series60v3.1.sis"))
"D:\sys\bin\app.exe"-"!:\sys\bin\app.exe", FF
Во всех остальных случаях устанавливается исполняемый файл, отвечающий за корректную работы приложения:
ELSE
"D:\sys\bin\app.exe"-"!:\sys\bin\app.exe", FF
ENDIF
Проверка выбора языка приложения пользователем на этапе установки. Если выбран язык English, то будет выведен текстовый файл на английском языке с информацией автора с опцией Продолжить установку и затем установлен файл английской локализации.
IF (Option1)
"D:\Text001.txt"-"", FT, TC
"D:\resource\apps\app.r01"-"!:\resource\apps\app.r01", FF
ENDIF
Проверка выбора языка приложения пользователем на этапе установки. Если выбран язык Russian, то будет выведен текстовый файл на русском языке с информацией автора с опцией Продолжить установку и затем установлен файл русской локализации.
IF (Option2)
"D:\Text016.txt"-"", FT, TC
"D:\resource\apps\app.r16"-"!:\resource\apps\app.r16", FF
ENDIF
В рамках этой статьи мы разобрали базовые сведения о PKG файлах, ознакомились на примерах, как можно вносить изменения в них, как пользоваться условиями в скрипте.
В заключении, прикладываю архив, в котором находятся несколько шпаргалок с кодами языковых пакетов, UID платформ и моделей телефонов Nokia.
Читать полностью:https://allnokia.ru/kcenter/view-89.htm