Django makemessages Javascript (xgettext)

8

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":

%Vor%

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?

UPDATE:

Ich fand heraus, dass dies kein Problem von Django ist, sondern von xgettext . Django ruft xgettext mit dem folgenden Befehl auf:

%Vor%

Gibt es also einen xgettext Experten, der mir helfen kann?

    
ilse2005 04.09.2015, 17:30
quelle

1 Antwort

0

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!

    
John Anderson 23.11.2016 13:01
quelle