在我的本地系统上,一切运行良好。
我想在我部署在heroku上的Django系统上编译i18l.po。当我运行以下命令时:
heroku run python manage.py compilemessages -l en
我收到一条错误消息:“ CommandError:找不到msgfmt。确保已安装0.15或更高版本的GNU gettext工具。”这是否意味着heroku中没有gettext模块?然后,我尝试在heroku CLI中安装gettext。然后我通过运行
安装gettext模块heroku create --buildpack https://github.com/piotras/heroku-buildpack-gettext.git
但这失败了。那么如何在heroku中编译翻译文件?
---更新--- 我设法通过在heroku上添加buildpack来运行compile命令。您可以在此处遵循教程:Third-party-buildpack。但是出现了一个新问题。虽然我成功编译了.po文件,但没有任何反应。
---更新--- 好了,这个问题也已解决。因为.git文件被.gitignore忽略。从gitignore文件中删除.mo后,将显示翻译!但是我仍然对Heroku循环机制有另一个担忧,heroku会清除此.mo文件吗?我正在使用Amazon S3系统存储静态文件。但是.mo不在任何这些文件夹中。