LangFile.nsh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /*
  2. LangFile.nsh
  3. Header file to create langauge files that can be
  4. included with a single command.
  5. Copyright 2008-2009 Joost Verburg
  6. * Either LANGFILE_INCLUDE or LANGFILE_INCLUDE_WITHDEFAULT
  7. can be called from the script to include a language
  8. file.
  9. - LANGFILE_INCLUDE takes the language file name as parameter.
  10. - LANGFILE_INCLUDE_WITHDEFAULT takes as additional second
  11. parameter the default language file to load missing strings
  12. from.
  13. * A language file start with:
  14. !insertmacro LANGFILE_EXT "English"
  15. using the same name as the standard NSIS language file.
  16. * Language strings in the language file have the format:
  17. ${LangFileString} LANGSTRING_NAME "Text"
  18. */
  19. !ifndef LANGFILE_INCLUDED
  20. !define LANGFILE_INCLUDED
  21. !macro LANGFILE_INCLUDE FILENAME
  22. ;Called from script: include a langauge file
  23. !ifdef LangFileString
  24. !undef LangFileString
  25. !endif
  26. !define LangFileString "!insertmacro LANGFILE_SETSTRING"
  27. !define LANGFILE_SETNAMES
  28. !include "${FILENAME}"
  29. !undef LANGFILE_SETNAMES
  30. ;Create language strings
  31. !undef LangFileString
  32. !define LangFileString "!insertmacro LANGFILE_LANGSTRING"
  33. !include "${FILENAME}"
  34. !macroend
  35. !macro LANGFILE_INCLUDE_WITHDEFAULT FILENAME FILENAME_DEFAULT
  36. ;Called from script: include a langauge file
  37. ;Obtains missing strings from a default file
  38. !ifdef LangFileString
  39. !undef LangFileString
  40. !endif
  41. !define LangFileString "!insertmacro LANGFILE_SETSTRING"
  42. !define LANGFILE_SETNAMES
  43. !include "${FILENAME}"
  44. !undef LANGFILE_SETNAMES
  45. ;Include default language for missing strings
  46. !include "${FILENAME_DEFAULT}"
  47. ;Create language strings
  48. !undef LangFileString
  49. !define LangFileString "!insertmacro LANGFILE_LANGSTRING"
  50. !include "${FILENAME_DEFAULT}"
  51. !macroend
  52. !macro LANGFILE IDNAME NAME
  53. ;Start of standard NSIS language file
  54. !ifdef LANGFILE_SETNAMES
  55. !ifdef LANGFILE_IDNAME
  56. !undef LANGFILE_IDNAME
  57. !endif
  58. !define LANGFILE_IDNAME "${IDNAME}"
  59. !ifndef "LANGFILE_${IDNAME}_NAME"
  60. !define "LANGFILE_${IDNAME}_NAME" "${NAME}"
  61. !endif
  62. !endif
  63. !macroend
  64. !macro LANGFILE_EXT IDNAME
  65. ;Start of installer language file
  66. !ifdef LANGFILE_SETNAMES
  67. !ifdef LANGFILE_IDNAME
  68. !undef LANGFILE_IDNAME
  69. !endif
  70. !define LANGFILE_IDNAME "${IDNAME}"
  71. !endif
  72. !macroend
  73. !macro LANGFILE_SETSTRING NAME VALUE
  74. ;Set define with translated string
  75. !ifndef ${NAME}
  76. !define "${NAME}" "${VALUE}"
  77. !endif
  78. !macroend
  79. !macro LANGFILE_LANGSTRING NAME DUMMY
  80. ;Create a language string from a define and undefine
  81. LangString "${NAME}" "${LANG_${LANGFILE_IDNAME}}" "${${NAME}}"
  82. !undef "${NAME}"
  83. !macroend
  84. !endif