Is there a preferred way to make a Flask application multilingual? Ideally, the solution would enable to @app.route
the same view to use different urls for each languages, like @app.route(en='/staff/', fr='/equipe/)
. I'm pretty confident I could hack something like that together, but an existing library would sure save me some time. Thanks.
Asked
Active
Viewed 1.5k times
25
2 Answers
25
I believe that Flask-Babel is what you are looking for.

Sean Vieira
- 155,703
- 32
- 311
- 293
-
Thanks, It looks very promising. – sharvey Aug 07 '10 at 17:58
-
6Unfortunately, a Flask-Babel doesn't handle multi-language routes. – tomasbedrich Apr 06 '17 at 12:14
1
You can achieve this by creating a decorator that decides which route to use.
def lang_route(en, fr, *args, **kwargs):
# Find out the user's language
lang = "en"
if lang == "en":
return app.route(en, *args, **kwargs)
if lang == "fr":
return app.route(fr, *args, **kwargs)
@lang_route(en="/staff", fr="/equipe")
def staff():
return "staff"

Guy Shefer
- 88
- 1
- 2
- 6