blob: a476ecd87c901cd286d6340969b8b43b465ef95b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import gettext
import aurweb.config
class Translator:
def __init__(self):
self._localedir = aurweb.config.get('options', 'localedir')
self._translator = {}
def translate(self, s, lang):
if lang == 'en':
return s
if lang not in self._translator:
self._translator[lang] = gettext.translation("aurweb",
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
|