-def _get_collator(backend, locale_code):
- for code in [locale_code,
- locale_code.split("_")[0],
- locale.getlocale(locale.LC_COLLATE)[0],
- locale.getlocale(locale.LC_COLLATE)[0].split("_")[0],
- locale.getdefaultlocale()[0],
- locale.getdefaultlocale()[0].split("_")[0],
- None]:
- try:
- return default.Collator(code)
- except collate.errors.InvalidLocaleError:
- pass
-
-def set_locale(locale_code):
- global collator
- global preferred_locale
-
- preferred_locale = locale_code
- if collator is None or collator.locale != locale_code:
- c = _get_collator(default, locale_code)
- if c is not None:
- collator = c
- else:
- raise collate.errors.InvalidLocaleError(locale_code)
-
-def set_backend(backend):