Divio Cloud(以前的 "Aldryn"):manage.py makemessages:找不到 xgettext
Divio Cloud (formerly "Aldryn"): manage.py makemessages: Can't find xgettext
如果我在 Divio Cloud(以前称为 "Aldryn")项目中执行以下操作:
docker-compose run --rm web python manage.py makemessages
我得到:
CommandError: Can't find xgettext. Make sure you have GNU gettext tools 0.15 or newer installed.
- 运行`manage.py makemessages 是在 Divio Cloud 上创建/更新消息文件的正确方法吗?
作为解决方法,我已将其添加到 Dockerfile
:
# add gettext for manage.py makemessages
RUN apt-get update && apt-get install -y gettext
然后
docker-compose build web
- 此外,.mo 文件会在 Divio Cloud 部署上编译还是必须预编译它们?
目前 Aldryn 不支持为您生成 .mo 文件。在等待 Aldryn 本身提供开箱即用的支持时,您可以通过编辑 Dockerfile 来解决这个问题,就像您已经做的那样:
1) 向顶部,就在 # <DOCKER_BUILD>
之前,添加以下命令(正如您已经指出的那样):
# add gettext for manage.py makemessages
RUN apt-get update && apt-get install -y gettext && apt-get clean && rm -rf /var/lib/apt/lists/*
2) 在底部,就在 # </DOCKER_BUILD>
之后,添加以下命令:
# compile the messages
RUN DJANGO_MODE=build python manage.py compilemessages
编辑: 如果您使用的是 baseproject>=3.13.1,则不再需要步骤 1)。
如果我在 Divio Cloud(以前称为 "Aldryn")项目中执行以下操作:
docker-compose run --rm web python manage.py makemessages
我得到:
CommandError: Can't find xgettext. Make sure you have GNU gettext tools 0.15 or newer installed.
- 运行`manage.py makemessages 是在 Divio Cloud 上创建/更新消息文件的正确方法吗?
作为解决方法,我已将其添加到 Dockerfile
:
# add gettext for manage.py makemessages
RUN apt-get update && apt-get install -y gettext
然后
docker-compose build web
- 此外,.mo 文件会在 Divio Cloud 部署上编译还是必须预编译它们?
目前 Aldryn 不支持为您生成 .mo 文件。在等待 Aldryn 本身提供开箱即用的支持时,您可以通过编辑 Dockerfile 来解决这个问题,就像您已经做的那样:
1) 向顶部,就在 # <DOCKER_BUILD>
之前,添加以下命令(正如您已经指出的那样):
# add gettext for manage.py makemessages
RUN apt-get update && apt-get install -y gettext && apt-get clean && rm -rf /var/lib/apt/lists/*
2) 在底部,就在 # </DOCKER_BUILD>
之后,添加以下命令:
# compile the messages
RUN DJANGO_MODE=build python manage.py compilemessages
编辑: 如果您使用的是 baseproject>=3.13.1,则不再需要步骤 1)。