V dokumentaci je napsano: Comment lines starting with #: contain references to the program’s source > code.
Je to komentar, ktery xgettext vytvori automaticky, abys vedel, kde ve zdrojovem kodu to konkretne je. Nic vic, nic min. Nebo ne? :) PM Dne 5. prosince 2017 13:35 Ondrej Tuma <konfere...@webjet.cz> napsal(a): > Hoj, > > no tak to opravdu není. Ten princip je jednoduchý, a doporučuji si o > gettextu něco napsat. Žádný hezký český zdroj mě ale nenapadá. Anglický > asi nejlépe: > > https://www.gnu.org/software/gettext/manual/gettext.html > > Ve zkratce je postup následující: > > v kódu, kde se má doplnit překlad se použije funkce gettext, případně > alias podtržítko (_): > > from gettext import gettext > print(gettext("Hello world")) > > Následně se pomocí nástrojů gettextu vygeneruje pot soubor: > > xgettext -o aplikace.pot --language=python > > Z něj se pak různým způsobem dá vytvořit soubor s překlady, nejlépe pak: > > msginit -l cs (pro český jazyk) > > výsledný soubor cs.po se edituje v jednom z nástrojů, jenž jsem psal a > nakonec se vygeneruje binární katalog: > > msgfmt -o cs/LC_MESSAGES/aplikace.mo cs.po > > V kódu je pak třeba definovat jak se katalog jmenuje (název > katalogu bez přípony). > > from gettext import bindtextdomain > bindtextdomain('aplikace', localedir='/usr/share/locale') > > V případě, že používáš webovou aplikaci a šablony (jinja2) pak je třeba > vytvořit objekt translation, ten se pak předává při generování výstupu. > > from gettext import translation > translations = translation('aplikace', > localedir="/usr/share/locale", > languages=[cs, sk], > fallback=True) > > env = Environment(loader=FileSystemLoader(path), > undefined=MissingUndefined, > extensions=['jinja2.ext.i18n']) > env.install_gettext_translations(translations) > template = env.get_template("sablona.html") > > > localedir je cesta k adresari, ve kterem jsou adresare s > jazyky, v nich LC_MESSAGES a v nich aplikace.mo > > Příklady sem nezkoušel, tak snad sem je napsal správně. Pak to funguje > tak, že gettext natáhne katalogy, dle nastavených jazyků do paměti a > podle toho, jestli najde string v příslušném jazykovém katalogu > přeložený (postupně zkouší všechny jazyky), vrátí přeložený string. > > Asi o tom zase napíšu článek, ať se pořádně znemožním :-) > > Ondra > > V Tue, 05 Dec 2017 11:21:26 +0100 (CET) > "Ctibor.Plasek" <ctibor.pla...@seznam.cz> napsáno: > > > Ahoj. > > Díky moc za rady - teda spíš za nasměrování :-) Konečně vím, co mám > > hledat... > > > > Sice to zatím moc nechápu (zdá se mi, že se odkazuje na určitý přesný > > řádek v kódu, > > > > což by asi bylo nešťastné při jakémkoliv doplňování - takže to > > nakonec asi nebude pravda) > > > > > > > > > > Ctibor > > ---------- Původní e-mail ---------- > > Od: Ondrej Tuma <konfere...@webjet.cz> > > Komu: python@py.cz > > Datum: 23. 11. 2017 8:09:17 > > Předmět: Re: [python] Překlady programů > > "Hoj, > > > > GTK+ používá gettext také. > > > > V Pythonu používám přímo gettext modul: > > https://docs.python.org/3/library/gettext.html?highlight=gettext#module- > > gettext > > Narozdíl od klasické C knihovny, se s ním pracuje o něco lépe a > > pohodlněji. > > > > Mezi ty nejznámější programy na správu překladů patří poedit > > https://poedit.net/. > > > > A rozhodně zajímavým Michalovým počinem je Weblate > > https://weblate.org/. Zatím mám u něj jeden free software a to teprve > > pár dní, takže zkušenosti nemám, > > > > Ondra > > > > V Thu, 23 Nov 2017 01:15:47 +0100 > > Petr Messner <petr.mess...@gmail.com> napsáno: > > > > > Ahoj, > > > > > > gettext je standard. Zkus se podívat na tyto odkazy - pokud neděláš > > > web, tak si ty webové věci od toho odmysli :) > > > > > > - https://docs.djangoproject.com/en/2.0/topics/i18n/ > > > - https://docs.djangoproject.com/en/2.0/topics/i18n/translation/ > > > - http://babel.pocoo.org/en/latest/ > > > > > > Pokud používáš nějaký framework (webový, qt, gtk, ...), najdi si > > > dokumentaci o internacionalizaci (i18n) k němu :) > > > > > > Obecně chceš soubor a ne databázi, protože soubor budeš mít > > > normálně v gitu, kolegové posílat pull requesty na to apod. S > > > formátem gettextu umí pracovat hromada nástrojů, včetně statické > > > analýzy kódu pro vyhledávání nepřeložených řetězců, výpočet > > > translation coverage... > > > > > > PM > > > > > > Dne 23. listopadu 2017 0:32 Ctibor.Plasek <ctibor.pla...@seznam.cz> > > > napsal(a): > > > > > > > Ahoj. > > > > Přemýšlím nad následujícím problémem - jak jednoduše vytvořit > > > > vícejazyčnou verzi programu. > > > > Vytvořit databázi, nebo textové soubory? Jakým nejlepším způsobem > > > > říct programu, že pokud je zapnutá volba "česky"¨ > > > > tak že první v menu bude "Soubor", když anglicky tak že to bude > > > > "File" atd. Určitě jste už tyto problémy řešili, tak jsem se > > > > chtěl zeptat, co a jakým způsobem je nejvýhodnější (i pro event. > > > > další rozšíření překladů) > > > > > > > > Díky za rady > > > > > > > > _______________________________________________ > > > > Python mailing list > > > > python@py.cz > > > > http://www.py.cz/mailman/listinfo/python > > > > > > > > Visit: http://www.py.cz > > > > > > > > > > > > > > > > > > -- > Ondřej Tůma <mc...@zeropage.cz> > www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz