i18n

Software screenshot:
i18n
Podrobnosti Software:
Verze: 0.1
Datum uploadu: 14 Apr 15
Vývojka: Antonio Cuni
Licence: Volný
Popularita: 17

Rating: 3.0/5 (Total Votes: 1)

i18n je balíček, který se snaží zjednodušit pracovní postup a vývoj internacionalizovaných aplikací. & Nbsp; Jedná se o tenký obal kolem stávajících nástrojů, zejména gettext a babel.
Základní použití
# Demo.py
#
od i18n.translator dovozu Překladatel
supported_languages ​​= ['it_IT "," fr_FR "," de_DE']
# Aktivovat italské překlady
tr = Překladatel ("/ cesta / k / root", supported_languages, "it_IT")
print tr ._ ("Hello world!")
kde / cesta / k / root / je kořenový adresář vašeho projektu. Když instance, třída Překladatel automaticky vytvoří adresář s názvem / cesta / k / root / jazyky, kde jsou uloženy překlady.
Těžba Zprávy
Před provedením aktuální překladu, je třeba extrahovat zprávy z vašich zdrojových souborů, vyvoláním příkazu extract na i18n modulu, který je wrapper kolem pybabel extraktu a aktualizace pybabel:
& Nbsp; python -m i18n --root = / cesta / k / root --languages ​​= it_IT, fr_FR, de_DE extrakt
extrakt hledá všechny zprávy zabalené uvnitř volání _ (), gettext () nebo ngettext (), a vytváří soubor s názvem jazyky / template.pot. Jedná se o standardní gettext po file`, který obsahuje všechny zprávy nalezené v žádosti.
Kromě toho, extrakt () také vytvoří soubor katalogu poselství pro každý z podporovaných jazyků jako jazyků / $ CODE / LC_MESSAGES / messages.po, kde $ kód je jedním z jazyků uvedených v supported_languages ​​(it_IT fr_FR a de_DE ve výše uvedeném příkladě ).
Soubory katalogu jsou nyní připraveny být přeloženy pomocí jedné z mnoha existujících nástrojů, například QT lingvista nebo poEdit. Pro správné fungování aplikace, celé jazyky / hierarchie musí být zachována. Doporučujeme sledovat různé messages.po soubory ve Version Control System společně s dalšími soubory, které patří do aplikace.
Aktualizace Zprávy
Při vývoji aplikace, určitě přidávat nové zprávy k překladu. Příkaz extrakt automaticky zpracovat tento případ: pokud zjistí, existující soubory katalogu, jejich obsah (včetně existujících překladů), se spojil s nově vytěžené zpráv.
Kompilace katalogy
Je nutné sestavit katalogu soubory před jejich použitím s gettext. Ve výchozím nastavení, naše Translator objekt automaticky zpracovává všechny katalogy nalezené v jazycích /, produkovat odpovídající .mo soubory. Kompilace se provádí pouze v případě, že soubor katalogu byl změněn. To znamená, že ve většině případů nemusíte se starat o sestavení katalogů.
Pokud chcete mít větší kontrolu nad tomto kroku, můžete předat autocompile = false konstruktoru Překladatel a zkompilovat ručně z příkazového řádku:
& Nbsp; python -m i18n --root = / cesta / k / root --languages ​​= it_IT, fr_FR, de_DE kompilovat
Ukládání překlady do databáze
Pro některé aplikace je vhodné nechat uživateli definovat nové překlady a / nebo přepsat výchozí hodnoty. i18n podporuje tento případ použití s ​​třídou DBTranslator, která je podtřídou Translator. Při překládání, DBTranslator nejprve hledá v databázi: v případě, že zpráva není nalezen, deleguje na standardní chování gettext.
DBTranslator je založen na sqlalchemy. Jeho konstruktor má další parametr motoru:
od i18n.dbtranslator dovozu DBTranslator
od sqlalchemy dovozu create_engine
engine = create_engine ("sqlite: ///db.sqlite")
ROOT = '/ cesta / k / root "
JAZYKY = ['it_IT "," fr_FR']
DEST_LANGUAGE = 'it_IT'
tr = DBTranslator (ROOT, jazyky, DEST_LANGUAGE, motor = motor)
print tr ._ ("hello world")
DBTranslator automaticky vytvoří tabulky translation_entries v DB. Pak je na žádosti o poskytnutí uživatelského rozhraní pro manipulaci tabulky. Pro testování, můžete použít metodu add_translation () vložit nový překlad v DB:
tr.add_translation ("it_IT", "hello world", "ciao Mondo")
print tr ._ ("Hello World") # tiskne "ciao mondo"
Jak používat Global Translator
Podle návrhu, i18n snaží se zcela vyhnout jakékoli globální stát. To znamená, že můžete vytvořit instanci jako mnoho Překladatel a DBTranslator, jak chcete, každý z nich s odkazem do jiného adresáře a / nebo databáze. To je zvláště užitečné pro testování.
V praxi však většina projektů chcete použít globální překladač, který ví o zprávách všech složek v rámci projektu. Demo aplikace ukazuje způsob, jak to udělat v translate.py modulu:
import py
od i18n.translator dovozu Překladatel
# Nastavit kořen projektu adresář obsahující tento soubor
ROOT = py.path.local (__ __ file). Dirpath ()
JAZYKY = ['it_IT "," fr_FR "," de_DE']
tr = Translator (ROOT, jazyky, "it_IT")
_ = Tr._
ngettext = tr.ngettext
pokud __name__ == "__main__":
& Nbsp; tr.cmdline (sys.argv)
Tímto způsobem, zbytek aplikace může jednoduše importovat a používat _ () a ngettext () z translate.py. Nebo na vašich preferencí, import přímo tr objekt a použití tr ._ () a tr.ngettext () překládat zprávy.
Poslední dva řádky kódu umožňuje pohodlný způsob, jak volat Rozbalení a kompilace z příkazového řádku, aniž byste museli ručně zadat kořenové dir a podporovaných jazyků. Stačí spustit:
& Nbsp; python translate.py extrakt # ... nebo kompilovat

Požadavky na :

  • Python

Podobný software

ikazuchi
ikazuchi

12 May 15

PHP Net_IDNA
PHP Net_IDNA

11 May 15

translationstring
translationstring

14 Apr 15

Ostatní software developer Antonio Cuni

pdbpp
pdbpp

11 May 15

Komentáře k i18n

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!