从数据库flask-babel翻译字符串

时间:2014-02-01 11:31:16

标签: python flask babel flask-babel

我正在使用Flask-Babel来翻译字符串。

在某些模板中,我正在从数据库中读取字符串(postgresql)。 如何使用Flask-Babel从数据库中翻译字符串?

2 个答案:

答案 0 :(得分:2)

在数据库翻译中不可能使用Babel,因为数据库内容是动态的,而且babel翻译是静态的(它们没有改变)。

如果从数据库中读取字符串,则必须将翻译保存在数据库中。您可以创建转换表,例如(区域设置,源,目标),并通过查询获取转换后的值。

答案 1 :(得分:1)

我建议在数据库中使用工程文本。 在您的HTML文件中(或者最好是包含在任何地方的HTML),您有一个包含翻译的脚本:

<script>
  translations = { 'WillBringOwnFood': {{ _('Guest will bring their own food')}},
                   'WantToShareBathroom': {{ _('Guest would like to share bathroom with stranger')}}  };
</script>

现在,当您收到工程字符串时,只需在translations字典中进行查找即可。 所以.js文件看起来像这样:

function receiveDBCallback(response) {
    $('.guestWishes').text(translations[response]);
}

然后你可以像往常一样使用babel来提取你的字符串。 并且您将所有翻译都放在相同的.po / mo文件中。