Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Пользователь


Сообщения: 126
Благодарности: 7

Профиль | Отправить PM | Цитировать


Привет народ,

alexfinik,
Цитата:
MaGoth, да, пример был бы очень неплох. У меня многомодульный инсталлятор, поэтому наверное, лучше пример от тебя - и тебе легче, чтобы не копаться с моим кодом, и мне, наверное. »
Отсутствовал некоторое время, потому не помню и не в курсе, проблема решена уже и нужен ли еще файл?

Цитата:
Друзья, может всё-таки кто-то знает почему данный код может не работать? »
Скорее проблема у тебя на стороне, у меня скрипт прекрасно скомпилился и все отображается как надо (NSIS-2.46.5 UNICODE).


AlekseyPopovv,
Цитата:
Как привязать реестр к выбору языка? »
У себя скриптах на юникоде, я делаю примерно так:
читать дальше »
Код: Выделить весь код
...
InstallDir "$PROGRAMFILES\"
!define PROG_UNINST_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PROG_NAME_TEXT}"
!define PROG_UNINST_ROOT_KEY "HKLM"
!define PROG_RKEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PROG_NAME_TEXT}"
InstallDirRegKey HKLM "${PROG_RKEY}" "InstallLocation"
AllowRootDirInstall true
...
Далее, после кастомных функций или команды RequestExecutionLevel admin, прописываем:
Код: Выделить весь код
!define MUI_LANGDLL_REGISTRY_ROOT "${PROG_UNINST_ROOT_KEY}" "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "${PROG_UNINST_KEY}" "Software\Modern UI Test"
!define MUI_LANGDLL_REGISTRY_VALUENAME "${PROG_NAME_FILE}: Language"
После строки кода !insertmacro MUI_PAGE_WELCOME прописываем:
Код: Выделить весь код
LicenseData $(mylicense)
!insertmacro MUI_PAGE_LICENSE $(mylicense)
Если лицензия будет нужна.
После строки кода !insertmacro MUI_UNPAGE_FINISH прописываем используемые языки, например:
Код: Выделить весь код
!insertmacro MUI_LANGUAGE "ENGLISH"
!insertmacro MUI_LANGUAGE "ROMANIAN"
!insertmacro MUI_LANGUAGE "GERMAN"
!insertmacro MUI_LANGUAGE "RUSSIAN"
!insertmacro MUI_LANGUAGE "ITALIAN"
!insertmacro MUI_LANGUAGE "CZECH"
!insertmacro MUI_LANGUAGE "POLISH"
!insertmacro MUI_LANGUAGE "SPANISH"
Здесь же, указываем расположение файлов на разных языках и в разных папках, если требуется:
Код: Выделить весь код
LicenseLangString mylicense ${LANG_ENGLISH} ".\licens\en\licence.rtf"
LicenseLangString mylicense ${LANG_ROMANIAN} ".\licens\ro\licence.rtf"
LicenseLangString mylicense ${LANG_GERMAN} ".\licens\de\licence.rtf"
LicenseLangString mylicense ${LANG_RUSSIAN} ".\licens\ru\licence.rtf"
LicenseLangString mylicense ${LANG_ITALIAN} ".\licens\it\licence.rtf"
LicenseLangString mylicense ${LANG_CZECH} ".\licens\cz\licence.rtf"
LicenseLangString mylicense ${LANG_POLISH} ".\licens\pl\licence.rtf"
LicenseLangString mylicense ${LANG_SPANISH} ".\licens\es\licence.rtf"
Либо все файлы в одной папке:
Код: Выделить весь код
LicenseLangString mylicense ${LANG_ENGLISH} ".\licens\licence_en.rtf"
При этом, изменяем название файлов соответственно: licence_en.rtf, licence_ro.rtf и т.д.
И прописываем эту строку для каждого языка отдельно, все аналогично как и в примере выше.

И следом, прописываем:
!insertmacro MUI_RESERVEFILE_LANGDLL
Затем, по всему вашему коду, все тексты созданные вами и отображаемые программой для юзера, нужно оформить примерно по такой схеме:
Код: Выделить весь код
LangString TextWelcomePage ${LANG_ENGLISH} "The Setup Wizard will guide you through the installation process of $(^Name).\r\n\r\nIt is strongly recommended to close all other applications before continuing the installation procedure.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_ROMANIAN} "Vei fi ghidat in procesul de instalare al $(^Name).\r\n\r\nEste recomandat sa inchideti celelalte aplicatii pornite inainte sa continuati instalarea.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_GERMAN} "Dieser Assistent führt Sie durch die Installation von $(^Name).\r\n\r\nEs wird empfohlen, vor der Installation alle anderen Programme zu schließen.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_RUSSIAN} "Этот мастер проведёт Вас через процесс инсталляции $(^Name).\r\n\r\nРекомендуется закрыть перед инсталляцией все другие программы.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_ITALIAN} "Il Setup Wizard ti guiderà attraverso il processo d'installazione di $(^Name).\r\n\r\nÈ fortemente raccomandato di chiudere tutte le altre applicazioni attive prima di proseguire con l'installazione.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_CZECH} "Setup Wizard vás provede procesem instalace $(^Name).\r\n\r\nJe silně doporučeno zavřít všechny ostatní aplikace, než budete pokračovat v instalaci.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_POLISH} "Kreator instalacji poprowadzi cię przez proces instalacji $(^Name).\r\n\r\nZdecydowanie zaleca się zamknięcie wszystkich innych aplikacji przed kontynuacją instalacji.\r\n\r\n$_CLICK"
LangString TextWelcomePage ${LANG_SPANISH} "El asistente de instalación le guiará a través del proceso de instalación de $(^Name).\r\n\r\nIt es muy recomendable cerrar todas las aplicaciones antes de continuar con el procedimiento de instalación.\r\n\r\n$_CLICK"
В конце кода, прописываем:
Код: Выделить весь код
в функцию .onInit 
  !insertmacro MUI_LANGDLL_DISPLAY

в функцию un.onInit
  !insertmacro MUI_UNGETLANGUAGE
При запуске инсталлера будет окошко с выбором языка, при деинсталле язык автоматом будет определяться, а все тексты в инсталлере при инсталляции/деинсталляции будут на указанном юзером языке.. Все.



Мои вопросы:
- обойден ли лимит в 2ГБ?
- исправлен ли косяк с иконкой и свойствами файла, при размере инсталлера больше ~350 МБ?


Спасибо.. ,)

Отправлено: 22:49, 04-08-2014 | #1251