internationalisation de Django, la modification du fichier .po n'a aucun effet
高洛峰
高洛峰 2017-05-18 10:58:02
0
2
732

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~

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
阿神

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

.
LANGUAGES = (
    ('en', ('English')),
    ('zh-CN', ('中文简体')),
    ('zh-TW', ('中文繁體')),
)

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 ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal