Как мне (в системе GNU / Linux) найти все доступные локали для использования с модулем locale
?
Единственное, что я нахожу рядом с модулем - это словарь locale_alias
с псевдонимами для локалей.
Иногда упоминается, где искать, какие у вас локали, но не все псевдонимы. На моей системе эта программа
#! /usr/bin/python3
import locale
for k, v in sorted(locale.locale_alias.items()):
if k.startswith('fr_') or v.startswith('fr_'):
print('{:20}{}'.format(k, v))
печать
c-french fr_CA.ISO8859-1
fr fr_FR.ISO8859-1
fr_be fr_BE.ISO8859-1
fr_ca fr_CA.ISO8859-1
fr_ch fr_CH.ISO8859-1
fr_fr fr_FR.ISO8859-1
fr_lu fr_LU.ISO8859-1
français fr_FR.ISO8859-1
fre_fr fr_FR.ISO8859-1
french fr_FR.ISO8859-1
french.iso88591 fr_CH.ISO8859-1
french_france fr_FR.ISO8859-1
игнорирует все локали utf-8, например 'fr_FR.utf8'
, которые действительно могут использоваться в качестве аргумента для locale.setlocale
. Из оболочки locale -a | grep "^fr_.*utf8"
дает
fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
fr_LU.utf8
показывает множество вариантов. (Конечно, можно запустить эту команду оболочки из Python, но я бы подумал, что есть способ сделать это напрямую из Python.)