我发现自己处于一个非常奇怪的境地:
- 我没有我的
.mo
提交到我的存储库中的文件。我计划在部署后生成它们
- 我安装了 gettext buildpack,位于
https://github.com/piotras/heroku-buildpack-gettext.git
这是我所做的步骤:
- 部署到heroku。
- Run
heroku run python manage,py compilemessages
-
正在输出:
处理 /app/.heroku/python/lib/python3.6/site-packages/django/contrib/redirects/locale/ru/LC_MESSAGES 中的文件 django.po
处理 /app/.heroku/python/lib/python3.6/site-packages/django/contrib/redirects/locale/cy/LC_MESSAGES 中的文件 django.po
处理 /app/prometheus/locale/zh_hans/LC_MESSAGES 中的文件 django.po
处理 /app/.heroku/python/lib/python3.6/site-packages/django/contrib/gis/locale/sk/LC_MESSAGES 中的文件 django.po
列出文件之一:heroku run ls /app/.heroku/python/lib/python3.6/site-packages/django/contrib/redirects/locale/zh_Hans/LC_MESSAGES
结果:django.mo django.po
列出我们的文件:heroku run ls /app/prometheus/locale/zh_hans/LC_MESSAGES/
结果:django.po
django.mo 丢失。
I ran python manage.py shell
看看我是否有一些变量错误:
heroku run python manage.py shell
In [1]: from django from django.conf import settings
In [3]: print(settings.BASE_DIR)
/app/prometheus
In [4]: print(settings.LOCALE_PATHS)
('/app/prometheus/locale',)
所以我不知道为什么我的 django.mo 文件没有生成。
有什么猜测吗?
自 Heroku 20 起 https://github.com/heroku/heroku-buildpack-python/issues/198#issuecomment-185169313, gettext 会自动添加到默认的 Python 构建包中。这仅在构建期间而不是在运行时。因此该命令应在构建后立即执行。
幸运的是,这可以使用中的后编译文件来完成bin/post_compile
(没有像 procfile 这样的扩展名)使用以下行:
python manage.py compilemessages
您可以选择添加特定语言(例如python manage.py compilemessages -l nl
)
由于 Heroku 自动添加 gettext,因此不再需要添加额外的构建包(至少对于gettext
)就像上面提到的 Piotras 的那样。
这些文件是在构建阶段生成的,并将成为压缩映像的一部分。因此,之后不应删除它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)