Django-Übersetzungsvorlage {% trans “something”%}

Ok, ich habe wie verrückt danach gesucht, denke ich, einfaches Problem.

Ich benutze Django 1.4

Das Problem ist, dass Django kein einfaches {% trans "work"%} in meine Vorlage übersetzt.

Das habe ich getan:

Einstellungen.py:

LANGUAGE_CODE = 'en-us'
USE_I18N = True
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.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.request",
)

LOCALE_PATHS = (
    '/home/m00p/PycharmProjects/astrid/locale'
)

Das ist meine Kartenstruktur:

/
myproject/
apps/
locale/
template/

Also rannte ich los

django-admin.py makemessages -l nl -i settings.py

und es wurde erfolgreich im Gebietsschema-Ordner nl / LC_MESSAGES / django.po erstellt. Ich bearbeite dann die Übersetzung, die es in der django.po gefunden hat

#: templates/base.html:22
msgid "work"
msgstr "ddddddddddddd"

Ich führe dann den Kompilierbefehl aus

django-admin.py compilemessages

und es wurde auch erfolgreich eine django.mo-Datei im richtigen Ordner erstellt

Ich habe dies auch in der myproject / urls.py hinzugefügt

urlpatterns = patterns('',
    url(r'^i18n/', include('django.conf.urls.i18n')),
)

urlpatterns += i18n_patterns('',
    url(r'^

Ich habe dies in die Datei base.html eingefügt, um die Sprache ändern zu können

<form action="/i18n/setlang/" method="post">
    {% csrf_token %}
    <input name="next" type="hidden" value="/" />
    <select name="language">
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
            <option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
        {% endfor %}
    </select>
    <input type="submit" value="Go" />
</form>

Wenn ich also auf die Website gehe, erhalte ich 127.0.0.1:8000/de/ in der URL. Dies ist korrekt, da Englisch die Standardsprache ist. Wenn ich es dann mit dem Formular in NL ändere, leitet es zu 127.0.0.1:8000 weiter / nl / aber der übersetzte Text hat sich nicht geändert. Ich bin mir auch sicher, dass die Sprache NL ist, da bei der Anzeige von {{LANGUAGE_CODE}} NL angezeigt wird.

Weiß jemand, warum es sich nicht ändert?

Danke m00p

PROBLEM GELÖST

Während des Vorgangs, als ich Dinge hinzufügte, die ich vergessen hatte, startete ich meinen Bereitstellungsserver neu, aber ichhat den Cache meines Browsers nicht geleert Es wurden immer noch die alten Seiten verwendet. Als ich meine Browserdaten in Chrome löschte, besuchte ich die Seite erneut und änderte die Sprache, in der sie korrekt übersetzt wurde. Trotzdem danke für die Vorschläge!

, 'front.views.home', name='home'), )

Ich habe dies in die Datei base.html eingefügt, um die Sprache ändern zu können

<form action="/i18n/setlang/" method="post">
    {% csrf_token %}
    <input name="next" type="hidden" value="/" />
    <select name="language">
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
            <option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
        {% endfor %}
    </select>
    <input type="submit" value="Go" />
</form>

Wenn ich also auf die Website gehe, erhalte ich 127.0.0.1:8000/de/ in der URL. Dies ist korrekt, da Englisch die Standardsprache ist. Wenn ich es dann mit dem Formular in NL ändere, leitet es zu 127.0.0.1:8000 weiter / nl / aber der übersetzte Text hat sich nicht geändert. Ich bin mir auch sicher, dass die Sprache NL ist, da bei der Anzeige von {{LANGUAGE_CODE}} NL angezeigt wird.

Weiß jemand, warum es sich nicht ändert?

Danke m00p

PROBLEM GELÖST

Während des Vorgangs, als ich Dinge hinzufügte, die ich vergessen hatte, startete ich meinen Bereitstellungsserver neu, aber ichhat den Cache meines Browsers nicht geleert Es wurden immer noch die alten Seiten verwendet. Als ich meine Browserdaten in Chrome löschte, besuchte ich die Seite erneut und änderte die Sprache, in der sie korrekt übersetzt wurde. Trotzdem danke für die Vorschläge!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage