Format french dates without OS locales

This commit is contained in:
Yax 2025-06-21 17:05:01 +02:00
parent fccf551e60
commit a6136abba7

View file

@ -46,8 +46,10 @@ from pygments import highlight
from pygments.lexers import get_lexer_by_name from pygments.lexers import get_lexer_by_name
from pygments.formatters import html from pygments.formatters import html
# set user locale
locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8') FRENCH_WEEKDAYS = ['lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.', 'dim.']
FRENCH_MONTHS = ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin',
'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.']
# initialize markdown # initialize markdown
@ -99,9 +101,9 @@ def read_headers(text):
def rfc_2822_format(date_str): def rfc_2822_format(date_str):
"""Convert yyyy-mm-dd date string to RFC 2822 format date string.""" """Convert yyyy-mm-dd date string to RFC 2822 format date string."""
d = datetime.datetime.strptime(date_str, "%Y-%m-%d") d = datetime.datetime.strptime(date_str, "%Y-%m-%d")
dtuple = d.timetuple() weekday = FRENCH_WEEKDAYS[d.weekday()]
dtimestamp = time.mktime(dtuple) month = FRENCH_MONTHS[d.month - 1]
return utils.formatdate(dtimestamp) return f"{weekday}, {d.day:02d} {month} {d.year} {d.strftime('%H:%M:%S')} +0000"
def slugify(value): def slugify(value):
@ -193,7 +195,8 @@ def get_header_list_value(header_name, page_params):
def get_friendly_date(date_str): def get_friendly_date(date_str):
dt = datetime.datetime.strptime(date_str, "%Y-%m-%d") dt = datetime.datetime.strptime(date_str, "%Y-%m-%d")
return dt.strftime("%d %b %Y") french_month = FRENCH_MONTHS[dt.month - 1]
return f"{dt.day:02d} {french_month} {dt.year}"
def make_posts( def make_posts(