为什么ckan不能用中文?

why ckan cannot use chinese?

我按照"from source"的方式安装了Ckan。但是安装后,在网页的"language"下拉菜单中找不到中文

我查看了ckan i18n文件夹,里面有zh_CN和zh_TW。当我在配置文件中将 "locale_default" 更改为 zh_CN 时,会出现错误 "default language zh_CN not available",而 Ckan 不能 运行 。我试了几次安装ckan,每次都遇到这个问题。

然后我通过"from package"方式安装了Ckan。好的,我可以在下拉菜单中找到“中文(中国)”(chinese),但是当我创建数据集并查看语言设置为中文的数据集时,出现错误 "Server error, an internal server error occured"。但是当我选择任何其他语言时,它会好的。

有人知道如何解决这个问题吗?

这两个问题都是错误。我在存储库中创建了两个问题:

https://github.com/ckan/ckan/issues/3073

https://github.com/ckan/ckan/issues/3074

感谢您举报这些

当您从包中安装 ckan 时,字符串格式在中文语言环境中的工作方式确实存在一个错误。这是因为错误地更改了翻译字符串。您可以通过更改中文 ckan.po 文件并将其重新编译为 formatters.py 将要生成的 .mo 文件来解决此问题。这将是一个更干净的解决方法,然后更改 python 文件本身。

为了做到这一点 cd/usr/lib/ckan/default/src/ckan/ckan/i18n/zh_CN/LC_MESSAGES/ 并编辑第 962 行(应该以 msgstr 开头并有 header 注释 # ckan/lib/formatters.py:146)。在那里你需要删除花括号中的所有中文字符并用英文字符替换它们。最简单的方法可能是从上面的一行中复制 msgid 中的字符串,但如果需要,您也可以在此处更改月、日、年的顺序...)。

完成后使用 msgfmt(如果未安装,请执行 sudo apt install msgfmt)再次编译翻译字符串:

sudo msgfmt ckan.po -o ckan.mo

之后使用 sudo service apache2 restart 重新启动 apache。现在你应该不会再看到这个错误了。