Gibt es eine Möglichkeit Tornado Lokalisierung CSV-Datei wie django makemessage zu generieren?
-
29-09-2019 - |
Frage
Django makemessage i18n-Dateien erzeugen können, und machen es leichter zu übersetzen.
Wie ich sehe, Tornado hat sowohl CSV-Format und gettext-Format unterstützen, aber ich kann nur CSV-Version verwenden, weil ich es bei appengine verwenden.
Also, ich bin nach einer Möglichkeit, diese CSV-Dateien für Tornado-Basis zu erzeugen, meine Codes und Vorlagen auf dem Scannen.
Lösung
Ok, ich glaube, Sie ein bisschen verwirrt. Sie können Verwendung gettext und po / mo-Dateien direkt von appengine, da gettext von den Google-django.util Implementierung (eine Diskussion über diese in der google-appengine google-Gruppe ):
from django.utils.translation import gettext as _
Ich bin nicht vertraut mit App Engine CSV dem i18n-Format, aber es ist eine sehr einfache Art und Weise internationalisiert Saiten von Tornado-Code und Vorlagen zu extrahieren mit xgettext , zwingt im Grunde nur python von der Kommandozeile. Als ein Beispiel:
xgettext -L Python -o myproject.pot *.html
Dieser Befehl wird alle i18n'ed Strings aus * .html in Ihrem aktuellen Verzeichnis erhalten und wird sie auf myproject.pot platzieren. Sie können diese Datei initialisieren und übersetzen in sagen wir mal ./it_IT/myproject.po jeder kommerziellen oder Open-Source-Tool (ich würde empfehlen, pootle ) und einmal Sie haben alle Strings übersetzt Sie die Datei in CVS umwandeln kann mit Übersetzen Toolkit po2csv , die auch in python geschrieben ist:
po2csv -i it_IT/myproject.po -o it_IT/myproject.csv
Das Format ist location:codeLine,source,target
das ist ziemlich einfach Ende ist einfach zu konvertieren zu welcher anderen Format, das Sie brauchen (ich bin nicht vertraut mit appengine des i18n CSV-Format) können Sie po2csv ohne -o Argument aufrufen und Rohr die Ausgabe aus STDOUT.
Ich weiß nicht, ob das Ihre Frage löst, aber im Grunde denke ich, sollten Sie eine adoptieren Code-> pot / po-> csv-Workflow, da es viele Tools, die po / pot / mo erwarten und ermöglicht es Ihnen, Griff Ihre Übersetzungen oder die Arbeit mit Translation Memories / Rechtschreibprüfung, etc .... versuchen, und lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen, dass.
Andere Tipps
Ich habe ein neues Modul für die Tornado-babel genannt Zweck geschrieben, die für einen Extraktor enthält babel übersetzbare Strings von Tornado-Vorlagen zu extrahieren. Es wird nicht die CSV-Datei für Sie, aber die Standard-Topf-Dateien erstellen.