为什么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。现在你应该不会再看到这个错误了。
我按照"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。现在你应该不会再看到这个错误了。