我正在使用 Flask-Babel 来翻译字符串。
在某些模板中,我正在从数据库(postgresql)中读取字符串。如何使用 Flask-Babel 翻译数据库中的字符串?
我正在使用 Flask-Babel 来翻译字符串。
在某些模板中,我正在从数据库(postgresql)中读取字符串。如何使用 Flask-Babel 翻译数据库中的字符串?
不可能在数据库翻译中使用 Babel,因为数据库内容是动态的,而 babel 翻译是静态的(它们没有改变)。
如果您从数据库中读取字符串,则必须将翻译保存在数据库中。您可以创建一个转换表,例如(语言环境、源、目标),并通过查询获取转换后的值。
我建议在数据库中有一个工程文本。在您的 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 文件中拥有所有翻译。