Flask Babel


1. Basic Internationalization (I18n) with Flask-Babel

from flask import Flask, render_template
from flask_babel import Babel

app = Flask(__name__)
babel = Babel(app)

@babel.localeselector
def get_locale():
    return request.accept_languages.best_match(["en", "fr"])

@app.route("/")
def index():
    return render_template("index.html")

2. Set Default Locale

babel.default_locale = "en"

3. Automatic Contextualization

with app.test_request_context():
    get_locale() == "en"

4. Get Current Locale

5. Get List of Available Locales

6. Set Default Timezone

7. Automatic Contextualization (Timezones)

8. Get Current Timezone

9. Get List of Available Timezones

10. Custom Locale Selector

11. Using the gettext Function

12. Using the ngettext Function (Pluralization)

13. Using Lazy Translation Objects

14. Using the translate Filter in Templates

15. Using the ngettext Filter in Templates (Pluralization)

16. Lazy Translation Objects in Templates

17. Custom Translation Functions

18. Translations in Different Files

19. Using the lazy_gettext Function in Forms

20. Translations in Forms with Validation Messages

21. Automatic Translation Context in Forms

22. Flask-WTForms Integration with Lazy Translation

23. Flask-Admin Integration

24. Jinja2 Integration

25. Flask-Script Integration

26. Loading Translations from Files

27. Using Translations from Different Directories

28. Get the Translation for a Specific Domain

29. Translation Extensibility

30. Using Translations with String Formatting

31. Dynamic Translation Context

32. Setting Locale in the Query String

33. Translation for Multiple Languages

34. Using Translations in SQL Queries

35. Custom Timezone Selector

36. Using the Render Function to Format Dates