i18n

Software kuvakaappaus:
i18n
Ohjelmiston tiedot:
Versio: 0.1
Lähetyksen päivämäärä: 14 Apr 15
Kehittäjä: Antonio Cuni
Lupa: Vapaa
Suosio: 17

Rating: 3.0/5 (Total Votes: 1)

i18n on paketti, joka yrittää yksinkertaistaa työnkulkua ja kehittäminen kansainvälistynyt sovelluksia. & Nbsp; Se on ohut kääre ympärillä olevia välineitä, erityisesti gettext ja Babel.
peruskäyttö
# Demo.py
#
alkaen i18n.translator tuonti Kääntäjä
supported_languages ​​= ['it_IT', 'fr_FR "," de_DE']
# Aktivoida italian käännökset
tr = Kääntäjä ('/ path / to / root ", supported_languages,' it_IT ')
Tulosta tr ._ ("Hei maailma!")
jossa / path / to / root / on juurihakemistoon projektin. Kun instantiated, Kääntäjä luokka luo automaattisesti hakemiston nimeltä / path / to / root / kieltä jossa käännökset tallennetaan.
Puran viestejä
Ennen kuin teet varsinaisen käännöksen, sinun täytyy purkaa viestejä lähdetiedostoista vetoamalla ote komennon i18n moduuli, joka on kääre ympärille pybabel uutetta ja pybabel päivitys:
& Nbsp; python -m i18n --root = / path / to / root --languages ​​= it_IT, fr_FR, de_DE uute
ote etsii kaikki viestit kääritty sisällä puhelut _ (), gettext () tai ngettext () ja tuottaa tiedoston nimeltä kielet / template.pot. Tämä on standardi gettext po tietokantaa, joka sisältää kaikki viestit löytyy sovellus.
Lisäksi ote () luo myös viestin luettelotiedostoon kullekin tuettuja kieliä kielet / $ KOODI / LC_MESSAGES / messages.po, jossa $ koodi on yksi kielistä lueteltujen supported_languages ​​(it_IT, fr_FR ja de_DE yllä olevassa esimerkissä ).
-luettelotiedostoja Nyt käännetään käyttäen yksi monista nykyisten välineiden, esimerkiksi QT Linguist tai Poedit. Saat oikean toiminnan sovellus, koko kielet / hierarkia on säilytettävä. Ehdotamme seurata eri messages.po tiedostot Version Control System yhdessä muiden kuuluvat tiedostot sovelluksen.
päivittäminen viestejä
Vuoden sovelluksen kehittämisessä, olet varmasti uusia viestejä käännettäväksi. Uute komento automaattisesti käsitellä tässä tapauksessa: jos se havaitsee nykyisten -luettelotiedostoja, niiden sisältö (kuten nykyiset käännökset) yhdistetään äskettäin uuttaa viestejä.
kääntäminen luettelot
On tarpeen koota -luettelotiedostoja ennen kuin käytät niitä gettext. Oletuksena meidän Kääntäjä esine automaattisesti kokoaa kaikki luettelot löytyy kielellä / tuottaen vastaavan .mo tiedostoja. Kokoaminen tapahtuu vain silloin, kun luettelo tiedostoa on muokattu. Tämä tarkoittaa, että useimmissa tapauksissa sinun ei tarvitse murehtia kokoamisen luetteloita.
Jos haluat olla enemmän valvontaa Tässä vaiheessa voit siirtää autocompile = false rakentaja Kääntäjä ja koota ne manuaalisesti komentoriviltä:
& Nbsp; python -m i18n --root = / path / to / root --languages ​​= it_IT, fr_FR, de_DE koota
tallentaminen käännökset tietokantaan
Joissakin sovelluksissa on hyödyllistä antaa käyttäjän määritellä uusia käännöksiä ja / tai ohittaa oletuksena niistä. i18n tukee tätä käyttöä tapauksessa DBTranslator luokka, joka on alaluokka Translator. Kun kääntäminen, DBTranslator ensin näyttää tietokantaan: jos viestiä ei löydy, se delegoi standardin gettext käyttäytymistä.
DBTranslator perustuu sqlalchemy. Sen rakentaja vie lisämoottorin parametri:
alkaen i18n.dbtranslator tuonti DBTranslator
alkaen sqlalchemy tuonti create_engine
moottori = create_engine (SQLite: ///db.sqlite ')
ROOT = "/ path / to / root"
KIELET = ['it_IT', 'fr_FR "]
DEST_LANGUAGE = 'it_IT'
tr = DBTranslator (ROOT, kielet, DEST_LANGUAGE, moottori = moottori)
Tulosta tr ._ ("Hello World")
DBTranslator luo automaattisesti taulukon translation_entries DB. Sitten se on jopa sovellus antaa käyttöliittymän manipuloida taulukkoon. Testausta varten voit käyttää add_translation () tavan lisätä uuden käännöksen DB:
tr.add_translation ("it_IT", "Hello World", "Ciao Mondo")
Tulosta tr ._ ("Hello World") # tulostaa "Ciao mondo"
Miten käyttää Global Kääntäjä
Suunnittelun, i18n yrittää täysin välttää globaali valtio. Tämä tarkoittaa, että voit instanssia niin monta Kääntäjä ja DBTranslator kuin haluat, jokainen viitaten eri hakemistoon ja / tai tietokantaan. Tämä on erityisen hyödyllistä testausta.
Käytännössä useimmat hankkeet halua käyttää maailmanlaajuista kääntäjä, joka tietää sanomien kaikkien komponenttien hankkeeseen. Demo sovellus näyttää tapa tehdä se translate.py moduuli:
tuonti py
alkaen i18n.translator tuonti Kääntäjä
# Asettaa juureen projektin hakemistoon, jossa tämä tiedosto
ROOT = py.path.local (__ tiedosto __). Dirpath ()
KIELET = ['it_IT', 'fr_FR', 'de_DE "]
tr = Kääntäjä (ROOT, kielet, 'it_IT')
_ = Tr._
ngettext = tr.ngettext
jos __name__ == '__main__':
& Nbsp; tr.cmdline (sys.argv)
Näin loput sovellus voi yksinkertaisesti tuoda ja käyttää _ () ja ngettext () alkaen translate.py. Tai, teidän etusija, tuonti suoraan tr objekti ja käyttö tr ._ () ja tr.ngettext () kääntää viestejä.
Kaksi viimeistä riviä koodia mahdollistaa kätevä tapa soittaa ote ja koota komentoriviltä ilman käsin määrittää root dir ja tuettuja kieliä. Vain ajaa:
& Nbsp; python translate.py ote # ... tai koota

Vaatimukset :

  • Python

Vastaavia ohjelmistoja

Translate Toolkit
Translate Toolkit

17 Feb 15

Ankur
Ankur

3 Jun 15

pylint-i18n
pylint-i18n

12 May 15

python-gettext
python-gettext

14 Apr 15

Muu ohjelmistojen kehittäjä Antonio Cuni

pdbpp
pdbpp

11 May 15

Kommentit i18n

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!