i18n

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

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

translationstring
translationstring

14 Apr 15

Gucharmap
Gucharmap

22 Jun 18

uim
uim

14 Apr 15

ikazuchi
ikazuchi

12 May 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!