假设我有一个Jinja2模板,我正在使用Flask-Babel来翻译我的项目.例如:
<p>The <em>best</em> way of using the Internet is to use <a href="{{ url_for('our_site') }}">our site</a>.</p>
所以我有一个带有链接和重点的句子.假设我想翻译我的句子.显而易见的方法是使用gettext()或{%trans%}标记:
<p>{% trans %}The {% endtrans %} <em>{% trans %}best{% endtrans %}</em> {% trans %}way of using the Internet is to use{% endtrans %} <a href="{{ url_for('our_site') }}">{% trans %}our site{% endtrans %}</a>{% trans %}.{% endtrans %}</p>
显然问题是这会将句子分成多个片段,这些片段不能很好地翻译.这将导致翻译人员考虑字符串“The”,“best”,“使用互联网的方式是使用”,“我们的网站”作为所有单独的字符串,加上标点符号.当然,译者会想要重构句子,并选择分别链接和强调的词语.
解决方法
您可以使用gettext()和安全过滤器
{{ gettext('The <em>best</em> solution') | safe }}
http://jinja.pocoo.org/docs/2.9/templates/#list-of-builtin-filters
然后,您的翻译人员可以安排标签.
如果你想让翻译器的内容更简单,你可以添加一个自定义降价过滤器并使用在短语中添加简单格式的过滤器,请参阅此处获取示例https://gist.github.com/glombard/7554134