Skip to content
⌘ NSIS Forum Archive

very simple doubt with langstring

2 posts

javicii#

very simple doubt with langstring

Hi! i am very new in NSIS and i need to have a two differents eula files for two differents languages, spanish and english. I have this:

LicenseLangString FileName ${LANG_SPANISH} "EULA_SPA.txt"
LicenseLangString FileName ${LANG_ENGLISH} "EULA_ENG.txt"

!insertmacro MUI_PAGE_LICENSE $(FileName)

When i execute this, it work, but there is not eula text in the installation, is empty and in NSIS i can see this:


2 warnings:
LicenseLangString "ArchivoLicencia" set multiple times for 1033, wasting space (C:\Users\jguinea\Desktop\Instalador AULA\Aula.nsi:75)
LangString "ArchivoLicencia" is not set in language table of language Spanish

How have i do this??? thanks!!! and sorry for my bad english!
Anders#
The ${LANG_SPANISH} define is not valid until after !insertmacro MUI_LANGUAGE "Spanish" so just move the LicenseLangString instructions down in your .nsi:

!include MUI2.nsh
!define MUI_LANGDLL_ALWAYSSHOW
!insertmacro MUI_PAGE_LICENSE $(licensecontent)
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "English"
LicenseLangString licensecontent ${LANG_SPANISH} "${NSISDIR}\COPYING"
LicenseLangString licensecontent ${LANG_ENGLISH} "${NSISDIR}\nsisconf.nsh"
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
Section
SectionEnd 
I changed the way NSIS 3 parses this parameter so the next release will issue a warning when you get the order wrong.