Hi all!
I just updated installer to 3.04 Unicode and it looks very good, thank you for the great job!
But I have one small issue. Installer I am talking about supports 7 languages. Localization strings are in a separate localization.dat file. Everything is fine until i commented out Dutch line in the .nsi installation script (while all localization strings still present in localization.dat file):
!insertmacro MUI_LANGUAGE English
!insertmacro MUI_LANGUAGE Italian
!insertmacro MUI_LANGUAGE German
!insertmacro MUI_LANGUAGE Russian
!insertmacro MUI_LANGUAGE Japanese
!insertmacro MUI_LANGUAGE SimpChinese
#!insertmacro MUI_LANGUAGE Dutch
After that some pages display a mess of Dutch and Chinese languages - see attached screenshot. I can resolve situation by removing Dutch lines from localization file, this work correct. But may be fixing that will be useful (if it's not in my brains 😉 ).
Thanks, Takhir
Disabled language creates confusion
4 posts
What is the format of localization.dat? Can you provide a example that reproduces the issue?
Thank you for the reply, Anders!
With a short test script I see what happened - NSIS 'understands' language ID only after it was added in '!insertmacro MUI_LANGUAGE'. Otherwise it replaces last added normal language string with a 'not valid' one. Simple trick is to put 'not valid' lang strings at the beginning of the list. Unfortunatelly I did not notice 'warning' in the CLI build output of this big project.
2 warnings:
7025: "${LANG_SIMPCHINESE}" is not a valid language id, using language id 1033! (C:\ws_70\nsis\lang_test.nsi:25)
6030: LangString "muiWelcome" set multiple times for 1033, wasting space (C:\ws_70\nsis\lang_test.nsi:25)
If this behaivior is a hardcoded, IMHO would be better to report this as error. For automated compilation this normally breaks build. Otherwise result may be unexpected...
I am attaching a simple test script.
On the attached screenshot you can see "Welcome' page of the installer with the only 'English' added in macro and 2 language strings (English and Chinese).
Thanks again,
Takhir
With a short test script I see what happened - NSIS 'understands' language ID only after it was added in '!insertmacro MUI_LANGUAGE'. Otherwise it replaces last added normal language string with a 'not valid' one. Simple trick is to put 'not valid' lang strings at the beginning of the list. Unfortunatelly I did not notice 'warning' in the CLI build output of this big project.
2 warnings:
7025: "${LANG_SIMPCHINESE}" is not a valid language id, using language id 1033! (C:\ws_70\nsis\lang_test.nsi:25)
6030: LangString "muiWelcome" set multiple times for 1033, wasting space (C:\ws_70\nsis\lang_test.nsi:25)
If this behaivior is a hardcoded, IMHO would be better to report this as error. For automated compilation this normally breaks build. Otherwise result may be unexpected...
I am attaching a simple test script.
On the attached screenshot you can see "Welcome' page of the installer with the only 'English' added in macro and 2 language strings (English and Chinese).
Thanks again,
Takhir
You can turn all warnings into errors with "!pragma warning error all" or a specific warning with "!pragma warning error 7025".