3

有没有办法让我在我的 javascript 文件中包含烧瓶 jinja 封闭的 babel 翻译并将其加载,就好像它是一个静态文件一样?还是我这样做的唯一方法是将这部分代码包含在 .html 模板文件中?我问是因为我想将这部分代码抽象出来,以便在其他领域重用,但如果我这样做,我会丢失翻译并且无法获得必要的信息。

请指教。我想导入 javascript 文件但也可以使用

var x = {{_('translation here')}}

在我的 javascript 文件中,还可以通过 babel 提取翻译,以便以后通过 .po 文件进行国际化。

谢谢!干杯

4

2 回答 2

2

我做了很多尝试让flask babel翻译我的js文件中的文本,然后将脚本导入到html中:

<script src="myscripts.js"></script>

所以我找到了一些很好的链接:

  1. js 中的 Flask-Babel 本地化字符串

  2. 通天塔.cfg

所以我明白我需要制作自己的 babel.cfg 文件:在标题中包含 [javascript: / .js] 。

虽然我做到了,并执行了代码:

pybabel extract -F babel.cfg -o messages.pot

它仍然没有从 javascript 翻译...所以现在我将脚本放在 html 中:

<html>
<script>
//my script with {{_('translating')}}
</script>
</html>

并在我需要脚本的地方包括这个html:

{% include 'myscript.html' %}

我知道这很可怕,但这是现在唯一对我有用的想法

于 2018-05-23T18:47:58.313 回答
-1

要在 js 中使用 jinja 表示法,你应该用 "" 包装它:

利用:

var x = "{{_('translation here')}}"

或者:

var x = "{{gettext('translation here')}}"

但我认为标准方法是从后端传递翻译:

from flask_babel import gettext
foo = gettext(a)
return render_template(HTML, a=a)
于 2017-09-21T16:40:08.190 回答