我正在考虑使用Haskell开发一个小型商业项目。该程序必须国际化(针对简体中文,具体而言),我的客户要求它应该以一键式Windows Installer形式提供。所以基本上这些都是我现在面临两个问题:如何做i18n并创建Haskell程序的Windows Installer?
- 的的I18n Haskell程序:在Internationalization of Haskell programs描述的方法做工作(部分)如果我改变执行程序的命令从
LOCALE=zh_CN.UTF-8 ./Main
到LANG=zh_CN.UTF-8 ./Main
(I”在Ubuntu 10.10上工作),但是,中文输出是乱码,我不知道为什么。 - 在Windows上发布:我习惯在Linux下工作并使用Cabal构建我的Haskell程序的&包,但从一个cabalized Haskell包创建一键式Windows Installer最自然的方法是什么?包bamse正确的路要走吗?
------对于第一个问题------
我所做的详细信息为:
$ hgettext -k __ -o messages.pot Main.hs
$ msginit --input=messages.pot --locale=zh_CN.UTF-8
(Edit the zh_CN.po file, adding Chinese translation)
$ mkdir -p zh_CN/LC_MESSAGES
$ msgfmt --output-file=zh_CN/LC_MESSAGES/hello.mo zh_CN.po
$ ghc --make Main.hs
$ LANG=zh_CN.UTF-8 ./Main
输出功率为这样的:
这表明gettext实际上正在工作,但由于某种原因生成的zh_CN.mo文件已损坏(我的猜测)。我很确定我的zh_CN.po文件是用UTF-8编码的。另外,除了使用System.IO.putStrLn
之外,我还尝试了System.IO.UTF8.putStrLn
来输出字符串,这也不起作用。
嘿,不错。我甚至不知道bamse是否存在... – 2011-02-16 04:08:20