Localization PC安装程序桌面快捷方式和卸载确认

Localization PC安装程序桌面快捷方式和卸载确认,localization,installation,nsis,Localization,Installation,Nsis,目前正在与NSIS合作为我的PC游戏创建安装程序,我想知道是否有一种方法(一些默认命令)可以完成以下两件事: 当用户卸载游戏时,提示用户确认(我目前正在手动操作(又名messagebox),但我的问题是它始终是英文的(我非常希望消息本地化,我想知道是否有默认选项来提示默认本地化的用户,就像安装程序的其余部分一样) 要求创建桌面快捷方式(同样,我正在使用MUI_FINISHPAGE_SHOWREADME_文本进行此操作,但我的文本未本地化) 如果没有默认方法,那么在我的安装程序中本地化这两句话的最

目前正在与NSIS合作为我的PC游戏创建安装程序,我想知道是否有一种方法(一些默认命令)可以完成以下两件事:

  • 当用户卸载游戏时,提示用户确认(我目前正在手动操作(又名messagebox),但我的问题是它始终是英文的(我非常希望消息本地化,我想知道是否有默认选项来提示默认本地化的用户,就像安装程序的其余部分一样)

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


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

    有一个卸载确认页面,您可以使用:

    !include MUI2.nsh
    ...
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_PAGE_FINISH
    !insertmacro MUI_UNPAGE_CONFIRM
    !insertmacro MUI_UNPAGE_INSTFILES
    !insertmacro MUI_LANGUAGE English
    
    您可以使用
    LangString
    s来本地化字符串:

    !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
    

    消息框中按钮上的文本将使用当前用户的UI语言,无法翻译…

    就像一个符咒一样工作。@Anders卸载程序消息语言默认为系统语言是正常的,还是应该显示与安装过程中选择的语言相同的语言?您可以显示语言选择对话框,或者您可以在安装程序中保存$Language并在卸载程序中还原此值。。。