"""Locale utility routines."""
+__all__ = ["localelist", "encoding", "getpair"]
+
import sys
try:
except ImportError:
codecs = None
-__all__ = ["localelist"]
-
def localelist(*locales):
"""Normalize and return a list of locales, with appended defaults.
added = set()
retlist = []
- for code in locales:
- if not code:
+ for locale_ in locales:
+ if not locale_:
continue
if locale is not None:
- code = locale.normalize(code)
+ locale_ = locale.normalize(locale_)
# Strip off encoding if present.
- code = code.split(".")[0]
- if code.lower() not in added:
- retlist.append(code)
- added.add(code.lower())
+ locale_ = locale_.split(".")[0]
+ if locale_.lower() not in added:
+ retlist.append(locale_)
+ added.add(locale_.lower())
# Strip off territory if present.
- code = code.split("_")[0]
- if code.lower() not in added:
- retlist.append(code)
- added.add(code.lower())
+ locale_ = locale_.split("_")[0]
+ if locale_.lower() not in added:
+ retlist.append(locale_)
+ added.add(locale_.lower())
return retlist
if fromlocale is not None:
return fromlocale
try:
- locale.setlocale(locale.LC_COLLATE, '')[1]
+ locale.setlocale(locale.LC_COLLATE, '')
except locale.Error:
pass
else:
return locale.getpreferredencoding() or sys.getdefaultencoding()
def getpair(locale_, encoding_):
+ """If encoding_ is unspecified, get the locale encoding."""
if "." in locale_:
if encoding_ is None:
locale_, encoding_ = locale_.rsplit(".", 1)