-
- if collator is None or collator.locale != locale_code:
- 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:
- break
- else:
- raise collate.errors.InvalidLocaleError(locale_code)
-
-def get_locale():
- return collator.locale
-
-def set_backend(backend):
- pass
+ 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:
+ c = backend.Collator(locale, encoding_)
+ except collate.errors.InvalidLocaleError:
+ pass
+ if c is not None:
+ collator = c
+ default = backend