gpt4 book ai didi

python - 使用 babel、django 和 jinja2 提供 i18n js 服务

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:17 24 4
gpt4 key购买 nike

使用 django,使用 jinja2 进行渲染,使用 babel 进行消息提取

我有一些js文件需要国际化。我无法找出从它们中提取消息的语法,这也能让 jinja2 渲染它们。要么 jinja2 必须学习读取可提取的语法,要么我必须从 jinja2 可以渲染的东西中提取。 (或者,完全采用另一种方式)

提取

如果我在js中用

标记消息
gettext('message')

提取得很好。

渲染

但是jinja2不会取代js中的gettext调用(我在返回js模板之前使用jinja2渲染它们) - 它需要类似的东西

{% trans %}message{% endtrans %}

但是,该语法不能用于提取消息。

Babel 正在使用 babel.messages 中的函数 extract_javascript 来提取消息,该函数看起来不适合处理这种类型的标签。

最佳答案

好吧,看起来我可以这样做:

{{gettext("message")}} 

(不定义 gettext)

在 JS 中,babel 会解压,jinja2 会替换它就可以了。

不过,请注意引用。你不能这样做:

'{{gettext("message")}}'

因为 extract_javascript 不会读取它。但是,只要安全地渲染它们,您就可以将引号放在里面:

{{gettext("'message'")|safe}}

因此,请您的翻译人员确保在原文中找到引文的任何地方都留下引文。

关于python - 使用 babel、django 和 jinja2 提供 i18n js 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10647449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com