Не может заставить локализацию Django работать

Я искал несколько потоков и отчетов об ошибках, но не мог найти решение.

Я изменил локаль своего проекта Django к pt-br но это не имело никакого значения. Я исключил все поля ввода и выводы для локализации дат и чисел, особенно DECIMAL_SEPARATOR и THOUSAND_SEPARATOR, включая в администраторе API. Но даты там продолжают появляться как yyyy-mm-dd и десятичный разделитель"", генерирует ошибка на вход.

Я сделал все, что я нашел: измененный настройки, добавленные классы промежуточного программного обеспечения локализации, включили USE_I18N и USE_L10N, который попробовали для принуждения setlocale вручную, и т.д. Вот проблеск моего settings.py:

LANGUAGE_CODE = 'pt-br'
USE_I18N = True
USE_L10N = True

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.transaction.TransactionMiddleware',
)

DATE_FORMAT = 'd/m/Y'
SHORT_DATE_FORMAT = 'd/m/Y'
DATE_INPUT_FORMATS = ('%d/%m/%Y', '%d/%m/%y', '%Y-%m-%d')
DECIMAL_SEPARATOR = ','
THOUSAND_SEPARATOR = '.'

Действительно ли странно, что моя консоль Python, работающая на Windows бразильского португальского, производит это?

>>> locale.setlocale(locale.LC_ALL, ('pt_BR', 'cp1252'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\locale.py", line 478, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

Какие-либо идеи того, что я забыл пробовать?

1
задан Augusto Men 26 July 2010 в 20:01
поделиться

1 ответ

Windows использует различные идентификаторы локали. Должно работать следующее (получено из таблицы на сайте Microsoft):

In [15]: locale.setlocale(locale.LC_ALL, 'Portuguese_Brazil')
Out[15]: 'Portuguese_Brazil.1252'
1
ответ дан 2 September 2019 в 22:44
поделиться
Другие вопросы по тегам:

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