Flask-BabelEx
raw JSON → 0.9.4 verified Fri May 01 auth: no python
Adds i18n/l10n support to Flask applications, based on Flask-Babel but updated for newer dependencies. Current version is 0.9.4, maintained sporadically. No fixed release schedule.
pip install flask-babelex Common errors
error ImportError: No module named flask_babelex ↓
cause Package not installed or installed as flask-babelex (with hyphen).
fix
Run 'pip install flask-babelex' and ensure no name conflict with flask_babel.
error ModuleNotFoundError: No module named 'flask.ext.babel' ↓
cause Old Flask extension import style no longer supported.
fix
Replace 'from flask.ext.babel import Babel' with 'from flask_babelex import Babel'.
error AttributeError: module 'flask_babelex' has no attribute 'gettext' ↓
cause Incorrect import from the submodule; should be from flask_babelex directly.
fix
Use 'from flask_babelex import gettext'.
Warnings
breaking Werkzeug 1.0.0 compatibility fix required; older versions may break with modern Werkzeug. ↓
fix Upgrade to flask-babelex >= 0.9.4.
gotcha Flask-BabelEx is a fork of Flask-Babel. Many Flask-Babel examples use 'flask.ext.babel' which no longer works; use 'flask_babelex' instead. ↓
fix Always import from flask_babelex (with underscore).
deprecated Support for Python 2 is dropped; only Python 3 is tested. ↓
fix Ensure Python 3.6+ environment.
Imports
- Babel
from flask_babelex import Babel - gettext
from flask_babelex import gettext - lazy_gettext
from flask_babelex import lazy_gettext
Quickstart
from flask import Flask
from flask_babelex import Babel
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'en'
babel = Babel(app)
from flask_babelex import gettext as _
@app.route('/')
def index():
return _('Hello World')
if __name__ == '__main__':
app.run()