views.py 506 B

12345678910111213141516171819
  1. from flask import abort, redirect, session
  2. from flask_babel import refresh
  3. from ..baseviews import BaseView, expose
  4. class LocaleView(BaseView):
  5. route_base = "/lang"
  6. default_view = "index"
  7. @expose("/<string:locale>")
  8. def index(self, locale):
  9. if locale not in self.appbuilder.bm.languages:
  10. abort(404, description="Locale not supported.")
  11. session["locale"] = locale
  12. refresh()
  13. self.update_redirect()
  14. return redirect(self.get_redirect())