Сортировка списка строк с определенной локалью в python
Я работаю над приложением, которое использует тексты на разных языках, поэтому для просмотра или составления отчетов некоторые тексты (строки) необходимо отсортировать на определенном языке.
В настоящее время у меня есть обходной путь с глобальными настройками локали, что плохо, и я не хочу запускать его в производство:
default_locale = locale.getlocale(locale.LC_COLLATE)
def sort_strings(strings, locale_=None):
if locale_ is None:
return sorted(strings)
locale.setlocale(locale.LC_COLLATE, locale_)
sorted_strings = sorted(strings, cmp=locale.strcoll)
locale.setlocale(locale.LC_COLLATE, default_locale)
return sorted_strings
Официальная документация по языку Python прямо говорит, что сохранение и восстановление - плохая идея, но не дает никаких предложений:http://docs.python.org/library/locale.html#background-details-hints-tips-and-caveats