From e603288bf2b73d3acd2961cbefe02bce853c7c0c Mon Sep 17 00:00:00 2001 From: Benjamin Sigonneau Date: Wed, 2 Jun 2021 23:58:24 +0200 Subject: [PATCH] Set locale based on Accept-Language header --- balises.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/balises.py b/balises.py index c83e12b..258d352 100755 --- a/balises.py +++ b/balises.py @@ -5,6 +5,7 @@ from configparser import ConfigParser import datetime as dt import bs4 +import locale import requests import os import urllib.parse @@ -12,10 +13,6 @@ import urllib.parse from peewee import * from bottle import hook, request, route, run, view -# Set the locale for all categories to the user’s default setting (eg. LANG -# environment variable) -import locale -locale.setlocale(locale.LC_ALL, '') # ------------------------------------------------------------ @@ -144,6 +141,16 @@ def results_page(): start_time=time, 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') def connect_to_db(): db.connect()