Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для Alex S

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


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

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


Мужики, добрый день. Снова возник вопрос с диалогом выбора папки назаначения. Возможно ли в зависимости от языка инсталлятора(русский-английский) сменить текст кнопок "отмена" и "создать папку" на текст соответствующего языка?

Скрин для ясности вопроса
Если можно, на базе этого скрипта...

!define PRODUCT_NAME "MyProg"
!define PRODUCT_VERSION "1.0"

!include "MUI2.nsh"
!include "nsDialogs.nsh"

Var BrowsePage
Var BrowsePage_DirRequest1_Txt
Var BrowsePage_DirRequest1_Btn
Var BrowsePage_DirRequest2_Txt
Var BrowsePage_DirRequest2_Btn

Page custom BrowsePage1

!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "English"

LangString BrowseButtonCaption ${LANG_RUSSIAN} "Обзор..."
LangString BrowseButtonCaption ${LANG_ENGLISH} "Browse..."
LangString CUSTPAGE_TITLE ${LANG_RUSSIAN} "Текст на русском"
LangString CUSTPAGE_TITLE ${LANG_ENGLISH} "Tekst na angliyskom"
LangString CUSTPAGE_SUBTITLE ${LANG_RUSSIAN} "СубТекст на русском"
LangString CUSTPAGE_SUBTITLE ${LANG_ENGLISH} "SubTekst na angliyskom"
LangString BrowseDialogLabel ${LANG_RUSSIAN} "Текст на русском"
LangString BrowseDialogLabel ${LANG_ENGLISH} "Tekst na angliyskom"

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "setup.exe"

Function .OnInit
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd

Function BrowsePage1
nsDialogs::Create 1018
Pop $BrowsePage
${If} $BrowsePage == error
Abort
${EndIf}
${If} $LANGUAGE = ${LANG_RUSSIAN}
!insertmacro MUI_HEADER_TEXT $(CUSTPAGE_TITLE) $(CUSTPAGE_SUBTITLE)
${Else}
!insertmacro MUI_HEADER_TEXT $(CUSTPAGE_TITLE) $(CUSTPAGE_SUBTITLE)
${EndIf}
; === DirRequest1_Txt (type: Text) ===
${NSD_CreateText} 7.9u 17.23u 226.43u 12.31u "$SMPROGRAMS\${PRODUCT_NAME}"
Pop $BrowsePage_DirRequest1_Txt

; === DirRequest1_Btn (type: Button) ===
${NSD_CreateButton} 235.65u 17.23u 52.66u 12.31u "$(BrowseButtonCaption)"
Pop $BrowsePage_DirRequest1_Btn
${NSD_OnClick} $BrowsePage_DirRequest1_Btn BrowsePage_DirRequest1_Click

; === DirRequest2_Txt (type: Text) ===
${NSD_CreateText} 7.9u 46.77u 226.43u 12.31u "$SMPROGRAMS\${PRODUCT_NAME}"
Pop $BrowsePage_DirRequest2_Txt

; === DirRequest2_Btn (type: Button) ===
${NSD_CreateButton} 235.65u 46.77u 52.66u 12.31u "$(BrowseButtonCaption)"
Pop $BrowsePage_DirRequest2_Btn
${NSD_OnClick} $BrowsePage_DirRequest2_Btn BrowsePage_DirRequest2_Click

nsDialogs::Show
FunctionEnd


Function BrowsePage_DirRequest1_Click
Pop $R0
${If} $R0 == $BrowsePage_DirRequest1_Btn
${NSD_GetText} $BrowsePage_DirRequest1_Txt $R0
nsDialogs::SelectFolderDialog /NOUNLOAD "" "$R0"
Pop $R0
${If} "$R0" != "error"
${NSD_SetText} $BrowsePage_DirRequest1_Txt "$R0"
${EndIf}
${EndIf}
FunctionEnd

Function BrowsePage_DirRequest2_Click
System::Call 'SHELL32::SHGetSpecialFolderLocation(i0,i0x2,*i.r2)i.r0'
System::Call '*(i$hwndparent,i$2,i,t "$(BrowseDialogLabel)",i0x470,kr3,i0,i0)i.r1'
System::Call 'SHELL32::SHBrowseForFolder(ir1)i.r0'
System::Call 'OLE32::CoTaskMemFree(ir2)'
System::Free $1
${If} $0 <> 0
System::Call 'SHELL32::SHGetPathFromIDList(i$0,t "" R9)'
${NSD_SetText} $BrowsePage_DirRequest2_Txt= $R9
${EndIf}
System::Call 'OLE32::CoTaskMemFree(ir0)'
FunctionEnd

Section ""
SectionEnd

Отправлено: 16:41, 05-02-2018 | #2189