在Django中翻译文件时使用Git命令

时间:2015-03-13 07:52:56

标签: python django translation

我在Django中有一个现有的应用程序。 我想在页面上添加翻译。 在页面上我有:

{% trans 'Projects'%}

在.po文件中我添加了:

#: templates/staff/site.html: 200
msgid "Projects"
msgid "Projekty"

然后执行命令:

django-admin.py compilemessages -l pl

执行此命令后,出现错误:

CommandError: This Should Be Run script from the Django Git checkout or your project or app tree, or with the settings Specified module.

5 个答案:

答案 0 :(得分:8)

  

[11:08:21] sobolev :: MacBook-Pro-Nikita➜   Documents / PyCharmProjects / nsp »python manage.py   compilemessages --settings nsp.settings2↵CommandError:这个   脚本应该从Django Git结账或您的项目或运行   应用树或指定的设置模块。

我确实在项目根文件夹中时遇到此错误。 问题是,我首先运行此命令时没有python manage.py makemessages

错误消息具有误导性。

答案 1 :(得分:3)

错误包含答案,您可以从任何地方运行脚本,因此无法知道要编译的文件。从项目目录运行命令或指定设置,你应该没问题。

答案 2 :(得分:2)

如果您使用docker容器构建和部署应用程序,则应复制文件夹:

conf/

django项目的根文件夹中的

。 使用conf文件夹,您应该看到:

processing file django.po in /gamma/conf/locale/en/LC_MESSAGES
processing file django.po in /gamma/conf/locale/es/LC_MESSAGES
processing file django.po in /gamma/conf/locale/pt_BR/

没有conf文件夹,您应该会看到这样的无提示消息:

CommandError: This script should be run from the Django Git checkout or your project or app tree, or with the settings module specified.

答案 3 :(得分:0)

如果尚未在设置文件中设置LOCALE_PATHS,则需要这样做:

import os
LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]

答案 4 :(得分:0)

错误消息说它找不到预期的翻译文件。检查一切是否正确设置:

  • LOCALE_PATHS 在 settings.py 中定义
  • 文件存在于上面定义的文件夹中(通过运行 python manage.py makemessages 创建)
    • 实际上,即使只有一个空的 locales 文件夹,错误也会消失
  • 从项目根文件夹运行 compilemessages 命令