【问题标题】:PC installer desktop shortcut and uninstall confirmationPC安装程序桌面快捷方式和卸载确认
【发布时间】:2014-08-11 20:58:47
【问题描述】:

目前正在与 NSIS 合作为我的 PC 游戏创建安装程序,想知道是否有办法(一些默认命令)能够执行以下 2 件事:

  1. 在用户卸载游戏时提示用户确认(我目前正在手动操作(AKA 消息框),但我的问题是它始终是英文的(我非常希望消息本地化,想知道是否有一个默认选项来提示用户,默认情况下会进行本地化,就像安装程序的其余部分一样)。

  2. 要求创建桌面快捷方式(同样,我正在使用 MUI_FINISHPAGE_SHOWREADME_TEXT 执行此操作,但我的文本未本地化)

如果没有这样做的默认方法,那么在我的安装程序中本地化这两个句子的最佳方法是什么?

【问题讨论】:

    标签: localization installation nsis


    【解决方案1】:

    您可以使用卸载确认页面:

    !include MUI2.nsh
    ...
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_PAGE_FINISH
    !insertmacro MUI_UNPAGE_CONFIRM
    !insertmacro MUI_UNPAGE_INSTFILES
    !insertmacro MUI_LANGUAGE English
    

    您可以使用LangStrings 来本地化字符串:

    !include MUI2.nsh
    !insertmacro MUI_PAGE_INSTFILES
    !define MUI_FINISHPAGE_SHOWREADME
    !define MUI_FINISHPAGE_SHOWREADME_TEXT "$(FinishDeskLnkCheck)"
    !define MUI_FINISHPAGE_SHOWREADME_FUNCTION CreateDeskLnk
    !insertmacro MUI_PAGE_FINISH
    !insertmacro MUI_LANGUAGE English
    !insertmacro MUI_LANGUAGE Swedish
    
    LangString FinishDeskLnkCheck ${LANG_ENGLISH} "Create Desktop shortcut?"
    LangString FinishDeskLnkCheck ${LANG_SWEDISH} "Bork Desktop bork bork?"
    
    Function .onInit
    !define MUI_LANGDLL_ALWAYSSHOW
    !define MUI_LANGDLL_ALLLANGUAGES
    !insertmacro MUI_LANGDLL_DISPLAY
    FunctionEnd
    
    ; NOTE: Uninstaller langstring names must be prefixed with "un."
    LangString ConfirmUninstMsg ${LANG_ENGLISH} "Kill it?"
    LangString ConfirmUninstMsg ${LANG_SWEDISH} "Bork it?"
    Function TranslateMsgBoxExample
    MessageBox MB_YESNO "$(ConfirmUninstMsg)"
    FunctionEnd
    
    Function CreateDeskLnk
    ; CreateShortcut ...
    Call TranslateMsgBoxExample
    FunctionEnd
    

    MessageBox 中按钮上的文本将使用当前用户 UI 语言,无法翻译...

    【讨论】:

    • 像魅力一样工作。 @Anders卸载程序消息语言默认为系统语言是否正常,还是应该显示与安装期间选择的语言相同的语言?
    • 您也可以在卸载程序中显示语言选择对话框(在 un.onInit 中),或者您可以在安装程序中保存 $Language 并在卸载程序中恢复此值...
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多