i18n

Screenshot Software:
i18n
Mga detalye ng Software:
Bersyon: 0.1
I-upload ang petsa: 14 Apr 15
Nag-develop: Antonio Cuni
Lisensya: Libre
Katanyagan: 17

Rating: 3.0/5 (Total Votes: 1)

i18n ay isang pakete na sinusubukan upang gawing simple ang daloy ng trabaho at pag-unlad ng internationalized application. & Nbsp; Ito ay isang manipis na wrapper sa paligid ng umiiral na mga tool, sa partikular gettext at Babel.
Pangunahing paggamit
# Demo.py
#
mula i18n.translator Translator pag-import
supported_languages ​​= ['it_IT', 'fr_FR', 'de_DE']
#-Activate italian translation
tr = Translator ('/ path / sa / ugat', supported_languages, 'it_IT')
-print tr ._ ('Kamusta mundo!')
kung saan / path / sa / ugat / ay ang root directory ng iyong proyekto. Kapag instantiated, awtomatikong lumilikha ng mga Tagasalin klase ng isang direktoryo na tinatawag / path / sa / ugat / mga wika kung saan ang mga pagsasalin ay naka-imbak.
extract mensahe
Bago ang paggawa ang aktwal na pagsasalin, kailangan mong i-extract ang mga mensahe mula sa iyong mga file pinagmulan, sa pamamagitan ng invoking ang command katas sa i18n module, na isang wrapper sa paligid pybabel kunin at i-update pybabel:
& Nbsp; python -m i18n --root = / path / sa / ugat --languages ​​= it_IT, fr_FR, de_DE katas
kunin ang itsura para sa lahat ng mga mensahe na nakabalot sa loob ng pagtawag sa _ (), gettext () o ngettext () at gumagawa ng isang file na tinatawag na mga wika / template.pot. Ito ay isang karaniwang gettext po file` na naglalaman ng lahat ng mga mensahe na natagpuan sa na application.
Dagdag pa rito, kunin () ay lumilikha rin ng isang mensahe katalogo ng file para sa bawat isa sa mga suportadong wika bilang wika / $ CODE / LC_MESSAGES / messages.po, kung saan $ CODE ay isa sa mga wika na nakalista sa supported_languages ​​(it_IT, fr_FR at de_DE sa halimbawa sa itaas ).
Ang katalogo ng mga file ay handa na upang maisalin gamit ang isa sa maraming mga umiiral na mga tool sa ngayon, halimbawa Qt dalubwika o Poedit. Para sa tamang paggana ng mga application, kailangang hindi mapangalagaan ang buong wika / hierarchy. Iminumungkahi namin na subaybayan ang iba't-ibang messages.po mga file sa Bersyon Control System kasama ng iba pang mga file na pagmamay-ari ng application na ito.
Pag-update ng mga mensahe
Sa panahon ng pag-unlad ng application, ay tiyak kang magdagdag ng mga bagong mensahe upang maisalin. Ang utos katas awtomatikong pangasiwaan ang kasong ito: kung nahahanap nito umiiral na file catalog, ang kanilang nilalaman (kabilang ang mga umiiral na mga pagsasalin) ay isinama sa mga bagong na-kinuha ng mga mensahe.
kino-compile ang katalogo
Ito ay kinakailangan upang ipunin ang katalogo file bago gamitin ang mga ito sa gettext. Bilang default, awtomatikong compiles aming Translator na bagay ang lahat ng mga katalogo natagpuan sa wika /, na gumagawa ng kaukulang .mo mga file. Compilation Ang ay tapos na lamang kapag ang katalogo file ay nabago. Nangangahulugan ito na sa karamihan ng mga kaso hindi mo na kailangang mag-alala tungkol sa pagsasama-sama ng mga katalogo.
Kung mas gusto mong magkaroon ng karagdagang kontrol sa ang hakbang na ito, maaari kang pumasa sa autocompile = Maling sa constructor ng mga Tagasalin at pagsama-samahin ang mga ito nang mano-mano mula sa command line:
& Nbsp; python -m i18n --root = / path / sa / ugat --languages ​​= it_IT, fr_FR, de_DE compile
Ang pag-iimbak ng mga pagsasalin sa isang database
Para sa ilang mga application na ito ay kapaki-pakinabang upang ipaalam sa gumagamit upang tukuyin ang mga bagong translation at / o i-override ang default na mga bago. Sinusuportahan i18n ito kaso ng paggamit sa DBTranslator klase, na isang subclass ng Translator. Kapag nagta-translate, unang mukhang DBTranslator sa database: kung ang mensahe ay hindi natagpuan, ito delegado sa karaniwang pag-uugali gettext.
DBTranslator ay batay sa sqlalchemy. Nito constructor ay tumatagal ng isang karagdagang parameter engine:
mula sa pag-import i18n.dbtranslator DBTranslator
mula sa pag-import sqlalchemy create_engine
engine = create_engine ('SQLite: ///db.sqlite')
Root = '/ path / sa / ugat'
WIKA = ['it_IT', 'fr_FR']
DEST_LANGUAGE = 'it_IT'
tr = DBTranslator (ugat, WIKA, DEST_LANGUAGE, engine = engine)
-print tr ._ ("hello mundo")
DBTranslator Awtomatikong lumilikha ang translation_entries talahanayan sa DB. Pagkatapos, ito ay hanggang sa ang application na magbigay ng isang user interface upang manipulahin ang table. Para sa pagsubok, maaari mong gamitin ang add_translation () na pamamaraan upang ipasok ang bagong translation sa DB:
tr.add_translation ("it_IT", "hello mundo", "ciao Mondo")
-print tr ._ ("hello mundo") # prints "ciao Mondo"
Paano gamitin ang isang pandaigdigang Translator
Sa pamamagitan ng disenyo, sinusubukan i18n sa ganap na maiwasan ang anumang mga pandaigdigang estado. Nangangahulugan ito na maaari kang magbigay ng halimbawa ng maraming mga Tagasalin at DBTranslator hangga't gusto mo, ang bawat isa na nagre-refer sa isang iba't ibang mga direktoryo at / o database. Ito ay lalong kapaki-pakinabang para sa pagsubok.
Gayunpaman, sa kasanayan gusto karamihan sa mga proyekto upang gumamit ng isang global tagasalin na nakakaalam ng tungkol sa mga mensahe ng lahat ng mga bahagi sa proyekto. Ipinapakita ng demo na application ng isang paraan upang gawin ito sa module translate.py:
-import .py
mula i18n.translator Translator pag-import
# Itakda ang root ng proyekto sa direktoryong naglalaman ang file na ito
Root = py.path.local (__ __ file). Dirpath ()
WIKA = ['it_IT', 'fr_FR', 'de_DE']
tr = Translator (ugat, WIKA, 'it_IT')
_ = Tr._
ngettext = tr.ngettext
kung __name__ == '__main__':
& Nbsp; tr.cmdline (sys.argv)
Sa ganitong paraan, ang ilang bahagi ng application maaari lamang mag-import at gamitin ang _ () at ngettext () mula sa translate.py. O, sa iyong kagustuhan, mag-import nang direkta ang tr object at paggamit tr ._ () at tr.ngettext () upang i-translate ang mensahe.
Ang huling dalawang linya ng code nagbibigay-daan sa isang maginhawang paraan upang tumawag katas at sumulat ng libro mula sa command line nang hindi na kinakailangang upang mano-manong tukuyin ang root dir at ang mga suportadong wika. Tumakbo lamang sa:
& Nbsp; python translate.py katas # ... o sumulat ng libro

Mga Kinakailangan :

  • Python

Katulad na software

Pytho
Pytho

3 Jun 15

GOB
GOB

17 Feb 15

Ankur
Ankur

3 Jun 15

gtranslator
gtranslator

14 Apr 15

Iba pang mga software developer ng Antonio Cuni

pdbpp
pdbpp

11 May 15

Mga komento sa i18n

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!