* New LangFile.nsh macro LANGFILE_INCLUDE_WITHDEFAULT to load language file with defaults being obtained from a default file. This replaces the LANGFILE_DEFAULT setting and makes it easier to use LangFile.nsh for multiple sets of languages file without having to care about the different LANGFILE_DEFAULT settings.

* Allow LangFile.nsh to be included multiple times.

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5577 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
joostverburg 2008-03-29 15:35:08 +00:00
parent 0d820475ae
commit f655226380
3 changed files with 48 additions and 42 deletions

View file

@ -37,21 +37,8 @@ Localization
LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nlf"
;Set default language file for MUI and backup user setting
!ifdef LANGFILE_DEFAULT
!define MUI_LANGFILE_DEFAULT_TEMP "${LANGFILE_DEFAULT}"
!undef LANGFILE_DEFAULT
!endif
!define LANGFILE_DEFAULT "${NSISDIR}\Contrib\Language files\English.nsh"
;Include language file
!insertmacro LANGFILE_INCLUDE "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nsh"
;Restore user setting for default language file
!undef LANGFILE_DEFAULT
!ifdef MUI_LANGFILE_DEFAULT_TEMP
!define LANGFILE_DEFAULT "${MUI_LANGFILE_DEFAULT}"
!endif
!insertmacro LANGFILE_INCLUDE_WITHDEFAULT "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nsh" "${NSISDIR}\Contrib\Language files\English.nsh"
;Add language to list of languages for selection dialog
!ifndef MUI_LANGDLL_LANGUAGES

View file

@ -2077,21 +2077,8 @@ Var MUI_TEMP2
LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nlf"
;Set default language file for MUI and backup user setting
!ifdef LANGFILE_DEFAULT
!define MUI_LANGFILE_DEFAULT_TEMP "${LANGFILE_DEFAULT}"
!undef LANGFILE_DEFAULT
!endif
!define LANGFILE_DEFAULT "${NSISDIR}\Contrib\Language files\English.nsh"
;Include language file
!insertmacro LANGFILE_INCLUDE "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nsh"
;Restore user setting for default language file
!undef LANGFILE_DEFAULT
!ifdef MUI_LANGFILE_DEFAULT_TEMP
!define LANGFILE_DEFAULT "${MUI_LANGFILE_DEFAULT}"
!endif
!insertmacro LANGFILE_INCLUDE_WITHDEFAULT "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nsh" "${NSISDIR}\Contrib\Language files\English.nsh"
;Add language to list of languages for selection dialog
!ifndef MUI_LANGDLL_LANGUAGES

View file

@ -2,16 +2,32 @@
LangFile.nsh
Header file to create langauge file that can be
Header file to create langauge files that can be
included with a single command.
When LANGFILE_DEFAULT is set, missing strings will
automatically be loaded from a default file.
Copyright Š 2008 Joost Verburg
* Either LANGFILE_INCLUDE or LANGFILE_INCLUDE_WITHDEFAULT
can be called from the script to include a language
file.
- LANGFILE_INCLUDE takes the language file name as parameter.
- LANGFILE_INCLUDE_WITHDEFAULT takes as additional second
parameter the default language file to load missing strings
from.
* A language file start with:
!insertmacro LANGFILE_EXT "English"
using the same name as the standard NSIS language file.
* Language strings in the language file have the format:
${LangFileString} LANGSTRING_NAME "Text"
*/
!ifndef LANGFILE_INCLUDED
!define LANGFILE_INCLUDED
!macro LANGFILE_INCLUDE FILENAME
;Called from script: include a langauge file
@ -26,23 +42,37 @@ Copyright
!include "${FILENAME}"
!undef LANGFILE_SETNAMES
;Include default language for missing strings
!ifdef LANGFILE_DEFAULT
!include "${LANGFILE_DEFAULT}"
!endif
;Create language strings
!undef LangFileString
!define LangFileString "!insertmacro LANGFILE_LANGSTRING"
!include "${FILENAME}"
!ifdef LANGFILE_DEFAULT
!include "${LANGFILE_DEFAULT}"
!else
!include "${FILENAME}"
!macroend
!macro LANGFILE_INCLUDE_WITHDEFAULT FILENAME FILENAME_DEFAULT
;Called from script: include a langauge file
;Obtains missing strings from a default file
!ifdef LangFileString
!undef LangFileString
!endif
!define LangFileString "!insertmacro LANGFILE_SETSTRING"
!define LANGFILE_SETNAMES
!include "${FILENAME}"
!undef LANGFILE_SETNAMES
;Include default language for missing strings
!include "${FILENAME_DEFAULT}"
;Create language strings
!undef LangFileString
!define LangFileString "!insertmacro LANGFILE_LANGSTRING"
!include "${FILENAME_DEFAULT}"
!macroend
!macro LANGFILE IDNAME NAME
@ -99,3 +129,5 @@ Copyright
!undef "${NAME}"
!macroend
!endif