Цитата
AlekseyPopovv:
Мне нужно что бы при запуске программы вылазило окошко с выбором языка интерфейса
.: NSIS - все вопросы :. часть 2.
Пишите сразу, что у вас уже есть в коде, чего нет, чтобы у вас не переспрашивали и не писали лишнюю инфу
Для начала нужно подключить нужные вам языки командами с указанием языков, например для русского и для английского:
Код:
Код: Выделить всё
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "English"
Затем, в функции
.onInit вам необходимо прописать следующую команду, чтобы пользователю был показан диалог выбора языка:
Код:
Цитата
AlekseyPopovv:
Какой язык пользователь выберет
.: NSIS - все вопросы :. часть 2.
ID выбранного языка (обратите внимание, ID, а не имя языка) хранится в переменной
$Language
Какой ID соответствует конкретному языку, можно посмотреть в файле языка по пути (пример файла русского языка):
Код:
Код: Выделить всё
\Program Files\NSIS\contrib\Language files\Russian.nlf
В начале файла увидите примерно такое содержимое:
Цитата:
# Header, don't edit
NLF v6
# Language ID
1049
# Font and size - dash (-) means default
-
-
Можно завести отдельную переменную и вручную назначить имя языка в зависимости от ID, пример:
Код:
Код: Выделить всё
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
MessageBox MB_OK|MB_ICONINFORMATION "Выбран язык (ID): $Language"
Var /global Lang
StrCmp $Language "1049" 0 +2
StrCpy $Lang "Russian"
StrCmp $Language "1033" 0 +2
StrCpy $Lang "English"
MessageBox MB_OK|MB_ICONINFORMATION "Выбран язык: $Lang"
quit
FunctionEnd
Полный код:
читать дальше »
Код:
Код: Выделить всё
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Моя программа"
!define PRODUCT_PUBLISHER "Моя компания, LLC."
; MUI 1.67 compatible ------
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "English"
; MUI end ------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "setup.exe"
InstallDir "$TEMP"
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
MessageBox MB_OK|MB_ICONINFORMATION "Выбран язык (ID): $Language"
Var /global Lang
StrCmp $Language "1049" 0 +2
StrCpy $Lang "Russian"
StrCmp $Language "1033" 0 +2
StrCpy $Lang "English"
MessageBox MB_OK|MB_ICONINFORMATION "Выбран язык: $Lang"
quit
FunctionEnd
Section "MainSection" SEC01
SectionEnd