One way to do this is to create a dummy request context:
with app.request_context({'wsgi.url_scheme': "", 'SERVER_PORT': "", 'SERVER_NAME': "", 'REQUEST_METHOD': ""}):
from flask import g
from flask_babel import refresh
g.user = user
refresh()
print lazy_gettext(u"This text should be in your language")
Flask-Babel gets its language settings by calling @ babel.localeselector. My localeselector looks something like this:
@babel.localeselector
def get_locale():
user = getattr(g, 'user', None)
if user is not None and user.locale:
return user.locale
return en_GB
, g.user, refresh(), Flask-Babel