/* LangFile.nsh Header file to create langauge files that can be included with a single command. 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 !ifdef LangFileString !undef LangFileString !endif !define LangFileString "!insertmacro LANGFILE_SETSTRING" !define LANGFILE_SETNAMES !include "${FILENAME}" !undef LANGFILE_SETNAMES ;Create language strings !undef LangFileString !define LangFileString "!insertmacro LANGFILE_LANGSTRING" !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 ;Start of standard NSIS language file !ifdef LANGFILE_SETNAMES !ifdef LANGFILE_IDNAME !undef LANGFILE_IDNAME !endif !define LANGFILE_IDNAME "${IDNAME}" !ifndef "LANGFILE_${IDNAME}_NAME" !define "LANGFILE_${IDNAME}_NAME" "${NAME}" !endif !endif !macroend !macro LANGFILE_EXT IDNAME ;Start of installer language file !ifdef LANGFILE_SETNAMES !ifdef LANGFILE_IDNAME !undef LANGFILE_IDNAME !endif !define LANGFILE_IDNAME "${IDNAME}" !endif !macroend !macro LANGFILE_SETSTRING NAME VALUE ;Set define with translated string !ifndef ${NAME} !define "${NAME}" "${VALUE}" !endif !macroend !macro LANGFILE_LANGSTRING NAME DUMMY ;Create a language string from a define and undefine LangString "${NAME}" "${LANG_${LANGFILE_IDNAME}}" "${${NAME}}" !undef "${NAME}" !macroend !endif