- def __init__(self, locale, encoding):
- self._collator = collate.icu._ucol.Collator(locale)
- self.locale = self._collator.locale
+ """ICU-based collation."""
+
+ def __init__(self, locale, encoding=None):
+ locale, encoding = collate._locale.getpair(locale, encoding)
+ self._collator = collate.icu._ucol.Collator(locale)
+ self.locale = self._collator.locale
+ self.encoding = collate._locale.encoding(encoding)
+ if self._collator.used_default_information and locale != "C":
+ raise collate.errors.InvalidLocaleError(locale)