使用blocktrans进行翻译

时间:2011-07-08 11:48:41

标签: django

我正在使用以下blocktrans:

{% blocktrans with item|gender_text as gendertext %}
    This is {{gendertext}} item
{% endblocktrans %}

在我的.po文件中我有

msgid "This is %(gendertext)s item"
msgstr "Some translation ... %(gendertext)s"

对于英语以外的任何语言,我不想使用gendertext变量。所以我想要

msgstr "Some translation ..."

但是,当我从%(gendertext)s取消msgstr时,django_admin喊出来(编译消息时):

'msgstr' is not a valid Python format string, unlike 'msgid'. Reason: The string ends in the middle of a directive.
msgfmt: found 1 fatal error

此案例的解决方法是什么?

梅尔

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,Django正确地给出了这个错误beacsue,你的密钥应该适用于所有语言。例如,没有这样的情况:在英语中我有一个键gendertext但是在土耳其语我不需要那把钥匙。

一个简单的解决方案是将密钥保存在两种语言中,但如果您不想渲染,请将其保留为空。

除了您的问题,我强烈建议您使用rosetta申请,http://code.google.com/p/django-rosetta/进行翻译流程。