Heim  >  Artikel  >  Backend-Entwicklung  >  Django unterstützt chinesische Einstellungsmethoden

Django unterstützt chinesische Einstellungsmethoden

巴扎黑
巴扎黑Original
2017-08-17 11:10:383392Durchsuche

Ich habe heute ein Django-Projekt mit dem aktuellen Django 1.9.6 erstellt. Nachdem Sie das Projekt erstellt haben, stellen Sie die chinesische Anzeigeunterstützung in „settings.py“ ein (die einfachste Möglichkeit, z. B. das Standard-Englisch der Admin-Oberfläche auf Chinesisch zu ändern). define

TIME_ZONE = 'Asia/Shanghai'
LANGUAGE_CODE = 'zh-cn'

Natürlich gibt TIME_ZONE nur die Zeitzone an und hat nichts mit der chinesischen Anzeige zu tun. Der Standardwert wird hier geändert. Infolgedessen ist beim Ausführen des Projekts ein Fehler wie folgt aufgetreten:

django IOError: No translation files found for default language zh-cn

Das heißt, die zh-cn entsprechende Lokalisierungsdatei konnte nicht gefunden werden. Im Allgemeinen ist der Lokalisierungsordner, der der zh-cn-Kodierung entspricht, zh_CN. Ich habe im Django-Installationsverzeichnis nach zh_CN gesucht. Es wurde tatsächlich nicht im Gebietsschemaordner einer Reihe von Unterverzeichnissen gefunden Im Django-Installationsverzeichnis gibt es kein zh_CN, sondern zh_Hans. Ich weiß nicht, warum diese Version von Django den Ordner zh_CN nicht hat, vielleicht ist es ein Fehler. Einige Leute im Internet sagten, dass dieses Problem gelöst werden kann, indem man das gesamte zh_Hans-Verzeichnis kopiert und es zh_CN nennt. Ich habe es versucht und es hat tatsächlich funktioniert, wenn ich es erneut auf der Admin-Oberfläche angezeigt habe. Ob diese relativ nachahmende Methode irgendwelche versteckten Gefahren birgt, weiß ich noch nicht. Wir werden später darüber sprechen, wenn wir darauf stoßen.

Aber es gibt tatsächlich eine orthodoxe Möglichkeit, internationalisierte Dateien zu generieren, den folgenden Befehl:

django-admin.py makemessages -l zh_CN

Dafür ist jedoch die gettext-Komponente erforderlich Sie müssen diese Komponente selbst installieren.

Laden Sie gettext-runtime-X.zip und gettext-tools-X.zip unter http://ftp.gnome.org/pub/gnome/binaries/win32/ herunter. Abhängigkeiten/ Nach dem Dekomprimieren der neuesten Version (Hinweis: X ist die Versionsnummer) können die beiden bin-Verzeichnisse zusammengeführt und in die Systemumgebungsvariablen eingefügt werden. Ich habe diese Methode jedoch nicht überprüft. Wenn Sie interessiert sind, können Sie sie ausprobieren.

Später dachte ich, die alte Version von Django hätte zh_CN. Um zu sagen, dass dies ein Fehler ist, ist er wahrscheinlich relativ niedrig und sollte nicht der Fall sein. Also habe ich noch einmal nachgesehen und festgestellt, dass zh_Hans möglicherweise zh_CN ersetzt hat. Han bedeutet chinesische Schriftzeichen, s bedeutet vereinfacht. Wie auch immer, ich habe es auf LANGUAGE_CODE = 'zh-hans' gesetzt und es zeigt Chinesisch normal an.

zh-cn ist in Django1.9 abgelaufen, das neue Format ist zh-hans, aber drf3.1.0 unterstützt diese Art von Sprache nicht.

Das Obige bedeutet in Django1.9, zh-cn ist abgelaufen und kann durch zh-hans ersetzt werden, aber einige Module von Django von Drittanbietern haben diese Änderung möglicherweise nicht übernommen.

Kurz gesagt, Wohlwollen sieht Wohlwollen und Weisheit sieht Weisheit. Tatsächlich besteht keine Notwendigkeit, es so zu studieren. Ich habe mich einfach mehr dafür interessiert, also habe ich es eine Weile studiert.

ps: Es gibt an vielen Stellen im Internet verschiedene Möglichkeiten, LANGUAGE_CODE = 'zh-cn' zu schreiben, einschließlich zh_CN, zh-CN usw. Einige Leute sagen auch, dass man nur eine bestimmte Art von verwenden kann Schreiben usw. Wie auch immer, ich weiß es nicht. Nachdem ich den Unterschied gesehen hatte, habe ich alles versucht und keine Probleme festgestellt.

Nebenbei bemerkt, ich wusste nie, was USE_I18N und USE_L10N in „settings.py“ bedeuten, bis ich den folgenden Absatz sah:

Nachdem der Webdienst eingerichtet wurde, kann er Besuche von Benutzern aus verschiedenen Ländern empfangen Länder auf der ganzen Welt. Dies erfordert, dass Entwickler die Software anpassen, um sie für verschiedene Sprachen geeignet zu machen, also Internationalisierung und Lokalisierung. Internationalisierung

--Internationalisierung, es gibt 18 Buchstaben zwischen i und n, die als I18N bezeichnet werden. Lokalisierung – Lokalisierung, es gibt 10 Buchstaben zwischen l und n, abgekürzt als L10N. Internationalisierung bedeutet, dass Web

-Produkte das Potenzial haben, überall eingesetzt zu werden. Für Programmentwickler bezieht sich Lokalisierung auf den Prozess der tatsächlichen Übersetzung eines internationalisierten Programms für die Verwendung in einer bestimmten Region.

Das obige ist der detaillierte Inhalt vonDjango unterstützt chinesische Einstellungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-Funktion dir()-FunktionNächster Artikel:Python-Funktion dir()-Funktion