我正在使用Flask-Babel来翻译字符串。
在一些模板中,我从数据库(Postgresql)中读取字符串。如何使用Flask-Babel翻译数据库中的字符串?
发布于 2014-02-28 23:47:33
不可能在数据库翻译中使用Babel,因为数据库内容是动态的,而babel翻译是静态的(它们没有改变)。
如果从数据库中读取字符串,则必须将翻译保存在数据库中。您可以创建一个转换表,类似于(locale,source,destination),并通过查询获得翻译值。
发布于 2016-11-30 18:15:54
我建议在数据库中有一个工程文本。在您的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文件中。
https://stackoverflow.com/questions/21497489
复制相似问题