我正在使用NSIS为我的应用程序生成Windows'安装程序。我想要一个多语言的安装程序。我正在使用LangString
来指定字符串。
但是,文档似乎没有说明如何编码非ASCII字符。例如,要使用德语单词“benötigt”(其中“o”具有变音符号),我该如何编码ö?
答案 0 :(得分:3)
使用Unicode version of NSIS更容易。整个问题就消失了。
答案 1 :(得分:2)
我假设我们在这里谈论的是NSIS的ANSI版本......
LangString的第二个参数是语言ID(您可以使用NSIS \ Bin \ MakeLangId.exe生成一个,但由于您可能已经使用了MUI_LANGUAGE宏或LoadLanguageFile,因此将为您定义$ {LANG_GERMAN}等)< / p>
NSIS并不真正关心字符串是如何编码的,但是如果你有很多不同语言的字符串,那么将LangString命令放在你可以包含的外部文件中可能是个好主意。这样,您可以使用不同的代码页和文本编辑器编辑不同的语言文件。
答案 2 :(得分:1)
如果要通过ANSI版本的NSIS编译器编译UNICODE字符串,则必须将此类字符串放在带.nsi
的单独UCS-2 LE BOM
文件中(使用Notepad++
查找)格式并直接包含。
我在main.nsi
的末尾使用了特别是英文版和俄文版的此类文件:
!ifdef LANG_ENGLISH
!include "${PROJECT_SRCS_ROOT}\lang_en.nsi"
!endif
!ifdef LANG_RUSSIAN
!include "${PROJECT_SRCS_ROOT}\lang_ru.nsi"
!endif
答案 3 :(得分:0)
如果您不能使用nsis的unicode版本,您可以使用latin-1(ISO 8859-1)对文本进行编码,该文本可用于生成这些变音符号,ü,ä,ö