J'ai recherché plusieurs threads et rapports de bug, mais je n'ai pas trouvé de solution.Impossible de faire fonctionner la localisation de Django
J'ai changé les paramètres régionaux de mon projet Django en pt-br
mais cela n'a fait aucune différence. J'ai exclu tous les champs d'entrée et les sorties pour localiser les dates et les nombres, en particulier DECIMAL_SEPARATOR
et THOUSAND_SEPARATOR
, y compris dans l'API d'administration. Mais les dates continuent à apparaître comme yyyy-mm-dd
et le séparateur décimal "," génère une erreur lors de l'entrée.
Je l'ai fait tout ce que j'ai trouvé: changé les paramètres, ajoutés les classes de middleware de localisation, a permis USE_I18N et USE_L10N, a essayé de forcer setlocale manuellement, etc. Voici un aperçu de mon 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 = '.'
Est est-ce bizarre que ma console Python fonctionnant sur un Windows portugais brésilien produise ceci?
>>> 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
Des idées de ce que j'ai oublié d'essayer?
Eh bien, setlocale a fait le travail, mais cela n'a changé aucun comportement dans Django. –