我在评估nsis。我想创建一个安装程序(使用mui2),它将使用提供的Unicode字符串(用于标题,按钮,标签等),而不是使用任何“本地化”。
例如:应用程序标题包含来自不同语言的unicode字符(假设:“Λεξικό-Dictionary-Речник
”将是整个标题,无论用户“语言”如何)
是否有一种简单的方法可以独立于mui语言使用提供的精确unicode字符串?
编辑(评论):上面是关于按钮的自己的Unicode字符串,一般来说,UI文本(没有本地化)。不是任何来源(或目的地)“文件名”或“路径”。
NSIS不会翻译名称,只需确保将.NSI源文件保存为带有BOM / Signature的UTF-8或带有BOM的UTF-16(如果使用非ASCII字符)。
Unicode True
Name "Λεξικό-Dictionary-Речник"
OutFile "MyInstaller.exe"
InstallDir "$ProgramFiles\$(^Name)"
!include MUI2.nsh
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English
Section
SetOutPath $InstDir
File /r "c:\myfiles\*.*"
SectionEnd
也可以从Unicode代码点手动构造Unicode字符:
Section
MessageBox MB_OK "${U+2115}SIS" # DOUBLE-STRUCK CAPITAL N + "SIS"
SectionEnd
问题是我将文件保存为UTF8(!!!)。将文件从记事本保存为Unicode后问题消失了。