python / django程序的国际化:如何在.po文件中实现占位符?

时间:2009-06-15 19:50:42

标签: django internationalization

E.g。在我的django来源中我有:

{% blocktrans %}You are a member since {{sincewhen}}{% endblocktrans %}

.po文件应该包含哪些内容? (就我所知,django docs没有解释这一部分)

.po格式是否适用于在不同编程语言编写的程序中使用的占位符?

编辑我已尝试过命令

django-admin.py makemessages -l de -e=html,py
django-admin.py compilemessages

由于我发现并描述了here的错误,因此无效。

修复此问题后,我可以使用上面的命令获取生成的消息文件(如果您有其他文件扩展名 - 相应地修改-e选项。

2 个答案:

答案 0 :(得分:1)

阅读本节:Message files

它解释了如何生成.po文件并举例说明:

django-admin.py makemessages -l de

请务必阅读整个部分,以了解如何生成/编辑这些文件。此外,如果您正在寻找一个很棒的工具来帮助您管理翻译(甚至使用Google翻译作为起点),请查看django-rosetta

答案 1 :(得分:1)

使用:

python manage.py makemessages -l <target_language>
(or makemessages -a for all languages)

这将自动在 po 中创建所有 msgid ,剩下的就是填写msgstr。

.po gettext 库使用的标准格式,几乎适用于所有现代编程语言。