Sortowanie listy łańcuchów z określonymi ustawieniami narodowymi w pythonie

Pracuję nad aplikacją, która używa tekstów z różnych języków, więc do celów przeglądania lub raportowania niektóre teksty (ciągi) muszą być sortowane w określonym języku.

Obecnie mam obejście powodujące problemy z globalnymi ustawieniami regionalnymi, które są złe, i nie chcę go wprowadzać do produkcji:

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

Oficjalna dokumentacja ustawień regionalnych Pythona wyraźnie mówi, że zapisywanie i przywracanie jest złym pomysłem, ale nie daje żadnych sugestii:http://docs.python.org/library/locale.html#background-details-tints-tips-and-caveats

questionAnswers(3)

yourAnswerToTheQuestion