I'm using Flask Babel to translate my Flask Python app. At moment I only have the translation mechanism by locale but what if the user besides his location wants to change the location to english? Is there any way to change the locale manually?
This is my Flask Babel function that gets the user locale and returns the language. It is on my __init__.py file.
@babel.localeselector
def get_locale():
print "LANGUAGE PT"
#return 'de' -> manually change to the desired language
request.accept_languages.best_match(LANGUAGES.keys())
I really appreciate any help!
Best regards
A good way to do this is shown in the docs of Flask-Admin
@babel.localeselector
def get_locale():
if request.args.get('lang'):
session['lang'] = request.args.get('lang')
return session.get('lang', 'en')
Now, you could try a French version of the application at: http://localhost:5000/admin/?lang=fr.
You can still specify the default language via BABEL_DEFAULT_LOCALE.
来源:https://stackoverflow.com/questions/41686778/change-language-flask-babel-manually