collator = None
-def set_locale(locale_code, strict=False):
+def set_locale(locale_code):
global collator
if collator is None or collator.locale != locale_code:
- try:
- collator = default.Collator(locale_code, strict)
- except collate.errors.InvalidLocaleError:
- if strict:
- raise
+ for code in [locale_code,
+ locale_code.split("_")[0],
+ locale.getdefaultlocale()[0],
+ locale.getdefaultlocale()[0].split("_")[0],
+ None]:
+ try:
+ collator = default.Collator(code)
+ except collate.errors.InvalidLocaleError:
+ pass
else:
- default_locale = locale.getdefaultlocale()[0]
- try:
- collator = default.Collator(default_locale, strict)
- except collate.errors.InvalidLocaleError:
- if not collator:
- raise
+ break
+ else:
+ raise collate.errors.InvalidLocaleError(locale_code)
def get_locale():
return collator.locale
-def set_backend(backend, strict=False):
+def set_backend(backend):
pass
def key(string):
return collator.key(string)
+def cmp(string1, string2):
+ return collator.cmp(string1, string2)
+
set_locale(locale.getdefaultlocale()[0])