Trabajo en una aplicación que usa textos de diferentes idiomas, por lo tanto, para ver o informar, algunos textos (cadenas) deben ordenarse en un idioma específico.Ordenando la lista de cadenas con configuración regional específica en python
Actualmente tengo una solución de jugar con la configuración regional a nivel mundial, lo que es malo, y no quiero ponerlo en producción:
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
La documentación oficial local pitón dice explícitamente que guardar y restaurar es una mala idea, pero no da ninguna sugerencia: http://docs.python.org/library/locale.html#background-details-hints-tips-and-caveats