我有没有办法在我的javascript文件中包含flask jinja封闭的babel翻译并将其加载,就好像它是一个静态文件一样?或者是我这样做的唯一方法是将我的代码的这部分包含在.html模板文件中?我问,因为我想抽出我的代码的这部分,所以它可以在其他领域重用,但如果我这样做,我会失去翻译,无法获得必要的信息。
请指教。 我想导入javascript文件,但也可以使用
var x = {{_('translation here')}}
在我的javascript文件中,也可以通过babel提取翻译,然后通过.po文件进行国际化。
谢谢!干杯
答案 0 :(得分:0)
我尝试了很多让我的js文件中的文本转换为文本,然后将脚本导入到html中:
<script src="myscripts.js"></script>
所以我发现了一些很好的链接:
所以我明白我需要制作自己的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' %}
我知道这很糟糕,但是现在唯一对我有用的想法
答案 1 :(得分:-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)