我有一些需要国际化的js文件。我无法弄清楚从它们中提取消息的语法,这也会让jinja2渲染它们。要么jinja2必须学会阅读可提取的语法,要么我必须从jinja2可以渲染的东西中提取。 (或者,完全以另一种方式这样做)
如果我使用
标记js中的消息gettext('message')
它提取得很好。
但jinja2不会替换js中的gettext调用(我在返回之前使用jinja2渲染js模板) - 它需要像
这样的东西{% trans %}message{% endtrans %}
但是,该语法不能用于提取消息。
Babel正在使用babel.messages中的extract_javascript函数来提取消息,这些消息看起来并不适合处理这种类型的标记。
答案 0 :(得分:1)
好吧,看起来我可以这样做:
{{gettext("message")}}
(没有定义gettext)
在JS和babel中将提取& jinja2将取代它。请注意引号。你做不到:
'{{gettext("message")}}'
因为extract_javascript不会读取它。但是,只要你安全地渲染它们,你就可以把引号放在里面:
{{gettext("'message'")|safe}}
因此,您的译员必须确保在原始版本的任何地方留下引文。