Я бы порекомендовал pyICU - привязки Python для богатой открытой библиотеки IBM ICU с открытым исходным кодом. Вы делаете объект Collator, например с:
collator = PyICU.Collator.createInstance(PyICU.Locale.getFrance())
и затем вы можете сортировать, например, список строк в кодировке utf-8 по правилам для французского языка, например используя thelist.sort(cmp=collator.compare)
.
Единственная проблема, с которой я столкнулся, заключалась в том, что я не нашел хорошей, готовой к употреблению версии PyICU плюс ICU для MacOSX - я закончил сборку и установку из источников: собственные источники ICU, 3.6, здесь - есть бинарные файлы для Windows и несколько версий Unix, но не для Mac; PyICU 0.8.1 от здесь .
За исключением этих проблем сборки / установки и несколько скудных документов для привязок Python, ICU - действительно находка, если вы выполняете значительный объем работы, связанной с i18n, и PyICU - очень полезный набор привязок к ней!