Portál AbcLinuxu, 2. června 2024 14:22

Dotaz: Jak správně začlenit .pot do .po?

23.10.2009 10:25 Robert Krátký | skóre: 94 | blog: Robertův bloček
Jak správně začlenit .pot do .po?
Přečteno: 1974×
Odpovědět | Admin
Příloha:
Přeložil jsem řetězce pro program Choqok, ale mám potíže s tím, aby se to projevilo ve spuštěném programu, když mu předhodím soubor .mo.

Choqok má řetězce ve dvou zdrojových souborech. Jeden .po a jeden .pot. Viz http://i18n.kde.org/stats/gui/trunk-kde4/team/cs/extragear-network/ (hned první dva soubory v tabulce). Přeložil jsem tedy choqok.po a potom jsem (v programu Poedit) dal "Aktualizovat z POT souboru" (desktop_extragear-network_choqok.pot). Dopřeložil jsem nové řetězce a ve výsledném choqok.po jsou tedy snad všechny (a tím pádem by měly být i v choqok.mo). (Zkoušel jsem i obyčejně nakopírovat zbývající řetězce z .pot do .po.)

Bohužel ve spuštěné aplikaci se některé přeložené řetězce stále zobrazují v originále. Jde o řetězce, které jsou, podle .po souboru, v souborech *.desktop. Jak zařídit, aby se ukazovaly přeložené? Přikládám .po soubor k nahlédnutí.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.10.2009 11:35 l4m4
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Odpovědět | | Sbalit | Link | Blokovat | Admin
POT odráží aktuální stav řetězců v programu a použije se (a) jako šablona, když začneš nový překlad (b) k aktualizaci PO s vlastními překlady, aby též odrážely aktuální stav programu. Jmenuje se normálně package.pot a se aktualizuje make foo.pot-update, což dělá vývojář programu.

PO jsou vlastní překlady. Jmenují se normálně jazyk.po, což identifikuje, pro který jazyk je to překlad. Správně jsi je uvedl do souladu s POT, pokud Poedit dělá, co si myslím (normálně to provde make cs.po, například, což spustí msgmerge). Takže problém bude nejspíš jen s pojmenováním, choqok.mo je překlad pro jazyk choqok, ne pro češtinu.

23.10.2009 12:36 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Vím, jaký je rozdíl mezi .po a .pot, ale vzhledem k potížím jsem usoudil, že něco dělám špatně.
Takže problém bude nejspíš jen s pojmenováním, choqok.mo je překlad pro jazyk choqok, ne pro češtinu.
V tom problém určitě není :-). Nevím, jak v jiných distrech, ale v Debianu, který používám, jsou tyto soubory uloženy v adresáři /usr/share/locale/cs/LC_MESSAGES/, který je plný souborů název_programu.mo. Nehledě na to, že jsem v původním dotazu uvedl, že většina řetězců se v prostředí programu při testování překladu zobrazuje správně, tj. přeloženě - je tedy jisté, že se můj soubor .mo načítá.
23.10.2009 13:01 l4m4
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
jsou tyto soubory uloženy v adresáři /usr/share/locale/cs/LC_MESSAGES/, který je plný souborů název_programu.mo

Po nainstalování samozřejmě, ne ve zdrojácích...

Nehledě na to, že jsem v původním dotazu uvedl, že většina řetězců se v prostředí programu při testování překladu zobrazuje správně, tj. přeloženě - je tedy jisté, že se můj soubor .mo načítá.

V tom případě je otázka, zda je POT soubor aktuální. Můžeš ho zkusit aktualizovat, jak jsem napsal, a pak znovu PO, zda se něco změní.
23.10.2009 13:54 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Po nainstalování samozřejmě, ne ve zdrojácích...
Já nemluvil o zdrojácích. Prostě: můžeš mi věřit, .mo soubor, který jsem vygeneroval z přeloženého .po, se načítá.
V tom případě je otázka, zda je POT soubor aktuální. Můžeš ho zkusit aktualizovat, jak jsem napsal, a pak znovu PO, zda se něco změní.
Ještě jednou: V přeloženém souboru .po jsou _všechny řetězce_, žádný tam nechybí. A všechny přeložené. Ale v rozhraní programu se pak některé přeložené řetězce přesto ukazují v originálu.
Cpt.Rookie avatar 23.10.2009 14:12 Cpt.Rookie
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Jenom pár poznámek, snad pomohou. Co se týká .desktop souborů - tyto jsou vcelku obyčejné texťáky obsahující překlady přímo v čitelné podobě, tudíž jejich zpracování nutně musí být odlišné od klasického .pot--.po--.mo postupu. Ke zjištění, jestli nainstalovaný .mo soubor obsahuje příslušné překlady, se dá použít příkaz msgunfmt zdrojovy_mo_soubor > cilovy_po_soubor. Nevygeneruje se přesný původní .po soubor, nicméně všechny překlady, které aktuálně jsou v .mo, tam uvedeny budou.
natural born llama
23.10.2009 14:17 l4m4
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Předpokládám, že pro překlad .desktop souborů se používá intltool, který ze všeho generuje klasický PO soubor, a posléze zase překlady zaintegruje do .desktop. Těžko ovšem říci, co Robert přesně dělá...
23.10.2009 16:05 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Těžko ovšem říci, co Robert přesně dělá...
Eh... to jsem to opravdu napsal tak nesrozumitelně? Ačkoliv oceňuji jakoukoliv snahu o pomoc, tak mi připadá, že jsi ten původní dotaz ani moc nečetl.

Jde o tohle: Jak přinutit program, aby si z přeloženého .po souboru bral všechny řetězce? Některé bere, některé ne. Ty, které nebere, jsou asi všechny v souborech .desktop.
24.10.2009 09:31 l4m4
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Promiň, ale děláš něco v Poeditu a vygeneruješ MO soubor. Jak se z toho pozná, zda se např. spustil intltool-merge, je-li to u toho konkrétního programu zapotřebí?
25.10.2009 12:25 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Ten nástroj jsem nepoužíval. Nevěděl jsem, že je k tomu potřeba (a protože jsem soubor .pot stáhl z webu lokalizačního týmu, tak jsem nevěděl, jak vznikl). Zkusím.
23.10.2009 15:44 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Co se týká .desktop souborů - tyto jsou vcelku obyčejné texťáky obsahující překlady přímo v čitelné podobě, tudíž jejich zpracování nutně musí být odlišné od klasického .pot--.po--.mo postupu.
Jasně, ale vzhledem k tomu, že ty řetězce z .desktop souborů jsou zařazeny do .pot souboru, tak bych očekával, že je správné je překládat tam...
Ke zjištění, jestli nainstalovaný .mo soubor obsahuje příslušné překlady, se dá použít příkaz msgunfmt
Zapomněl jsem uvést, že jsem tohle kontroloval. Ty řetězce, které se v rámci aplikace při testování zobrazují špatně (anglicky) tam jsou (přeložené).
Marián Kyral avatar 23.10.2009 23:15 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Pokud si to dobře pamatuji (nemůžu to teď najít), tak se to u KDE dělá tak, že tam běhá nějaký automat, který vezme .desktop soubory, nacpe řetězce do .po(t) a po přeložení se dalším automatem vrátí přeložené řetězce do .desktop souborů.

Tak nakonec jsem něco našel, i když to není zrovna ono. Ale je tam postup, jak aktualizovat .desktop soubory. How to translate .desktop files for multimedia-menus
Marián Kyral avatar 23.10.2009 23:27 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Tak jsem to našel: Scripty
A third task is taking care of the .desktop and similar files. For those files, Scripty extracts the required information from the file, merges it with the existing translation files, and also copies the translation back into the original file.
24.10.2009 09:39 l4m4
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
NIH syndrome...

KDE používá na vlastní nástroje a k tomu patchnutý gettext, takže zalézám zpět do kanálu a bude to muset vyřešit nějaký vývojář KDE.
27.12.2009 21:16 Marv-CZ | skóre: 21
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Nejlepší řešení, jak dostat překlady ze souboru .po kam patří, je program přeložit. Jedna věc jsou sobory .mo, ze kterých si překlady tahá systém gettext za běhu, jiná věc jsou soubory .desktop a jiná třeba nápovědy nebo schémata v gnome apod.

Po překladu je potřeba ještě správná instalace, což už nemusí jednoduchý instalátor u zdrojáků ve tvojí distribuci provést správně a vše. Např. soubory .desktop je obvykle potřeba prohnat nějakou utilitou, konkrétně pro KDE ti bohužel neporadím. Strajda Google ale určitě pomůže.
belisarivs avatar 25.12.2009 12:38 belisarivs | skóre: 22 | blog: Psychobláboly
Rozbalit Rozbalit vše Re: Jak správně začlenit .pot do .po?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stara diskuse, ale muze se tohle jeste nekomu hodit.

Update prekladu sablonou se provadi pomoci msgmerge.
msgmerge choqok.po choqok.pot -o vystup.po
Obcas se stava, ze progam ma nektere retezce sice vyexportovane v po, ale nenacita je. Pdrobnosti neznam, ale proste je to chyba v programu a je treba reportovat bug. Jakmile autor program opravi, jede vse jak ma.
IRC is just multiplayer notepad.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.