home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Examples / languages.nsi < prev    next >
Text File  |  2008-01-27  |  7KB  |  179 lines

  1. ; languages.nsi
  2. ;
  3. ; This is an example of a multilingual installer
  4. ; The user can select the language on startup
  5.  
  6. ;--------------------------------
  7.  
  8. OutFile languages.exe
  9.  
  10. XPStyle on
  11.  
  12. RequestExecutionLevel user
  13.  
  14. ;--------------------------------
  15.  
  16. Page license
  17. Page components
  18. Page instfiles
  19.  
  20. ;--------------------------------
  21.  
  22. ; First is default
  23. LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
  24. LoadLanguageFile "${NSISDIR}\Contrib\Language files\Dutch.nlf"
  25. LoadLanguageFile "${NSISDIR}\Contrib\Language files\French.nlf"
  26. LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"
  27. LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf"
  28. LoadLanguageFile "${NSISDIR}\Contrib\Language files\Russian.nlf"
  29. LoadLanguageFile "${NSISDIR}\Contrib\Language files\Spanish.nlf"
  30. LoadLanguageFile "${NSISDIR}\Contrib\Language files\Swedish.nlf"
  31. LoadLanguageFile "${NSISDIR}\Contrib\Language files\TradChinese.nlf"
  32. LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
  33. LoadLanguageFile "${NSISDIR}\Contrib\Language files\Slovak.nlf"
  34.  
  35. ; License data
  36. ; Not exactly translated, but it shows what's needed
  37. LicenseLangString myLicenseData ${LANG_ENGLISH} "bigtest.nsi"
  38. LicenseLangString myLicenseData ${LANG_DUTCH} "waplugin.nsi"
  39. LicenseLangString myLicenseData ${LANG_FRENCH} "example1.nsi"
  40. LicenseLangString myLicenseData ${LANG_GERMAN} "example2.nsi"
  41. LicenseLangString myLicenseData ${LANG_KOREAN} "gfx.nsi"
  42. LicenseLangString myLicenseData ${LANG_RUSSIAN} "languages.nsi"
  43. LicenseLangString myLicenseData ${LANG_SPANISH} "LogicLib.nsi"
  44. LicenseLangString myLicenseData ${LANG_SWEDISH} "makensis.nsi"
  45. LicenseLangString myLicenseData ${LANG_TRADCHINESE} "one-section.nsi"
  46. LicenseLangString myLicenseData ${LANG_SIMPCHINESE} "primes.nsi"
  47. LicenseLangString myLicenseData ${LANG_SLOVAK} "silent.nsi"
  48.  
  49. LicenseData $(myLicenseData)
  50.  
  51. ; Set name using the normal interface (Name command)
  52. LangString Name ${LANG_ENGLISH} "English"
  53. LangString Name ${LANG_DUTCH} "Dutch"
  54. LangString Name ${LANG_FRENCH} "French"
  55. LangString Name ${LANG_GERMAN} "German"
  56. LangString Name ${LANG_KOREAN} "Korean"
  57. LangString Name ${LANG_RUSSIAN} "Russian"
  58. LangString Name ${LANG_SPANISH} "Spanish"
  59. LangString Name ${LANG_SWEDISH} "Swedish"
  60. LangString Name ${LANG_TRADCHINESE} "Traditional Chinese"
  61. LangString Name ${LANG_SIMPCHINESE} "Simplified Chinese"
  62. LangString Name ${LANG_SLOVAK} "Slovak"
  63.  
  64. Name $(Name)
  65.  
  66. ; Directly change the inner lang strings (Same as ComponentText)
  67. LangString ^ComponentsText ${LANG_ENGLISH} "English component page"
  68. LangString ^ComponentsText ${LANG_DUTCH} "Dutch component page"
  69. LangString ^ComponentsText ${LANG_FRENCH} "French component page"
  70. LangString ^ComponentsText ${LANG_GERMAN} "German component page"
  71. LangString ^ComponentsText ${LANG_KOREAN} "Korean component page"
  72. LangString ^ComponentsText ${LANG_RUSSIAN} "Russian component page"
  73. LangString ^ComponentsText ${LANG_SPANISH} "Spanish component page"
  74. LangString ^ComponentsText ${LANG_SWEDISH} "Swedish component page"
  75. LangString ^ComponentsText ${LANG_TRADCHINESE} "Traditional Chinese component page"
  76. LangString ^ComponentsText ${LANG_SIMPCHINESE} "Simplified Chinese component page"
  77. LangString ^ComponentsText ${LANG_SLOVAK} "Slovak component page"
  78.  
  79. ; Set one text for all languages (simply don't use a LangString)
  80. CompletedText "Languages example completed"
  81.  
  82. ; A LangString for the section name
  83. LangString Sec1Name ${LANG_ENGLISH} "English section #1"
  84. LangString Sec1Name ${LANG_DUTCH} "Dutch section #1"
  85. LangString Sec1Name ${LANG_FRENCH} "French section #1"
  86. LangString Sec1Name ${LANG_GERMAN} "German section #1"
  87. LangString Sec1Name ${LANG_KOREAN} "Korean section #1"
  88. LangString Sec1Name ${LANG_RUSSIAN} "Russian section #1"
  89. LangString Sec1Name ${LANG_SPANISH} "Spanish section #1"
  90. LangString Sec1Name ${LANG_SWEDISH} "Swedish section #1"
  91. LangString Sec1Name ${LANG_TRADCHINESE} "Trandional Chinese section #1"
  92. LangString Sec1Name ${LANG_SIMPCHINESE} "Simplified Chinese section #1"
  93. LangString Sec1Name ${LANG_SLOVAK} "Slovak section #1"
  94.  
  95. ; A multilingual message
  96. LangString Message ${LANG_ENGLISH} "English message"
  97. LangString Message ${LANG_DUTCH} "Dutch message"
  98. LangString Message ${LANG_FRENCH} "French message"
  99. LangString Message ${LANG_GERMAN} "German message"
  100. LangString Message ${LANG_KOREAN} "Korean message"
  101. LangString Message ${LANG_RUSSIAN} "Russian message"
  102. LangString Message ${LANG_SPANISH} "Spanish message"
  103. LangString Message ${LANG_SWEDISH} "Swedish message"
  104. LangString Message ${LANG_TRADCHINESE} "Trandional Chinese message"
  105. LangString Message ${LANG_SIMPCHINESE} "Simplified Chinese message"
  106. LangString Message ${LANG_SLOVAK} "Slovak message"
  107.  
  108. ;--------------------------------
  109.  
  110. ;Section names set by Language strings
  111. ;It works with ! too
  112. Section !$(Sec1Name) sec1
  113.     MessageBox MB_OK $(Message)
  114. SectionEnd
  115.  
  116. ; The old, slow, wasteful way
  117. ; Look at this section and see why LangString is so much easier
  118. Section "Section number two"
  119.     StrCmp $LANGUAGE ${LANG_ENGLISH} 0 +2
  120.         MessageBox MB_OK "Installing English stuff"
  121.     StrCmp $LANGUAGE ${LANG_DUTCH} 0 +2
  122.         MessageBox MB_OK "Installing Dutch stuff"
  123.     StrCmp $LANGUAGE ${LANG_FRENCH} 0 +2
  124.         MessageBox MB_OK "Installing French stuff"
  125.     StrCmp $LANGUAGE ${LANG_GERMAN} 0 +2
  126.         MessageBox MB_OK "Installing German stuff"
  127.     StrCmp $LANGUAGE ${LANG_KOREAN} 0 +2
  128.         MessageBox MB_OK "Installing Korean stuff"
  129.     StrCmp $LANGUAGE ${LANG_RUSSIAN} 0 +2
  130.         MessageBox MB_OK "Installing Russian stuff"
  131.     StrCmp $LANGUAGE ${LANG_SPANISH} 0 +2
  132.         MessageBox MB_OK "Installing Spanish stuff"
  133.     StrCmp $LANGUAGE ${LANG_SWEDISH} 0 +2
  134.         MessageBox MB_OK "Installing Swedish stuff"
  135.     StrCmp $LANGUAGE ${LANG_TRADCHINESE} 0 +2
  136.         MessageBox MB_OK "Installing Traditional Chinese stuff"
  137.     StrCmp $LANGUAGE ${LANG_SIMPCHINESE} 0 +2
  138.         MessageBox MB_OK "Installing Simplified Chinese stuff"
  139.     StrCmp $LANGUAGE ${LANG_SLOVAK} 0 +2
  140.         MessageBox MB_OK "Installing Slovak stuff"
  141. SectionEnd
  142.  
  143. ;--------------------------------
  144.  
  145. Function .onInit
  146.  
  147.     ;Language selection dialog
  148.  
  149.     Push ""
  150.     Push ${LANG_ENGLISH}
  151.     Push English
  152.     Push ${LANG_DUTCH}
  153.     Push Dutch
  154.     Push ${LANG_FRENCH}
  155.     Push French
  156.     Push ${LANG_GERMAN}
  157.     Push German
  158.     Push ${LANG_KOREAN}
  159.     Push Korean
  160.     Push ${LANG_RUSSIAN}
  161.     Push Russian
  162.     Push ${LANG_SPANISH}
  163.     Push Spanish
  164.     Push ${LANG_SWEDISH}
  165.     Push Swedish
  166.     Push ${LANG_TRADCHINESE}
  167.     Push "Traditional Chinese"
  168.     Push ${LANG_SIMPCHINESE}
  169.     Push "Simplified Chinese"
  170.     Push ${LANG_SLOVAK}
  171.     Push Slovak
  172.     Push A ; A means auto count languages
  173.            ; for the auto count to work the first empty push (Push "") must remain
  174.     LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
  175.  
  176.     Pop $LANGUAGE
  177.     StrCmp $LANGUAGE "cancel" 0 +2
  178.         Abort
  179. FunctionEnd