* 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

@ -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