Django i18n 翻译中的性别问题
我需要解决一个性别翻译的问题,但Django似乎还没有实现gettext上下文...
我需要从英语翻译:
<p>Welcome, {{ username }}</p>
在西班牙语中有两种形式,分别对应每个性别。如果用户是男性:
<p>Bienvenido, {{ username }}</p>
如果是女性:
<p>Bienvenida, {{ username }}</p>
注意这个区别(bienvenido/bienvenida)
有没有什么办法可以做到这一点?
谢谢,
H.
4 个回答
2
在等待上下文支持的同时,一个简单的替代方法是稍微修改西班牙语句子,使用一个不受性别影响的问候语。比如,你可以用“hola”或者其他类似的词。
10
我解决这个问题的方法是:
{% if profile.male %}
{% blocktrans with profile.name as male %}Welcome, {{ male }}{% endblocktrans %}
{% else %}
{% blocktrans with profile.name as female %}Welcome, {{ female }}{% endblocktrans %}
{% endif %}
4
Django其实就是用Python写的,所以如果你需要的话,可以直接使用Python的gettext功能。我觉得你完全可以写一个{% gender_trans [gender] %}这样的标签。