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