Python - локаль по умолчанию не работает

Это - ситуация:

In [1]: import datetime

In [2]: import locale

In [3]: locale.getlocale()
Out[3]: ('es_ES', 'UTF-8')

In [4]: locale.getdefaultlocale()
Out[4]: ('es_ES', 'UTF-8')

In [5]: datetime.datetime.strftime(datetime.datetime.today(), '%B')
Out[5]: 'July'

Но вывод должен быть julio

Если я установил локаль, то она работает

In [6]: locale.setlocale(locale.LC_ALL, 'es_ES.UTF8')
Out[6]: 'es_ES.UTF8'

In [7]: datetime.datetime.strftime(datetime.datetime.today(), '%B')
Out[7]: 'julio'

Это происходит и в Python2 (2.7.10) и в Python3 (3.5.0 +)

Системная локаль установлена на испанский язык

LANG=es_ES.UTF-8
LANGUAGE=
LC_CTYPE="es_ES.UTF-8"
LC_NUMERIC=es_ES.UTF-8
LC_TIME=es_ES.UTF-8
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY=es_ES.UTF-8
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER=es_ES.UTF-8
LC_NAME=es_ES.UTF-8
LC_ADDRESS=es_ES.UTF-8
LC_TELEPHONE=es_ES.UTF-8
LC_MEASUREMENT=es_ES.UTF-8
LC_IDENTIFICATION=es_ES.UTF-8
LC_ALL=

Править:

Наблюдение locale вывод, я понял, что LC_ALL не был установлен. Я проверил /etc/default/locale как это предположено здесь, и я нашел смесь локалей.

LANG="es_ES.UTF-8"
LC_ALL=
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"

Возможно, потому что я обновил от 15,04 до 15,10?. Так или иначе я заполнился LC_ALL и измененная остальная часть переменных к es_ES, выполнение снова locale-gen как корень. Однако даже после перезагружают систему, ситуация является тем же.

2
задан 13 April 2017 в 15:23

1 ответ

Обычно Вы не должны устанавливать LC_ALL постоянно как глобальная переменная среды. Если Вы делаете это на рабочем столе, Вы делаете графический интерфейсы пользователя для установки языков/локалей бесполезными.

Что касается Вашей программы Python, Вам нужна эта строка:

locale.setlocale(locale.LC_ALL, '')

Это делает локаль, т.е. вывод эти locale команда, эффективная в рамках программы Python.

1
ответ дан 2 December 2019 в 04:55

Другие вопросы по тегам:

Похожие вопросы: