2010-11-05 2 views

risposta

6

Ok, penso che tu sia un po 'confuso. È possibile file uso gettext e PO/mo dall'interno AppEngine, dal momento che gettext viene esportato dal implementazione django.util di Google (una discussione di questo può essere trovato nella google-appengine google group):

from django.utils.translation import gettext as _ 

non ho familiarità con Il formato i18n di AppEngine CSV, ma esiste un modo molto semplice per estrarre stringhe internazionalizzate dal codice e dai modelli del tornado usando xgettext, in pratica forzare python dalla riga di comando. Per fare un esempio:

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

quel comando avranno tutte le stringhe i18n'ed da * .html nella directory corrente e li metterà sulla myproject.pot. Puoi inizializzare quel file e tradurre in diciamo ./it_IT/myproject.po utilizzando qualsiasi strumento commerciale o opensource (ti consiglierei poedit o pootle) e dopo aver tradotto tutte le stringhe puoi convertire il file in CVS usando Translate Toolkit's po2csv, che è anche scritto in python:

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

Il formato è location:codeLine,source,target che è fine abbastanza semplice, facile da convertire in qualsiasi altro formato che vi serve (non ho familiarità con i18n di AppEngine formato CSV), è possibile chiamare po2csv senza -o argomento e pipe l'output da STDOUT.

Non so se questo risolve la tua domanda, ma fondamentalmente penso che dovresti adottare un flusso di lavoro code-> pot/po-> csv poiché ci sono molti strumenti che si aspettano po/pot/mo e ti permetteranno di gestire le tue traduzioni o lavorare con memorie di traduzione/correttori ortografici, ecc .... prova e fammi sapere se hai bisogno di ulteriore aiuto.

+0

+1 Risposta eccellente. – ThomasH

0

Ho scritto un nuovo modulo per lo scopo chiamato tornado-babel che include un estrattore per babel per estrarre stringhe traducibili da modelli di tornado. Non creerà il file CSV per te, ma i file pot standard.