-import locale
-
import collate.errors
+import collate._locale
+try:
+ import collate.codepoint as default
+except ImportError:
+ pass
try:
import collate.syslocale as default
+except ImportError:
+ pass
+try:
import collate.uca as default
+except ImportError:
+ pass
+try:
import collate.icu as default
except ImportError:
pass
collator = None
-def set_locale(locale_code, strict=False):
+def set_default(backend=None, locale=None, encoding=None):
global collator
-
- if collator is None or collator.locale != locale_code:
+ global default
+
+ if backend is None:
+ backend = default
+ locales = collate._locale.localelist(locale)
+ c = None
+ for locale in locales:
+ locale, encoding_ = collate._locale.getpair(locale, encoding)
try:
- collator = default.Collator(locale_code, strict)
+ c = backend.Collator(locale, encoding_)
except collate.errors.InvalidLocaleError:
- if strict:
- raise
- else:
- default_locale = locale.getdefaultlocale()[0]
- try:
- collator = default.Collator(default_locale, strict)
- except collate.errors.InvalidLocaleError:
- if not collator:
- raise
-
-def get_locale():
- return collator.locale
-
-def set_backend(backend, strict=False):
- pass
+ pass
+ else:
+ break
+ if c is not None:
+ collator = c
+ default = backend
def key(string):
return collator.key(string)
-set_locale(locale.getdefaultlocale()[0])
+def cmp(a, b):
+ return collator.cmp(a, b)
+
+set_default()