【问题标题】:Flask Babel: adding pycountry external localeFlask Babel:添加 pycountry 外部语言环境
【发布时间】:2018-03-21 11:17:44
【问题描述】:

我正在尝试从 pycountry 包中添加一个外部语言环境目录。

在初始化 Flask Babel 之前,我执行以下操作:

import pycountry
app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'translations;' + pycountry.LOCALES_DIR

但是,唉,这似乎还不够。例如,gettext('Germany') 将找不到翻译。

我认为问题可能在于pycountry 中的翻译结构。

~/.local/lib/python3.5/site-packages/pycountry/locales/pt/LC_MESSAGES$ ls
iso15924.mo   iso3166-3.mo  iso4217.mo   iso639-3.mo
iso3166-1.mo  iso3166.mo    iso639_3.mo

我是否需要指定我想要的,例如iso3166 文件?请参阅以下参考资料。

【问题讨论】:

    标签: flask flask-babel


    【解决方案1】:

    我还需要使用 flask babel 加载 pycountry 语言环境。

    为此,我查看了 flask-babel get_translations() 以了解他们如何加载翻译。

    无论如何,我有一些工作可以将它放在你的应用程序中。

    def hack_country_gettext(string):
        translations = support.Translations()
        catalog = translations.load(pycountry.LOCALES_DIR, [get_locale()], 'iso3166')
        translations.merge(catalog)
        return translations.ugettext(string)
    

    而不是_('Germany') 使用黑客功能@9​​87654325@

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多