Hi, The Python locale standard libraries has some oddities and (long-standing) bugs. Example oddity: SETlocale *returns* a locale; getlocale output cannot always be consumed by setlocale. Example bug: resetlocale fails in Windows. What is your opinion about the work-around code below?
import sys import os import locale as locale_ locale_.setlocale(locale_.LC_ALL, "") class PythonicLocale(object): LC_ALL = locale_.LC_ALL LC_CTYPE = locale_.LC_CTYPE def __init__(self, failsafe=False): self.failsafe = failsafe @property def locale(self): """Partial wrapper for locale in standard library""" # LANG and LC_ALL sometimes not set if not sys.platform.startswith("win"): if locale_.getlocale()[0] is None and self.failsafe: os.environ["LANG"] = "en_US" os.environ["LC_ALL"] = "en_US.UTF-8" # getlocale output cannot be consumed by setlocale return locale_.setlocale(locale_.LC_ALL) @locale.setter def locale(self, category_and_locale_tuple): locale_.setlocale(*category_and_locale_tuple) @locale.deleter def locale(self): if sys.platform.startswith("win"): # resetlocale() is broken in Windows locale_.setlocale(locale_.LC_ALL, "") else: locale_.resetlocale() def getdefaultlocale(self): return locale_.getdefaultlocale() if __name__ == "__main__": locale = PythonicLocale() # getter print locale.locale # setter locale.locale = (locale.LC_ALL, "german") print locale.locale # deleter del locale.locale # check if deleter worked print locale.locale Thanks! Regards, Albert-Jan ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ All right, but apart from the sanitation, the medicine, education, wine, public order, irrigation, roads, a fresh water system, and public health, what have the Romans ever done for us? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- https://mail.python.org/mailman/listinfo/python-list