Misha v.3
26th March 2004 13:34 UTC
MUI + Languages + Override default text
i try use simple code:
!include "MUI.nsh"
>Name "LangTest"
>OutFile "LangTest.exe"
>LangString WELCOME_TEXT ${LANG_RUSSIAN} "RUSSIAN"
>LangString WELCOME_TEXT ${LANG_ENGLISH} "ENGLISH"
>!define MUI_WELCOMEPAGE_TEXT "$(WELCOME_TEXT)"
>!insertmacro MUI_PAGE_WELCOME
>!insertmacro MUI_LANGUAGE "English"
>!insertmacro MUI_LANGUAGE "Russian"
>Section ""
>SectionEnd
>Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
>
and when i select 'Russian' there are no any text on welcome page.
i try search in forum and find that i must use !insertmacro MUI_LANGUAGE "English" before use ${LANG_RUSSIAN}. but if i move !insertmacro MUI_LANGUAGE "English" on top i get many errors.
also i find information about using
!insertmacro MUI_LANGUAGEFILE_STRING MUI_WELCOMEPAGE_TEXT "..." instead of !define MUI_WELCOMEPAGE_TEXT but in my versions MUI (i try 1.69 and 1.70) this macro is undefied.
i don't want edit languages files and system.nsh because i need override only some string.
where is my mistake?
P.S. i read faq/doc and i try search answers this forum.
P.P.S. changing texts in Sections work fine.
Joost Verburg
26th March 2004 14:32 UTC
Move:
LangString WELCOME_TEXT ${LANG_RUSSIAN} "RUSSIAN"
LangString WELCOME_TEXT ${LANG_ENGLISH} "ENGLISH"
to the bottom.
Misha v.3
26th March 2004 15:29 UTC
incredable. it's work. i can't understand: definition WELCOME_TEXT after use... %-)
Joost Verburg
26th March 2004 17:09 UTC
Language string names are always unique, the place of the definition doesn't make any difference.
It should be below the language macro in this case because ${LANG_ENGLISH}, the Enlish language ID (1033) is set when the language file is loaded.
Dj Nyx
31st March 2004 08:24 UTC
i have a little prob...
i tried this first with Misha v.3s code, and it worked...
but i'm not able to get it started in mine
defines
!define PRODUCT_NAME "ITS Client"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "bit media"
!define PRODUCT_WEB_SITE "http://www.bitmedia.cc"
>;--------------------------------
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\monki-modern_theme\Icon.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\monki-modern_theme\Icon_Un.ico"
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\monki-modern_theme\Header.bmp"
!define MUI_HEADERIMAGE_UNBITMAP "${NSISDIR}\Contrib\Graphics\monki-modern_theme\Header_Un.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\monki-modern_theme\Modern_lessorange.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\monki-modern_theme\Modern_Un_lessorange.bmp"
!define LVM_GETITEMCOUNT 0x1004
!define LVM_GETITEMTEXT 0x102D
>;--------------------------------
; include
;!include "MUI.nsh"
!include "${NSISDIR}\Include\MUI.nsh"
!include "${NSISDIR}\Include\bit_functions.nsh"
!include "${NSISDIR}\Include\iptest.nsh"
!include ITSClient.nsh
>;--------------------------------
; global variables
>Var UpdateDir
# if KindOfInst == 0; Normal Installation
# if KindOfInst == 1; Update
>Var KindofInst
>Var Ip
>;--------------------------------
;initialwerte setzen
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "ITSClientSetup.exe"
InstallDir "$PROGRAMFILES\ITS_Client"
>;--------------------------------
;NSIS Schalter setzen
ShowInstDetails hide
ShowUnInstDetails hide
>;--------------------------------
;Language Selection Dialog Settings
;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\Modern UI ITSClient"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
>;--------------------------------
;Installer Functions
>Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
!insertmacro wincheck
!insertmacro checkifupdate
FunctionEnd
>;--------------------------------
;welcome page
!insertmacro MUI_PAGE_WELCOME
>;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "German"
>;--------------------------------
;NSIS pages
!insertmacro MUI_PAGE_LICENSE "License.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_INSTFILES
Section"Hauptgruppe" SEC01
DetailPrint "---- Detail ----"
SetOverwrite ifnewer
Call IsDotNETInstalled
Pop $R3
StrCmp $R3 0+3
DetailPrint "Found .NET Framework!"
Goto +2
MessageBox MB_OKCANCEL "Can't find .NET, please install!"
${If} $KindofInst == 1
!insertmacro update
${Endif}
!insertmacro copyfiles
!insertmacro regdlls
!insertmacro writesettingsfile
${If} $KindofInst == 1
MessageBox MB_OK "kindofinst 1, settings.xml copied"
DetailPrint "from: $Updatedir backup\config\settings.xml"
!insertmacro FileCopy "$Updatedir backup\config\settings.xml" "$INSTDIR\config"
${Endif}
ExecWait '"$INSTDIR\confEdit\confedit.exe" /file:..\config\settings.xml /conf:..\config\config.xml /d a,c'
Push "$INSTDIR\Logfile_ITSClient.txt"
Call DumpLog
SectionEnd
>;--------------------------------
>Section -AdditionalIcons
SectionEnd
>;--------------------------------
>Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
>SectionEnd
>;--------------------------------
Function .onInstSuccess
RMDir/r "$Updatedir backup"
>FunctionEnd
>;--------------------------------
Functionun.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION
|MB_OK "$(^Name) wurde erfolgreich deinstalliert."
>FunctionEnd
>;--------------------------------
Functionun.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie $(^Name) und alle seinen Komponenten deinstallieren?" IDYES +2
Abort
FunctionEnd
>;--------------------------------
>Section Uninstall
RMDir/r "$INSTDIR"
RMDir /r "$SMPROGRAMS\ITS Client"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Run\RunCL"
SetAutoClose true
SectionEnd
>;--------------------------------
;Langstrings
LangString WELCOME_TEXT${LANG_GERMAN} "GERMAN"
>LangString WELCOME_TEXT ${LANG_ITALIAN} "ITALIAN"
>LangString WELCOME_TEXT ${LANG_ENGLISH} "ENGLISH"
Joost Verburg
31st March 2004 09:39 UTC
There should be a MUI_WELCOMEPAGE_TEXT setting.
Dj Nyx
31st March 2004 09:50 UTC
no i don't get the box in which i can choose between the languages
Joost Verburg
31st March 2004 10:05 UTC
There is a probably already a language setting in the registry, you didn't define MUI_LANGDLL_ALWAYSSHOW.
Dj Nyx
31st March 2004 11:12 UTC
oh i found the problem...
.onInit have to be on the bottom of the document.
at least after the welcome pages, i haven't tried...
but thx for the quickie info