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