home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Contrib / Modern UI 2 / Localization.nsh < prev    next >
Encoding:
Text File  |  2008-03-29  |  4.7 KB  |  193 lines

  1. /*
  2.  
  3. NSIS Modern User Interface
  4. Localization
  5.  
  6. */
  7.  
  8. ;--------------------------------
  9. ;Variables
  10.  
  11. !macro MUI_LANGDLL_VARIABLES
  12.  
  13.   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  14.     !ifndef MUI_LANGDLL_REGISTRY_VARAIBLES
  15.       !define MUI_LANGDLL_REGISTRY_VARAIBLES
  16.  
  17.       ;/GLOBAL because the macros are included in a function
  18.       Var /GLOBAL mui.LangDLL.RegistryLanguage
  19.  
  20.     !endif
  21.   !endif
  22.  
  23. !macroend
  24.  
  25.  
  26. ;--------------------------------
  27. ;Include langauge files
  28.  
  29. !macro MUI_LANGUAGE LANGUAGE
  30.  
  31.   ;Include a language
  32.  
  33.   !verbose push
  34.   !verbose ${MUI_VERBOSE}
  35.  
  36.   !insertmacro MUI_INSERT
  37.  
  38.   LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nlf"
  39.  
  40.   ;Include language file
  41.   !insertmacro LANGFILE_INCLUDE_WITHDEFAULT "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nsh" "${NSISDIR}\Contrib\Language files\English.nsh"
  42.  
  43.   ;Add language to list of languages for selection dialog
  44.   !ifndef MUI_LANGDLL_LANGUAGES
  45.     !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' "
  46.     !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' "
  47.   !else
  48.     !ifdef MUI_LANGDLL_LANGUAGES_TEMP
  49.       !undef MUI_LANGDLL_LANGUAGES_TEMP
  50.     !endif
  51.     !define MUI_LANGDLL_LANGUAGES_TEMP "${MUI_LANGDLL_LANGUAGES}"
  52.     !undef MUI_LANGDLL_LANGUAGES
  53.  
  54.     !ifdef MUI_LANGDLL_LANGUAGES_CP_TEMP
  55.       !undef MUI_LANGDLL_LANGUAGES_CP_TEMP
  56.     !endif
  57.     !define MUI_LANGDLL_LANGUAGES_CP_TEMP "${MUI_LANGDLL_LANGUAGES_CP}"
  58.     !undef MUI_LANGDLL_LANGUAGES_CP
  59.  
  60.     !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' ${MUI_LANGDLL_LANGUAGES_TEMP}"
  61.     !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' ${MUI_LANGDLL_LANGUAGES_CP_TEMP}"
  62.   !endif
  63.  
  64.   !verbose pop
  65.  
  66. !macroend
  67.  
  68.  
  69. ;--------------------------------
  70. ;Language selection
  71.  
  72. !macro MUI_LANGDLL_DISPLAY
  73.  
  74.   !verbose push
  75.   !verbose ${MUI_VERBOSE}
  76.  
  77.   !insertmacro MUI_LANGDLL_VARIABLES
  78.  
  79.   !insertmacro MUI_DEFAULT MUI_LANGDLL_WINDOWTITLE "Installer Language"
  80.   !insertmacro MUI_DEFAULT MUI_LANGDLL_INFO "Please select a language."
  81.  
  82.   !ifdef MUI_LANGDLL_REGISTRY_VARAIBLES
  83.  
  84.     ReadRegStr $mui.LangDLL.RegistryLanguage "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}"
  85.     
  86.     ${if} $mui.LangDLL.RegistryLanguage != ""
  87.       ;Set default langauge to registry language
  88.       StrCpy $LANGUAGE $mui.LangDLL.RegistryLanguage
  89.     ${endif}
  90.  
  91.   !endif
  92.  
  93.   !ifdef NSIS_CONFIG_SILENT_SUPPORT
  94.     ${unless} ${Silent}
  95.   !endif
  96.  
  97.   !ifndef MUI_LANGDLL_ALWAYSSHOW
  98.   !ifdef MUI_LANGDLL_REGISTRY_VARAIBLES
  99.     ${if} $mui.LangDLL.RegistryLanguage == ""
  100.   !endif
  101.   !endif
  102.   
  103.   ;Show langauge selection dialog
  104.   !ifdef MUI_LANGDLL_ALLLANGUAGES
  105.     LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" A ${MUI_LANGDLL_LANGUAGES} ""
  106.   !else
  107.     LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" AC ${MUI_LANGDLL_LANGUAGES_CP} ""
  108.   !endif
  109.   
  110.     Pop $LANGUAGE
  111.     ${if} $LANGUAGE == "cancel"
  112.       Abort
  113.     ${endif}
  114.   
  115.   !ifndef MUI_LANGDLL_ALWAYSSHOW
  116.   !ifdef MUI_LANGDLL_REGISTRY_VARAIBLES
  117.     ${endif}
  118.   !endif
  119.   !endif
  120.  
  121.  
  122.   !ifdef NSIS_CONFIG_SILENT_SUPPORT
  123.     ${endif}
  124.   !endif
  125.  
  126.   !verbose pop
  127.  
  128. !macroend
  129.  
  130. !macro MUI_LANGDLL_SAVELANGUAGE
  131.  
  132.   ;Save language in registry
  133.  
  134.   !ifndef MUI_PAGE_UNINSTALLER
  135.  
  136.     IfAbort mui.langdllsavelanguage_abort
  137.  
  138.     !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  139.       WriteRegStr "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" $LANGUAGE
  140.     !endif
  141.  
  142.     mui.langdllsavelanguage_abort:
  143.  
  144.   !endif
  145.  
  146. !macroend
  147.  
  148. !macro MUI_UNGETLANGUAGE
  149.  
  150.   ;Get language from registry in uninstaller
  151.  
  152.   !verbose push
  153.   !verbose ${MUI_VERBOSE}
  154.  
  155.   !insertmacro MUI_LANGDLL_VARIABLES
  156.  
  157.   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  158.  
  159.     ReadRegStr $mui.LangDLL.RegistryLanguage "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}"
  160.     
  161.     ${if} $mui.LangDLL.RegistryLanguage = ""
  162.  
  163.   !endif
  164.  
  165.   !insertmacro MUI_LANGDLL_DISPLAY
  166.  
  167.   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  168.  
  169.     ${else}
  170.       StrCpy $LANGUAGE $mui.LangDLL.RegistryLanguage
  171.     ${endif}
  172.  
  173.   !endif
  174.  
  175.   !verbose pop
  176.  
  177. !macroend
  178.  
  179.  
  180. ;--------------------------------
  181. ;Rerserve LangDLL file
  182.  
  183. !macro MUI_RESERVEFILE_LANGDLL
  184.  
  185.   !verbose push
  186.   !verbose ${MUI_VERBOSE}
  187.  
  188.   ReserveFile "${NSISDIR}\Plugins\LangDLL.dll"
  189.  
  190.   !verbose pop
  191.  
  192. !macroend
  193.