2010-11-05 2 views
6

Django makemessage pourrait générer des fichiers i18n, et le rendre plus facile à traduire. Comme je le vois, tornado supporte à la fois le format CSV et le format gettext, mais je ne peux utiliser que la version CSV, car je l'utiliserai sur appengine. Donc, je cherche un moyen de générer ces fichiers CSV pour base de tornade sur la numérisation de mes codes et modèles.Y at-il un moyen de générer un fichier CSV de localisation de tornade comme django makemessage?

Répondre

6

Ok, je pense que vous êtes un peu confus. Vous pouvez utiliser gettext et les fichiers po/mo de l'intérieur AppEngine, depuis gettext est exportée à partir de la mise en œuvre de django.util de Google (une discussion sur ce qui peut être trouvé dans le google-appengine google group):

from django.utils.translation import gettext as _ 

Je ne suis pas au courant Le format i18n d'AppEngine CSV, mais il existe un moyen très simple d'extraire des chaînes internationalisées du code et des modèles de tornade en utilisant xgettext, forcez simplement Python à partir de la ligne de commande. A titre d'exemple:

xgettext -L Python -o myproject.pot *.html 

Cette commande obtiendra toutes les chaînes de i18n'ed * .html dans votre répertoire courant et les placera sur myproject.pot. Vous pouvez initialiser ce fichier et traduire en ./it_IT/myproject.po en utilisant n'importe quel outil commercial ou opensource (je recommanderais poedit ou pootle) et une fois que vous avez traduit toutes les chaînes, vous pouvez convertir le fichier en CVS en utilisant Translate Toolkit's po2csv, qui est également écrit en python:

po2csv -i it_IT/myproject.po -o it_IT/myproject.csv 

Le format est location:codeLine,source,target qui est assez simple fin facile à convertir selon un autre format dont vous avez besoin (je ne suis pas familier avec le i18n de appEngine format CSV), vous pouvez appeler po2csv sans -o argument et redirige la sortie de STDOUT. Je ne sais pas si cela résout votre question, mais fondamentalement, je pense que vous devriez adopter un workflow code-> pot/po-> csv car il existe de nombreux outils qui attendent po/pot/mo et vous permettront de gérer vos traductions ou travailler avec des mémoires de traduction/spellcheckers, etc .... essayez et faites-moi savoir si vous avez besoin de plus d'aide avec cela.

+0

+1 Excellente réponse. – ThomasH

0

J'ai écrit un nouveau module dans le but appelé tornado-babel qui comprend un extracteur pour babel pour extraire des chaînes traduisibles à partir de modèles de tornade. Il ne créera pas le fichier CSV pour vous, mais les fichiers de pot standard.

Questions connexes