杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2142|回复: 0

NSIS 判断用户选择的语言

[复制链接]
发表于 2019-3-1 17:06:39 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. ; 安装程序初始定义常量
  2. !define PRODUCT_NAME "KKCap"
  3. !define PRODUCT_VERSION "20190120a"
  4. !define PRODUCT_PUBLISHER "KKCap, Inc."
  5. !define PRODUCT_WEB_SITE "https://www.kkcap.net"

  6. # COMPRESS #

  7. SetCompress Auto
  8. SetCompressor /SOLID /FINAL lzma
  9. SetCompress force
  10. SetCompressorDictSize 32
  11. SetDatablockOptimize on
  12. SetDateSave on


  13. XPStyle on  #开启XP风格
  14. InstallColors /windows  #颜色跟随系统
  15. ReserveFile "${NSISDIR}\Plugins\LangDLL.dll"

  16. Name "${PRODUCT_NAME}"
  17. OutFile "KKCap_Setup.exe"  #输出安装包的文件名
  18. LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
  19. LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
  20. InstallDir "$PROGRAMFILES\KKCap"  ;默认安装路径
  21. Icon "kkcap\kkcap.ico"  #安装包图标
  22. ShowInstDetails show  #显示安装详情
  23. DirText "安装程序将安装 $(^Name) 在下列文件夹。$\r$\n$\r$\n要安装在不同文件夹,单击“浏览”并选择其他文件夹。"

  24. ;选择安装语言
  25. Function .onInit
  26.   Push ""
  27.   Push ${LANG_ENGLISH}
  28.   Push "English"
  29.   Push ${LANG_SIMPCHINESE}
  30.   Push "SimpChinese"

  31.   Push A ; A 表示自动计算语言数, 为了能够正常运作,开始的空串压入堆栈(Push "")必须保留
  32.   LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
  33.   Pop $LANGUAGE
  34.   StrCmp $LANGUAGE "cancel" 0 +2
  35.     Abort ; 如果点击“cancel”按钮就关闭安装程序
  36. FunctionEnd


  37. Section "MainSection" SEC01
  38.   SetOutPath "$INSTDIR"
  39.   SetOverwrite ifnewer
  40.   File /r "kkcap\*.*"
  41.   CreateShortCut "$DESKTOP\KKCap.lnk" "$INSTDIR\KKCap.exe"  #添加到桌面图标

  42. SectionEnd

  43. #创建开始菜单
  44. Section -AdditionalIcons
  45.   WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
  46.   CreateDirectory "$SMPROGRAMS\KKCap"
  47.   CreateShortCut "$SMPROGRAMS\KKCap\KKCap.lnk" "$INSTDIR\KKCap.exe"
  48.   CreateShortCut "$SMPROGRAMS\KKCap\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
  49. SectionEnd

复制代码
请问如何判断用户选择的语言呢?

#根据不同的语言,释放不同的语言文件


  1.   ${If} ${LANG_ENGLISH} = $Language
  2.   Rename "$INSTDIR\en.ini" "$INSTDIR\KKCap.ini" #将en.ini 更名为 KKCap.ini 并删除 cn.ini
  3.   Delete "$INSTDIR\cn.ini"
  4.         ${Else}
  5.         Rename "$INSTDIR\cn.ini" "$INSTDIR\KKCap.ini" #将en.ini 更名为 KKCap.ini 并删除 cn.ini
  6.   Delete "$INSTDIR\en.ini"
  7.         ${EndIf}
  8.   CreateShortCut "$DESKTOP\KKCap.lnk" "$INSTDIR\KKCap.exe"
复制代码
这段判断所选语言的代码貌似对 经典界面的 脚本无效唉。。

选择英文的话,这些文字如何变英文呢:

  1. DirText "安装程序将安装 $(^Name) 在下列文件夹。$\r$\n$\r$\n要安装在不同文件夹,单击“浏览”并选择其他文件夹。"
复制代码









回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-17 23:27 , Processed in 0.111263 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表