Je voudrais vous demander à tous, car j'ai appris Django récemment et quand j'ai appris l'internationalisation de Django, un petit problème est survenu :
Peu importe comment je modifie le fichier django.po, le supprime, le régénére, redémarre le serveur , la page affichée à chaque fois est toujours ma première. L'apparence du fichier .po utilisé cette fois/(ㄒoㄒ)/~~settings.py
est la suivante :
LANGUAGE_CODE = 'zh-CN'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
('en', ('English')),
('zh_CN', ('中文简体')),
('zh-hant', ('中文繁體')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
Le middleware correspondant a également été ajouté :
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
La fonction testée est la suivante dans views.py :
def test1_view(request):
n = 2
weekdays = [_('Monday'), _('Tuesday'), _('Wednesday'), _('Thursday'), _('Friday'), _('Saturday'),
_('Sunday')]
return HttpResponse(weekdays[n])
En utilisant $ python manage.py makemessages -l zh_CN
, le fichier généré dans /locale/zh_CN/LC_MESSAGES/django.po est modifié comme suit :
#: testdeploy/views.py:64
msgid "Monday"
msgstr "一"
#: testdeploy/views.py:64
msgid "Tuesday"
msgstr "二"
#: testdeploy/views.py:64
msgid "Wednesday"
msgstr "三"
#: testdeploy/views.py:64
msgid "Thursday"
msgstr "四"
#: testdeploy/views.py:64
msgid "Friday"
msgstr "五"
#: testdeploy/views.py:64
msgid "Saturday"
msgstr "六"
#: testdeploy/views.py:65
msgid "Sunday"
msgstr "七"
Et également supprimé #,fuzzy
,利用$ django-admin.py compilemessages
et compilé, et le résultat renvoyé est toujours celui du premier test :
De plus, même si je supprime le fichier .po, il peut toujours être affiché après le redémarrage du serveur. Pourquoi ? Y a-t-il encore des caches comme les cookies qui doivent être effacés ?
Merci à tous~
J'ai envoyé un e-mail au professeur Tu via l'école Ziqiang pour obtenir des conseils. Le problème est que settings.py est défini sur
.Une fois généré, il est toujours généré en fonction du trait de soulignement, c'est-à-dire exécuter
$ python manage.py makemessages -l zh_CN
Avez-vous exécuté des messages de compilation python manage.py ?