【问题标题】:translating strings from database flask-babel从数据库 flask-babel 翻译字符串
【发布时间】:2014-02-25 04:13:22
【问题描述】:

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

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

【问题讨论】:

    标签: python flask python-babel flask-babel


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我建议在数据库中包含工程文本。 在您的 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 文件中。

      【讨论】:

      • 谢谢!对我有很大帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多