Von Django Dokumentation:Mit settings.LANGUAGES mit richtig übersetzt Namen gettext()
Wenn Sie eine benutzerdefinierte
LANGUAGES
Einstellung definieren, es ist OK, um die Sprachen als Übersetzungs-Strings zu markieren (wie in der Standard Wert angezeigt) - aber Verwenden Sie eine "Dummy"gettext()
Funktion, nicht die indjango.utils.translation
. Sie sollten importieren niedjango.utils.translation
aus Ihre Einstellungsdatei, denn das Modul an sich auf den Einstellungen abhängt, und das wäre ein Kreis Import verursachen. Die Lösung ist verwenden Sie eine "Dummy"gettext()
Funktion. Hier ist eine Beispieleinstellungsdatei:
gettext = lambda s: s LANGUAGES = (
('de', gettext('German')),
('en', gettext('English')),
)
Mit dieser Anordnung
django-admin.py makemessages
noch diese Zeichenfolge für die Übersetzung, aber die Übersetzung bei Laufzeit wird nicht passieren, finden und markieren - - so müssen Sie sich an erinnern, um die Sprachen in die realegettext()
in irgendeinem Code zu verpacken, derLANGUAGES
verwendet zur Laufzeit.
Was bedeutet es genau Sprachen in echte gettext()
zu wickeln? Wie soll es im Code heißen?
Diese Methode ziemlich stright ist nach vorn und verständlich. Aber in diesem Fall ist der Punkt der Verwendung eines Dummy-Wrappers in den settings.LANGUAGES? Da Sie ohnehin jede Zeile im Code umbrechen müssen, ist dies der Punkt der Wrapper-Funktion, der im Tutorial vorgeschlagen wird. –
Wenn Sie das gettext-Befehlszeilentool über Ihren Quelltextbaum ausführen (wahrscheinlich über ./manage.py makemessages), möchten Sie, dass diese Zeichenfolgen als "Übersetzung erforderlich" erkannt werden, damit sie Ihrer PO-Datei hinzugefügt werden. –