languages.nsi 7.0 KB

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