使用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"
因此,寻找msgstr ""
我得到了误报&#34; (即实际翻译的字符串,但其翻译开始下一行)。有数千条线,经常这样。
有任何聪明的建议吗?
由于
答案 0 :(得分:2)
假设您正在使用一些受欢迎的编辑器:
msgstr ""\n\n
msgstr ""\n\n
都可以使用msgstr ""\r\n\r\n
sed -i '/msgstr ""/{N;N; s/\n\n/\n# translate me!\n\n/g}' django.po
然后在文件中搜索# translate me!
条评论。答案 1 :(得分:1)
检查缺少的翻译和其他错误的最简单方法是使用“ msgcmp”实用程序。实际上,它应该用于将翻译文件(.po)与模板(.pot)进行比较,但是将.po文件与自身进行比较非常高兴:
msgcmp path/to/nl.po path/to/nl.po
可以解决问题,甚至在任何翻译被标记为模糊的情况下也会失败(除非您指定--use-fuzzy)。
答案 2 :(得分:0)
您可以使用
msgfmt --statistics --output=/dev/null locale/django.po
查看有多少缺失的翻译(如果有),以及
msgattrib --untranslated locale/fr/LC_MESSAGES/django.po
列出未翻译的消息。