私はさまざまな言語のテキストを使用するアプリケーションで作業しているため、表示またはレポートの目的で、一部のテキスト (文字列) を特定の言語でソートする必要があります。
現在、グローバルロケール設定をいじる回避策がありますが、これは悪いことであり、本番環境には入れたくありません。
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 ロケール ドキュメントでは、保存と復元は悪い考えであると明示的に述べられていますが、提案はありません。