我对 Django 很陌生,我正在使用 i18n 开发一个项目,问题是我已经使用翻译了一些变量 .manage.py makemessages / compilemessages
在我的模板文件上,但是当我使用 {% trans "my string" %}
我也得到了同样的"my string"
对于所有语言。
我究竟做错了什么?这是 views.py 和 idioma.html 的代码
views.py:
#这里有一些代码...
def idioma(request):
output = _("Mensaje en espanol")
return render_to_response( 'idioma/idioma.html', { 'idioma' : output }, context_instance = RequestContext(request) )
idioma.html
{% load i18n %}
< form action="/i18n/setlang/" method="post">
{% csrf_token %}
< input name="next" type="hidden" value="{{ redirect_to }}" />
< select name="language" >
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
< option value="{{ language.code }}">
{{ language.name_local }} ({{ language.code }})
< /option>
{% endfor %}
</select>
< input type="submit" value="Go" />
< /form>
La cadena es: {% trans idioma %}
{% trans "carro" %}
The application translates the idioma variable from the .po and .mo files in locale/path/to/language/
但它不会翻译 {% trans "carro" %} 字符串。
这是怎么回事?
感谢您的帮助!!!!
您是否手动翻译了 .po 中的字符串?
makemessages
只需将“carro”添加到 .po 中,在 .po 文件中生成类似的内容
#: idioma.html:45
msgid "carro"
msgstr ""
然后你必须编辑 .pomanually添加该字符串的翻译,如下所示:
#: idioma.html:45
msgid "carro"
msgstr "car"
然后,当您完成所有 .po 字符串的翻译后,您可以运行compilemessages
:它将编译您的翻译。
Note:永远记得寻找,fuzzy
翻译。
如果你的 .po 中有这样的东西
#: idioma.html:45
#, fuzzy
msgid "carro"
msgstr "car"
这意味着 django 由于某种原因尝试自行翻译字符串(当您已经在一段不再使用的代码中使用该字符串时,通常会发生这种情况).
您必须检查翻译并删除#, fuzzy
行:任何标记为的翻译#, fuzzy
不会在您的页面中进行翻译。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)