首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-Babel localeselector未被调用

Flask-Babel localeselector未被调用
EN

Stack Overflow用户
提问于 2019-12-28 04:35:51
回答 1查看 355关注 0票数 0

Flask-babel一次也不会调用它的localeselector。我正在使用应用程序工厂初始化我的应用程序。翻译文件夹在我的应用程序中,根据文档,它是由babel创建的。我还尝试将翻译目录移动到包含run.py的文件夹中,该文件夹调用工厂,但没有效果。

代码语言:javascript
复制
from flask import Flask, session, request
from myapp.text_fields import next_month
from myapp.config import Config
from flask_babel import Babel

babel = Babel()


def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    babel.init_app(app)

    from myapp.views import user
    from myapp.errors import errors

    app.register_blueprint(user)
    app.register_blueprint(errors)

    @babel.localeselector
    def get_locale():
        try:
            language = session['language']
        except KeyError:
            language = None
        if language is not None:
            return language
        return request.accept_languages.best_match(app.config['LANGUAGES'])

    @app.context_processor
    def inject_conf_var():
        return dict(
            MONTH=next_month(),
            AVAILABLE_LANGUAGES=app.config['LANGUAGES'],
            CURRENT_LANGUAGE=session.get('language',
                                         request.accept_languages.best_match(app.config['LANGUAGES'])))

    return app

以下是关于babel的配置部分:

代码语言:javascript
复制
BABEL_DEFAULT_LOCALE = 'pl'
LANGUAGES = ['pl', 'ua', 'ru', 'en']

到目前为止,我只遵守了EN,试图更改默认设置,但它也没有做任何事情。似乎babel找不到translations文件夹,我不确定如何解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-28 23:06:06

解决了这个问题,结果我不得不把本地选举人搬出工厂。由于我的大多数文本字段都是在服务端生成的,而不是forntend,因此我还必须在所有这些字段上使用lazy_text,因为它们是由端点调用的,而不是在端点中定义的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59505777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档