suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Django-Internationalisierung, das Ändern der .po-Datei hat keine Auswirkung

Ich möchte euch alle fragen, denn ich habe Django kürzlich gelernt und als ich von der Django-Internationalisierung erfuhr, trat ein kleines Problem auf:
Egal wie ich die django.po-Datei ändere, lösche, neu generiere, den Server neu starte , die jedes Mal angezeigte Seite ist immer noch meine erste. Das Aussehen der dieses Mal verwendeten .po-Datei/(ㄒoㄒ)/~~
settings.py ist wie folgt:

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'),
)

Die entsprechende Middleware wurde ebenfalls hinzugefügt:

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',
)

Die getestete Funktion ist in Views.py wie folgt:

def test1_view(request): 
    n = 2
    weekdays = [_('Monday'), _('Tuesday'), _('Wednesday'), _('Thursday'), _('Friday'), _('Saturday'), 
_('Sunday')] 
    return HttpResponse(weekdays[n])

Mit $ python manage.py makemessages -l zh_CN wird die generierte Datei unter /locale/zh_CN/LC_MESSAGES/django.po wie folgt geändert:

#: 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 "七"

Und auch gelöscht #,fuzzy,利用$ django-admin.py compilemessages und kompiliert, und das zurückgegebene Ergebnis ist immer noch das vom ersten Test:

Auch wenn ich die .po-Datei lösche, kann sie nach dem Neustart des Servers weiterhin angezeigt werden. Gibt es noch Caches wie Cookies, die geleert werden müssen?
Danke euch allen~

高洛峰高洛峰2757 Tage vor729

Antworte allen(2)Ich werde antworten

  • 阿神

    阿神2017-05-18 11:00:02

    经过自强学堂向涂老师发邮件请教,问题在于将settings.py中设置成

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

    而生成的时候仍然按照下划线生成,即执行$ python manage.py makemessages -l zh_CN

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-18 11:00:02

    python manage.py compilemessages 了么?

    Antwort
    0
  • StornierenAntwort