home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Include / LangFile.nsh < prev    next >
Encoding:
Text File  |  2009-02-01  |  2.7 KB  |  134 lines

  1. /*
  2.  
  3. LangFile.nsh
  4.  
  5. Header file to create langauge files that can be
  6. included with a single command.
  7.  
  8. Copyright 2008-2009 Joost Verburg
  9.  
  10. * Either LANGFILE_INCLUDE or LANGFILE_INCLUDE_WITHDEFAULT
  11.   can be called from the script to include a language
  12.   file.
  13.  
  14.   - LANGFILE_INCLUDE takes the language file name as parameter.
  15.   - LANGFILE_INCLUDE_WITHDEFAULT takes as additional second
  16.     parameter the default language file to load missing strings
  17.     from.
  18.  
  19. * A language file start with:
  20.   !insertmacro LANGFILE_EXT "English"
  21.   using the same name as the standard NSIS language file.
  22.  
  23. * Language strings in the language file have the format:
  24.   ${LangFileString} LANGSTRING_NAME "Text"
  25.  
  26. */
  27.  
  28. !ifndef LANGFILE_INCLUDED
  29. !define LANGFILE_INCLUDED
  30.  
  31. !macro LANGFILE_INCLUDE FILENAME
  32.  
  33.   ;Called from script: include a langauge file
  34.  
  35.   !ifdef LangFileString
  36.     !undef LangFileString
  37.   !endif
  38.  
  39.   !define LangFileString "!insertmacro LANGFILE_SETSTRING"
  40.  
  41.   !define LANGFILE_SETNAMES
  42.   !include "${FILENAME}"
  43.   !undef LANGFILE_SETNAMES
  44.  
  45.   ;Create language strings
  46.  
  47.   !undef LangFileString
  48.   !define LangFileString "!insertmacro LANGFILE_LANGSTRING"
  49.   !include "${FILENAME}"
  50.  
  51. !macroend
  52.  
  53. !macro LANGFILE_INCLUDE_WITHDEFAULT FILENAME FILENAME_DEFAULT
  54.  
  55.   ;Called from script: include a langauge file
  56.   ;Obtains missing strings from a default file
  57.  
  58.   !ifdef LangFileString
  59.     !undef LangFileString
  60.   !endif
  61.  
  62.   !define LangFileString "!insertmacro LANGFILE_SETSTRING"
  63.  
  64.   !define LANGFILE_SETNAMES
  65.   !include "${FILENAME}"
  66.   !undef LANGFILE_SETNAMES
  67.  
  68.   ;Include default language for missing strings
  69.   !include "${FILENAME_DEFAULT}"
  70.   
  71.   ;Create language strings
  72.   !undef LangFileString
  73.   !define LangFileString "!insertmacro LANGFILE_LANGSTRING"
  74.   !include "${FILENAME_DEFAULT}"
  75.  
  76. !macroend
  77.  
  78. !macro LANGFILE IDNAME NAME
  79.  
  80.   ;Start of standard NSIS language file
  81.  
  82.   !ifdef LANGFILE_SETNAMES
  83.  
  84.     !ifdef LANGFILE_IDNAME
  85.       !undef LANGFILE_IDNAME
  86.     !endif
  87.  
  88.     !define LANGFILE_IDNAME "${IDNAME}"
  89.  
  90.     !ifndef "LANGFILE_${IDNAME}_NAME"
  91.       !define "LANGFILE_${IDNAME}_NAME" "${NAME}"
  92.     !endif
  93.  
  94.   !endif
  95.  
  96. !macroend
  97.  
  98. !macro LANGFILE_EXT IDNAME
  99.  
  100.   ;Start of installer language file
  101.   
  102.   !ifdef LANGFILE_SETNAMES
  103.  
  104.     !ifdef LANGFILE_IDNAME
  105.       !undef LANGFILE_IDNAME
  106.     !endif
  107.  
  108.     !define LANGFILE_IDNAME "${IDNAME}"
  109.  
  110.   !endif
  111.  
  112. !macroend
  113.  
  114. !macro LANGFILE_SETSTRING NAME VALUE
  115.  
  116.   ;Set define with translated string
  117.  
  118.   !ifndef ${NAME}
  119.     !define "${NAME}" "${VALUE}"
  120.   !endif
  121.  
  122. !macroend
  123.  
  124. !macro LANGFILE_LANGSTRING NAME DUMMY
  125.  
  126.   ;Create a language string from a define and undefine
  127.  
  128.   LangString "${NAME}" "${LANG_${LANGFILE_IDNAME}}" "${${NAME}}"
  129.   !undef "${NAME}"
  130.  
  131. !macroend
  132.  
  133. !endif
  134.