2010-11-05 14 views
6

Django makemessage, i18n dosyalarını oluşturabilir ve çevirisini daha kolay hale getirebilir.Django makemessage gibi kasırga yerelleştirme CSV dosyası oluşturmak için herhangi bir yolu var mı?

Gördüğüm gibi, tornado hem CSV biçimini hem de gettext biçimini destekliyor, ancak CSV sürümünü kullanabilirim, çünkü onu appengine'de kullanacağım.

Kodlarım ve şablonlarımı taramak için bu CSV dosyalarını kasırga tabanı için oluşturmanın bir yolunu arıyorum.

cevap

6

Tamam, biraz kafanız karıştı. gettext'lerle Google'ın django.util uygulamasından dışa beri AppEngine'de içinden kullanım gettext'lerle ve po/mo dosyaları (bu bir tartışma google-appengine google group bulunabilir) olabilir:

from django.utils.translation import gettext as _ 

Ben aşina değilim AppEngine CSV'nin i18n formatıdır, fakat uluslararası kodları xgettext'u kullanarak uluslararası kod dizilerini çıkarmak çok basit bir yoldur, sadece temel olarak komut satırından python'u zorlar. Mevcut dizindeki .html * Tüm i18n'ed dizeleri alacak komuta ve myproject.pot üzerine koyun edecek

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

: Örnek olarak. Bu dosyayı başlatabilir ve ./it_IT/myproject.po'yu herhangi bir ticari veya açık kaynak aracını kullanarak (poedit veya pootle tavsiye ederim) çevirebilir ve tüm dizeleri çevirdikten sonra dosyayı Translate Toolkit's po2csv kullanarak CVS'ye dönüştürebilirsiniz. Ayrıca python ile yazılmış:

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

biçimi (I AppEngine'de en i18n CSV formatında aşina değilim) ihtiyacınız diğer hangisi biçimine dönüştürmek için kolay oldukça basit uç, hiçbir -o ile po2csv çağırabilir olan location:codeLine,source,target olduğunu argüman ve çıktıyı STDOUT'tan dışarı aktarın.

Sorunun çözülüp çözülmediğini bilmiyorum, ancak temelde po/pot/mo beklediğinizden çok sayıda araç olduğu için kod -> pot/po-> csv iş akışını benimsemeniz gerektiğini düşünüyorum. çevirilerinizi ele alın veya çeviri anıları/yazım denetleyicileri vb. ile çalışın. Bununla ilgili daha fazla yardıma ihtiyacınız varsa bana bildirin.

+0

+1 Mükemmel cevap. – ThomasH

0

tornado-babel adı verilen ve tornado şablonlarından çevrilebilir dizeleri çıkarmak için babel için bir çıkarıcı içeren yeni bir modül yazdım. Sizin için CSV dosyasını oluşturmaz, ancak standart pot dosyaları.

İlgili konular