Django不会创建翻译.po文件

时间:2011-01-05 22:11:27

标签: python django localization

我只在模板中存储了翻译字符串(存储在project_dir / Templates中),我尝试在项目根目录和使用trans模板的app目录中运行$ django-admin.py createmessages -l ru。字符串。它创建了文件夹locale / ru / LC_MESSAGES,但文件夹为空。我尝试手动添加django.po文件(使用l10n文档中提到的语法)。并运行createmessages -a和compilemessages命令。它创建了.mo文件,但翻译没有出现在浏览器中。

  1. 当我手动创建.po文件时,我没有以#开头的行。我应该在那里写什么?
  2. 我的模板文件与应用程序的.py文件位于不同的文件夹中。我应该给他们一些额外的链接吗?

3 个答案:

答案 0 :(得分:9)

你试过了吗?

python manage.py makemessages -a 

来自项目根目录和应用程序?

这应该创建一个你必须编辑的.po。 一定要在任何地方删除“模糊”的东西。

然后:

python manage.py compilemessages

您需要重新启动服务器

答案 1 :(得分:0)

对于较新版本的 Django(例如 3.2):

  1. 在根目录下创建文件夹“locale”

  2. 运行命令django-admin makemessages -l ru

  3. 更新您的语言文件(位于语言环境文件夹中)

  4. 运行django-admin compilemessages

  5. 在 settings.py 中配置 LOCALE_PATHS,否则你将看不到翻译:

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

    LANGUAGE_CODE = 'ru'

答案 2 :(得分:0)

修复空的 po 文件:

  1. 确保您对模板进行了必要的更改,如documentation 中所述。请确保您正在检查项目的正确文档版本。
  2. 您可以在您的 locale 目录中添加一个 templates 目录并将其路径添加到 LOCALE_PATHS 列表中。 (可选,但有助于确保模板目录包含在步骤 4 中)
  3. 转到 project_dir(您应该在要翻译的文件的父目录中运行下一个命令)
  4. 运行命令 django-admin makemessages -l ru