2016-07-27 14 views
1

Ich habe eine Vorlagendatei templates/admin/base_site.html, die eine enthält trans Tag: {% trans "Event List" %}.Django {% trans%} funktioniert nicht, obwohl django.po generiert wird

settings.py umfasst:

LANGUAGE_CODE = 'sv' 
LOCALE_PATHS = (
    '/srv/mysite/locale/', 
) 

Die Django-Admin-Seiten werden in Schwedisch richtig übersetzt, abgesehen von dem Text in dem trans-Tag.

Wenn ich python manage.py makemessages -l sv laufen erzeugt sie richtig ein locale/sv/LC_MESSAGES/django.po Datei, deren letzten Zeilen sind:

#: templates/admin/base_site.html:9 
msgid "Event List" 
msgstr "Event List" 

ich es dann ändern:

#: templates/admin/base_site.html:9 
msgid "Event List" 
msgstr "Händelselista" 

Als ich python manage.py runserver erneut ausführen, die Zeichenfolge nicht auf der Webseite übersetzt.

Der Rest der Admin-Seite wird immer noch ins Schwedische übersetzt, so wie zuvor.

Was fehlt mir?

+0

Haben Sie 'django.middleware.locale.LocaleMiddleware' zu ​​Ihrer' MIDDLEWARE_CLASSES' hinzugefügt? – OptimusCrime

Antwort

1

django.po Dateien sind nur für Bearbeitungszwecke gedacht. Sie müssen sie bei django.mo Dateien zusammenstellen, so dass sie interpretiert werden:

python manage.py compilemessages 

Siehe auch Django docs.

0

Haben Sie den Webserver neu gestartet? Es wird nicht die neu kompilierten Po-Dateien liefern, wenn Sie nicht haben.

Bearbeiten: und sicher sein, Django-Server nach dem Sie auch neu starten.

+0

Ich schrieb, dass ich den Server mit 'python manage.py runserver 'laufen ließ, was bedeutet, dass ich Apache/Nginx noch nicht benutze. – fadedbee