i18n

Yazılım ekran görüntüsü:
i18n
Yazılım detaylar:
Versiyon: 0.1
Qayıt: 14 Apr 15
Geliştirici: Antonio Cuni
Lisans: Ücretsiz
Popülerlik: 17

Rating: 3.0/5 (Total Votes: 1)

.

i18n iş akışı ve uluslararası uygulamaların geliştirilmesi & nbsp basitleştirmek için çalışan bir pakettir; Özellikle gettext ve babel etrafında ince bir sarıcı mevcut araçları vardır.
Temel kullanım
# Demo.py
#
i18n.translator ithalat Çevirmen
supported_languages ​​= ['it_IT', 'fr_FR', 'de_DE']
# İtalyan çeviriler aktive
tr = Tercüman ('/ yol / / root için', supported_languages, 'it_IT')
Baskı tr ._ ('Merhaba dünya!')
nerede / yol / / kök / projenizin kök dizin. Örneği zaman, Tercüman sınıf otomatik olarak oluşturur bir dizin olarak adlandırılan / / yol / root / çeviriler saklanır dilleri.
ayıklanıyor mesajlar
Gerçek çeviri yapmadan önce, size pybabel özü ve pybabel güncelleme etrafında sarıcı i18n modülü üzerinde extract komutunu çağırarak, kaynak dosyaları mesajları ayıklamak gerekir:
& Nbsp; piton -m i18n --root = / / yol / root --languages ​​= it_IT, fr_FR, de_DE özü
özü içinde sarılmış tüm iletileri çağırır arar üzere _ (), gettext () veya ngettext () ve bir dosya adı verilen diller / template.pot üretir. Bu uygulamada bulunan tüm iletileri içeren bir standart gettext po Dosya 'olduğunu.
Üstelik de $ KODU Yukarıdaki örnekte supported_languages ​​(it_IT, fr_FR ve de_DE listelenen dillerden biridir dilleri / $ KODU / LC_MESSAGES / messages.po olarak desteklenen dillerin her biri için bir mesaj katalog dosyası oluşturur) (ayıklamak ).
katalog dosyaları, örneğin QT Dilbilimci veya poEdit için, artık pek çok mevcut araçlardan biri kullanılarak tercüme edilmeye hazırdır. Uygulamanın doğru işleyişi için, tüm diller / hiyerarşi korunmuş olması gerekir. Biz uygulamaya ait diğer dosyalarla birlikte Versiyon Kontrol Sistemi çeşitli messages.po dosyaları izlemek için öneririz.
güncelleme mesajları
Uygulamanın geliştirilmesi sırasında, mutlaka yeni mesajlar katacak Çevrilecek. o (mevcut çeviriler dahil) mevcut katalog dosyalarını, kendi içeriğini bulursa yeni çekilmiş mesajlarla birleştirilir: extract komutu otomatik olarak bu davayı ele.
Derleme kataloglar
Bu gettext onları kullanmadan önce katalog dosyaları derlemek için gereklidir. Varsayılan olarak, bizim Tercüman nesne otomatik .mo ilgili dosyaları üreten dillerde / bulunan tüm katalogları, derler. Derleme katalog dosyası değiştirilmiş yalnızca yapılır. Bu çoğu durumda katalog derleme konusunda endişelenmenize gerek yok demektir.
Bu adımda daha fazla kontrole sahip olmak isterseniz, Çevirmen kurucusuna Yanlış autocompile = geçmek ve komut satırından manuel bunları derlemek edebilirsiniz:
& Nbsp; piton -m i18n --root = / / yol / root --languages ​​= it_IT, fr_FR, de_DE derlemek
veritabanında çeviriler saklama
Bazı uygulamalar için yeni çeviri tanımlamak ve / veya varsayılan olanları geçersiz kullanıcı izin yararlıdır. i18n Çevirmen bir alt sınıfı olan DBTranslator sınıfının, bu kullanma durumu desteklemektedir. Çeviri yaparken, DBTranslator ilk veritabanında arar: ileti bulunamazsa, standart gettext davranışına o delegeler.
DBTranslator SQLAlchemy dayanmaktadır. Onun yapıcı bir ek motor parametre alır:
i18n.dbtranslator ithalat DBTranslator gelen
sqlalchemy ithalat create_engine gelen
Motor = create_engine ('oracle: ///db.sqlite')
KÖK = '/ / yol / root'
DİL = ['it_IT', 'fr_FR']
DEST_LANGUAGE = 'it_IT'
tr = DBTranslator (KÖK, DİL, DEST_LANGUAGE, motor = motor)
Baskı tr ._ ("merhaba dünya")
DBTranslator otomatik DB tablo translation_entries oluşturur. Ardından, bu tabloyu işlemek için bir kullanıcı arayüzü sağlamak için uygulama olur. Test için, DB yeni bir çeviri eklemek için add_translation () yöntemini kullanabilirsiniz:
tr.add_translation ("it_IT", "merhaba dünya", "ciao mondo")
Baskı tr ._ ("merhaba dünya") # yazdırır "ciao mondo"
küresel Çevirmen nasıl kullanılır
Tasarım gereği, i18n tamamen herhangi bir küresel devlet önlemek için çalışır. Bu size istediğiniz gibi birçok Tercüman ve DBTranslator, farklı bir dizine ve / veya veritabanına dayanarak her biri örneğini anlamına gelir. Bu test için özellikle yararlıdır.
Ancak, uygulamada çoğu proje projedeki tüm bileşenlerin mesajlar hakkında bilen bir küresel çevirmen kullanmak istiyorum. Demo uygulaması translate.py modülünde bunu yapmak için bir yol gösterir:
ithalat py
i18n.translator ithalat Çevirmen
# Bu dosyayı içeren dizine projenin kök set
KÖK = py.path.local (__ __ dosya). Dizinyolu ()
DİL = ['it_IT', 'fr_FR', 'de_DE']
tr = Tercüman (KÖK, DİL, 'it_IT')
_ = Tr._
ngettext = tr.ngettext
__name__ == '__main__' eğer:
& Nbsp; tr.cmdline (sys.argv)
Bu şekilde, uygulamanın geri kalanı sadece ithalat ve translate.py gelen _ () ve ngettext () kullanabilirsiniz. Ya da, tercihinize, ithalat, doğrudan tr nesne ve kullanım tr ._ () ve tr.ngettext de () iletileri çevirmek.
kodunun son iki satır elle kök dir ve desteklenen diller belirtmek zorunda kalmadan özü aramak ve komut satırından derlemek için uygun bir yol sağlar. Sadece çalıştırın:
& Nbsp; piton translate.py özü # ... ya derlemek

Gereksinimler :

  • Python

Benzer yazılım

GOB
GOB

17 Feb 15

Intlize
Intlize

14 Apr 15

Geliştirici Diğer yazılım Antonio Cuni

pdbpp
pdbpp

11 May 15

Yorumlar i18n

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!