Ich möchte die django i18n-Unterstützung verwenden, um meine Javascript-Dateien zu übersetzen. Ich habe die folgende Javascript-Datei:
%Vor%Jetzt starte ich den Befehl djangos makemessages:
%Vor% Ich würde erwarten, dass die erstellte Übersetzungsdatei vier Einträge hat ("Beispiel", "Schaltflächentext", "EIN TEXT" und "MEHR TEXT"), weil gettext
dreimal in der js-Datei erscheint.
Die erstellte Gebietsschema-Datei hat jedoch nur zwei Einträge für "Beispiel":
Ich bekomme auch diese Warnung. Habe aber keine Ahnung was es bedeutet (die Datei hat nur 32 Zeilen)
%Vor%Weiß jemand, warum Django die anderen Einträge ignoriert? Vielleicht liegt es daran, dass ich die jsx-Syntax verwende oder weil ich ES6-Klassen verwende?
Ich fand heraus, dass dies kein Problem von Django ist, sondern von xgettext
.
Django ruft xgettext
mit dem folgenden Befehl auf:
Gibt es also einen xgettext
Experten, der mir helfen kann?
Ich habe das mit der neuesten Version von Django (1.10.3) versucht. Es schien gut zu funktionieren. Können Sie Ihre Django-Version aktualisieren?
Der Code, der für mich funktioniert hat, ist hier: Ссылка
Beachten Sie auch, dass Ihre JavaScript-Funktion gettext
irgendwo definiert werden muss. Als ich das letzte Mal geschaut habe, gab es mehrere JavaScript i18n Bibliotheken, aber nicht viele spielten gut mit xgettext und Django . Sie müssen möglicherweise Ihre eigenen rollen.
Sehen Sie sich alternativ an, wie Sentry i18n mit JSX ausführt. Ссылка
Glückliches Übersetzen!
Tags und Links django javascript gettext xgettext django-i18n