FastAPI Babel


1. Set Up a Multilingual API with FastAPI-Babel

from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi_babel import Babel, gettext

app = FastAPI()
babel = Babel(app)

@app.get("/")
async def home(request: Request):
    return HTMLResponse(gettext("Welcome to the API!"))

2. Display Translated Text in HTML Templates

from fastapi import FastAPI, Request, TemplateResponse
from fastapi_babel import Babel, gettext

app = FastAPI()
babel = Babel(app)

@app.get("/")
async def home(request: Request):
    return TemplateResponse("index.html", {"message": gettext("Welcome to the API!")})

3. Get Current Language Code and Name

4. Handle Language Negotiation in Requests

5. Get All Supported Languages

6. Load Custom Translations from File

7. Load Translations from Database

8. Extend Default Message Extraction

9. Use Babel's Integration for Jinja2 Templates

10. Use Babel's Integration for Starlette Templates

11. Set Default Language

12. Override Default Translation Function

13. Use Pluralization

14. Use I18n Middleware

15. Use Locale Selector

16. Get Current Locale as a String

17. Get Current Locale as a Tuple

18. Set Fallback Language

19. Set Default Timezone

20. Get Current Timezone

21. Set Date Format

22. Get Current Date Format

23. Set Number Format

24. Get Current Number Format

25. Set Currency Format

26. Get Current Currency Format

27. Set Terrirtory

28. Get Current Terrirtory

29. Test Internationalization

30. Set Gettext Domain

31. Get List of Supported Timezones

32. Use Lazy Translation

33. Use Relaxed Translation Validation

34. Add Custom Extractor

35. Use Babel's Integration for SQLAlchemy

36. Use Babel's Integration for Pyramid