Set locale based on Accept-Language header

This commit is contained in:
2021-06-02 23:58:24 +02:00
parent 36d98ae337
commit e603288bf2

View File

@@ -5,6 +5,7 @@ from configparser import ConfigParser
import datetime as dt import datetime as dt
import bs4 import bs4
import locale
import requests import requests
import os import os
import urllib.parse import urllib.parse
@@ -12,10 +13,6 @@ import urllib.parse
from peewee import * from peewee import *
from bottle import hook, request, route, run, view from bottle import hook, request, route, run, view
# Set the locale for all categories to the users default setting (eg. LANG
# environment variable)
import locale
locale.setlocale(locale.LC_ALL, '')
# ------------------------------------------------------------ # ------------------------------------------------------------
@@ -144,6 +141,16 @@ def results_page():
start_time=time, start_time=time,
end_time = '{:0>2}:00'.format(hour+1)) end_time = '{:0>2}:00'.format(hour+1))
@hook('before_request')
def set_locale():
"""Set the locale for all categories to the first lang in Accept-Language
header. Default to fr_FR.UTF-8
"""
accept_language = request.get_header('Accept-Language', 'fr-FR')
first_lang = accept_language.split(';')[0].split(',')[0]
lang = first_lang.translate(str.maketrans('-', '_')) + '.UTF-8'
locale.setlocale(locale.LC_ALL, lang)
@hook('before_request') @hook('before_request')
def connect_to_db(): def connect_to_db():
db.connect() db.connect()