Replace Flask-BabelEx with Flask-Babel #2460
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Flask-BabelEx has been deprecated and archived. The original Flask-Babel is now alive and active again, so it makes sense to convert Flask-Admin back to using that library instead from v2.0.0.
Although Flask-Admin has claimed to support Flask-Babel at the same time as Flask-BabelEx, there was one semi-significant issue that I came across with only Flask-Babel: if the package is installed, but Flask-Babel is never initialised against the Flask app, then Flask-Admin will crash. Flask-BabelEx would silently fall back to the untranslated strings, but Flask-Admin does a hard lookup on
app.extensions['babel']
and dies.This led to a series of test changes in order to make sure that Flask-Babel is correctly set up for all tests. If
Flask-Babel
is not installed, this is a noop, which should also make it easier to run tests as a user that does not use Flask-Babel - something that does not currently happen, leaving a bit of a gap in our test coverage asflask_admin.babel
has two very distinct code paths pivoted on whether the package is installed (note installed, not initialised against a Flask app)closes: #2447