Update wiki links to the new short URL
[aur.git] / aurweb / l10n.py
bloba476ecd87c901cd286d6340969b8b43b465ef95b
1 import gettext
3 import aurweb.config
6 class Translator:
7 def __init__(self):
8 self._localedir = aurweb.config.get('options', 'localedir')
9 self._translator = {}
11 def translate(self, s, lang):
12 if lang == 'en':
13 return s
14 if lang not in self._translator:
15 self._translator[lang] = gettext.translation("aurweb",
16 self._localedir,
17 languages=[lang])
18 return self._translator[lang].gettext(s)
21 def get_translator_for_request(request):
22 """
23 Determine the preferred language from a FastAPI request object and build a
24 translator function for it.
26 Example:
27 ```python
28 _ = get_translator_for_request(request)
29 print(_("Hello"))
30 ```
31 """
32 lang = request.cookies.get("AURLANG")
33 if lang is None:
34 lang = aurweb.config.get("options", "default_lang")
35 translator = Translator()
37 def translate(message):
38 return translator.translate(message, lang)
40 return translate