我正在使用django 1.7& python 2.7。
是否可以连接django翻译字符串?
例如,我有以下翻译字符串:
{% trans "institution< br />country / region< br />location< br />mm/yyyy - mm/yyyy (X years, X months)< br />< br />" as overseas_experience_suggestion_09 %}
是否可以将上面的长翻译字符串分解为多个单独的字符串,然后连接字符串并仍然将连接的字符串显示为overseas_experience_suggestion_09
模板变量?
这基本上就是我所要求的。
以下5个单独的翻译字符串以某种方式连接为overseas_experience_suggestion_09
?
{% trans "institution< br />" %}
{% trans "country / region< br />" %}
{% trans "location< br />" %}
{% trans "mm/yyyy - mm/yyyy" %}
{% trans "(X years, X months)< br />< br />" %}
`as overseas_experience_suggestion_09`
我查看了django docs,搜索了google和SO,但是da nada。有concatenating translation string in python的引用,但我不认为我可以在django模板中使用它。
我希望有一些可以帮助我的工作。
答案 0 :(得分:1)
您可以在Django模板中组合多个字符串/变量:
{% with foo='foo'|add:'bar' %}
{{ foo }}
{% endwith %}
您可以在技术上做与翻译类似的事情:
{% trans 'foo'|add:'bar'|add:'things' %}
但请不要尝试这样做。
原因是因为每个翻译字符串必须存在于您的本地(例如在您的消息文件中)。如果您只是将它们组合在一起但是不包含本地的完整字符串,Django将无法翻译它。因此,我建议单独留下单独的字符串:
{% trans 'foo' %}{% trans 'bar' %}
为了让生活更轻松,您可以随时将其包含在单独的模板文件中,您可以将其包含在其他模板中,因此请遵循DRY:
{# my-translation.html #}
{% trans 'foo' %}{% trans 'bar' %}
{# foo.html #}
{% include 'my-translation.html' %}
i18n docs https://docs.djangoproject.com/en/1.9/topics/i18n/和模板过滤器文档https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#std:templatefilter-add
中的更多信息