Build a translation facility for FastAPI

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Frédéric Mangano-Tarumi 2020-07-20 16:25:28 +02:00 committed by Lukas Fleischer
parent e323156947
commit 239988def7
2 changed files with 33 additions and 9 deletions

View file

@ -16,3 +16,25 @@ class Translator:
self._localedir,
languages=[lang])
return self._translator[lang].gettext(s)
def get_translator_for_request(request):
"""
Determine the preferred language from a FastAPI request object and build a
translator function for it.
Example:
```python
_ = get_translator_for_request(request)
print(_("Hello"))
```
"""
lang = request.cookies.get("AURLANG")
if lang is None:
lang = aurweb.config.get("options", "default_lang")
translator = Translator()
def translate(message):
return translator.translate(message, lang)
return translate