在 django `.po` 文件中查找丢失的翻译

FSp*_*FSp 5 django locale gettext internationalization

使用 Django,您可以使用django.utils.translation.ugettext....ugettext_lazy(以及一些模板标签)来处理本地化消息的翻译。

稍后,通过命令:django-admin.py makemessages -l <LANGUAGE>可以生成po包含原始字符串的文件,以便开发人员可以指定所需的翻译。

问题:是否有 django 命令或任何其他快速方法来找出哪些消息尚未翻译?

通常我会msgstr ""po文件中查找字符串,但这是不准确的,因为有些翻译是多行的,如下所示:

#file.py:xyz
msgid ""
"Some very long text"
msgstr ""
"The translation of some very long text"
Run Code Online (Sandbox Code Playgroud)

因此,寻找msgstr ""我得到“误报”(即实际翻译的字符串,但其翻译从下一行开始)。有一千行,这很常见。

有什么聪明的建议吗?

谢谢

Art*_*Art 6

假设您正在使用一些流行的编辑器:

  • 在大多数编辑器中,只需搜索 msgstr ""\n\n
  • 在windows下/用记事本,也许你需要类似的东西 msgstr ""\r\n\r\n
  • 你也可以尝试一些专业的编辑器,检查这个
  • 最终,您可以执行以下操作:sed -i '/msgstr ""/{N;N; s/\n\n/\n# translate me!\n\n/g}' django.po然后# translate me!在文件中搜索注释。


Yoa*_*ade 6

您可以使用

msgfmt --statistics --output=/dev/null locale/django.po
Run Code Online (Sandbox Code Playgroud)

查看有多少缺失的翻译(如果有),以及

msgattrib --untranslated locale/fr/LC_MESSAGES/django.po
Run Code Online (Sandbox Code Playgroud)

列出未翻译的消息。