AttributeError:“Babel”对象没有属性“localeselector”

Imr*_*23A 7 python babeljs

我尝试用“babel”翻译我的网络应用程序,但遇到了错误:“AttributeError:“Babel”对象没有属性“localeselector””我使用 python 3.11.1 和 Babel 2.11.0 这是与问题。

from flask_babel import Babel, get_locale, gettext

@babel.localeselector
def determine_locale():
    if 'language' in session:
        return session['language']
    return request.accept_languages.best_match(['en', 'es'])
Run Code Online (Sandbox Code Playgroud)

我使用命令 promt 成功创建了所有文件,例如(messages.pot、messages.po 和 messages.mo)。我认为我对装饰器本身了解甚少,并且不知道在哪里寻找解决方案。

我尝试使用不同的方式导入 localeselector,并从使用它的人那里阅读了很多示例。但仍然不明白我错过了什么步骤。

Imr*_*23A 11

@babel.localeselectorFlask在我的和版本中不起作用flask_babel。改用init_app

babel.init_app(app, locale_selector=get_locale)
Run Code Online (Sandbox Code Playgroud)

并确保您get_locale()在此调用之前定义了 func

另请参阅Flask-Babel:get_locale() 似乎不起作用