
Quand une exception était lancée par le code du context, celle-ci était catchée par le try censé récupérer les prob de locales manquantes. Le code faulty était alors lancé une deuxième fois alors qu'il n'aurait pas du. Bref, ça plantait avec une erreur incompréhensible.
27 lines
674 B
Python
27 lines
674 B
Python
# -*- coding: utf-8 -*-
|
|
# Source:
|
|
# http://stackoverflow.com/questions/18593661/how-do-i-strftime-a-date-object-in-a-different-locale
|
|
import locale
|
|
import threading
|
|
|
|
from datetime import datetime
|
|
from contextlib import contextmanager
|
|
|
|
|
|
LOCALE_LOCK = threading.Lock()
|
|
|
|
@contextmanager
|
|
def setlocale(name):
|
|
with LOCALE_LOCK:
|
|
saved = locale.setlocale(locale.LC_ALL)
|
|
try:
|
|
current_val = locale.setlocale(locale.LC_ALL, name)
|
|
except:
|
|
current_val = saved
|
|
print "Warning: Failed setting locale %r" % name
|
|
|
|
try:
|
|
yield current_val
|
|
finally:
|
|
locale.setlocale(locale.LC_ALL, saved)
|
|
|