Návod na prácu s .po súbormi
Contents
- .pot - šablóna pre preklad (obsahuje len texty v pôvodnom jazyku)
- .po - súbro prekladu (obsahuje pôvodné reťazce spolu s preloženými)
Okrem týchto dvoch typov súborov sa môžete ešte stretnúť so súborom s príponou
- .merged.po - súbor prekladu aktualizovaný šablónou prekladu
Ak sa počas vášho prekladania zmenia texty v prekladanom súbore, po odoslaní vášho prekladu sa odoslaný preklad automaticky spojí s aktuálnym súborom šablóny .pot čím vznikne nový súbor .merged.po.
Keď chcete prekladať súbor, ktorý pred vami prekladal niekto iný, je potrebné stiahnuť si poslednú verziu .merged.po.
Nástroje na preklad
Odporúčame používať bežný textový editor, najlepšie taký, ktorý má zvýrazňovanie syntaxe pre GNU Gettext a umožňuje skontrolovať preklepy pomocou nástroja Spellchecker
Týmto požadavkám najlepšie vyhovujú programy:
gedit (v systémoch linux) - stačí zapnúť Nástroje > Zvýrazniť preklepy
- jedit (multiplatformový) - návod na zapnutie kontroly preklepov (doplním čoskoro)
Existujú aj nástroje, ktoré sa snažia prekladanie uľahčiť, tieto programy majú však majú aj svoje nedostatky, ktoré bránia ich použitiu. Žiadny z nasledujúcich programov napríklad nezobrazuje kontext od autorov prekladu (riadok msgctx), ktorý je kľúčový pri jednoslovných výrazoch ako "Default" pri ktorých tvar prekladu (predvolený/á/ý, východzí/ia/ie) a ani predchádzajúcu verziu zmeneného originálneho (anglického) reťazca (riadky začínajúce #|).
Tieto programy odporúčame používať len nováčikom, ktorým sa nechce používať nástroje GNU gettext na kotnrolu a preloženie prekladu do binárnej formy, ktoré sú určené pre príkazový riadok
Poedit (návod) - odporúčame používať len v Linuxe, lebo vo Windows nemá kontrolu preklepov.
- Lokalize
- Gtranslator (iba pre linux)
- Virtaal - neodporúčame, pri testovaní neakceptoval vzorec pre množné tvary (plural forms) uložený v súbore .po
Výhodou týchto nástrojov sú veci ako:
- automatické generovanie binárneho .mo súboru, pomocou ktorých je možné preklad otestovať priamo v programe
- pamäť prekladov
- možnosť zobraziť viac prekladov naraz
integrované vyhľadávanie slov v slovníku OpenTran
Syntax PO súboru
Po súbor sa skladá z dvoch častí
- hlavičky
- položiek na preklad
Hlavička .po súboru
Keď si zo systému Damned Lies stiahnete .po súbor, ktorý ešte nebol prekladaný, uvidíte správny tvar hlavičky:
1 # Slovak translation for <nazov modulu>.
2 # Copyright (C) 2012 <nazov modulu>'s COPYRIGHT HOLDER
3 # This file is distributed under the same license as the nemiver package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: <nazov modulu> <vetva>\n"
9 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
10 "product=nemiver&keywords=I18N+L10N&component=general\n"
11 "POT-Creation-Date: 2012-10-02 15:36+0000\n"
12 "PO-Revision-Date: 2012-10-02 15:36+0000\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: Slovak <gnome-sk-list AT gnome DOT org>\n"
15 "Language: sk\n"
16 "MIME-Version: 1.0\n"
17 "Content-Type: text/plain; charset=UTF-8\n"
18 "Content-Transfer-Encoding: 8bit\n"
19 "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
Ako je vidieť z príkladu, mnoho údajov je už predvyplnených. Stačí:
pridať aktuálny rok pred "<nazov modulu>'s COPYRIGHT HOLDER"
prepísať "FIRST AUTHOR <EMAIL@ADDRESS>, YEAR." Napríklad: Jozef Mrkva <[email protected]>, 2012.
- nastaviť PO-Revision-Date na aktuálny dátum a čas. Napríklad v zime 2.10.2012 o 15:40 nastavíme 2012-10-02 15:40+0100\n. Ak platí letný čas namiesto 0100 nastavíme 0200.
nastaviť Last-Translator prepísaním FULL NAME <EMAIL@ADDRESS>. Napríklad Jozef Mrkva <[email protected]>
Pri použití grafických programov určených na preklad, je potrebné skontrolovať si najmä správnosť nastavenia Plural-Forms (určuje tvary množných čísel).
Ak už súbor niekto pre nami prekladal, súbor by mal mať hlavičku správne vyplnenú. V takom prípade stačí
- pridať aktuálny rok za Copyright (ak je iný ako predošlé)
- doplniť sa ako ďalší autor v poradí
- zmeniť položky PO-Revision-Date a Last-Translator.
ak modul kontrolujete a používate grafický program, je potrebné nastaviť položku Last-Translator na údaj, ktorý tam bol pred vašou kontrolou
Ak napríklad prekladateľ Jozef Mrkva doplní preklad modulu anjuta, bude hlavička vyzerať nasledovne:
1 # Slovak translation for anjuta.
2 # Copyright (C) 2002, 2011, 2012, 2013 anjuta's COPYRIGHT HOLDER
3 # This file is distributed under the same license as the anjuta package.
4 # Martin Lacko <[email protected]>, 2002.
5 # Peter Mráz <[email protected]>, 2011, 2012.
6 # Jozef Mrkva <[email protected]>, 2013.
7 #
8 msgid ""
9 msgstr ""
10 "Project-Id-Version: anjuta\n"
11 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
12 "product=anjuta&keywords=I18N+L10N&component=core application\n"
13 "POT-Creation-Date: 2013-01-01 11:33+0000\n"
14 "PO-Revision-Date: 2013-05-06 20:31+0200\n"
15 "Last-Translator: Jozef Mrkva <[email protected]>\n"
16 "Language-Team: Slovak <gnome-sk-list AT gnome DOT org>\n"
17 "Language: sk\n"
18 "MIME-Version: 1.0\n"
19 "Content-Type: text/plain; charset=UTF-8\n"
20 "Content-Transfer-Encoding: 8bit\n"
21 "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0\n"
Položky na preklad
V tejto časti súboru sa nachádzajú položky na preklad.
Poloha reťazca,reťazec na preklad a preklad
Každá z položiek má minimálne tieto riadky:
- prázdny riadok oddeľujúci jednotlivé položky
- riadok začínajúci "#: " s odkazom na súbor alebo viacero súborov, v ktorých sa nachádza reťazec určený na preklad
- reťazec určený na preklad označený slovom "msgid"
- reťazec prekladu označený slovom "msgstr"
Hodnota premennej v reťazci
Ak reťazec obsahuje hodnotu nejakej premennej, nachádza sa pri položke ešte príznak (začínajúci znakmi "#, "), ktorý určuje programovací jazyk (v našom prípade najčastejšie c-format), aby bolo možné správne urobiť syntaktickú analýzu
Nepresný preklad (fuzzy)
Ak vývojári zmenia originálny text alebo doplnia kontext (označený slovom msgctxt), novovygenerovaný text bude niesť príznak nepresného prekladu fuzzy. V prípade, že je súčasne použitý aj iný príznak sú príznaky oddelené čiarkou napr #, fuzzy, c-format.
Ak bol originálny text zmenený, starý text bude označený znakmi "#| ". Pomocou tohto reťazca si môžeme skontrolovať, čo vývojári zmenili a aktualizovať svoj preklad.
Príznakom fuzzy môže položku označiť aj kontrolór, ak si myslí, že preklad je nepresný. Prekladateľ potom preklad položky opraví a príznak zmaže.
Komentáre od vývojárov
Okrem kontextu môžu vývojári k prekladanému reťazcu poskytnúť aj komentár, ktorý v .po súbore začína znakmi "#. ".
1 prázdny riadok
2 #. komentár od vývojárov
3 #: odkaz na súbor(y), v ktorom sa daný reťazec nachádza
4 #, fuzzy, c-format
5 #| msgid predchádzajúci originálny reťazec
6 msgctxt aktuálny kontext od vývojárov
7 msgid aktuálny originálny reťazec s hodnotou premennej (napr. %s %d %u)
8 msgstr preložený reťazec
Komentáre prekladateľov
Do .po súboru môžeme pridať aj svoje komentáre začínajúce znakom "# ".
V našom tíme je zaužívané pravidlo, že každý člen tímu svoje komentáre označuje svojimi iniciálmi. Ak napríklad pridá komentár Jozef Mrkva, bude jeho komentár vyzerať takto "# JM: komentár"
Dobrým zvykom je tiež doplniť komentáre podľa zdrojového kódu, ktoré hovoria, či je text na nejakom ovládacom prvku v okne, v príkazovom riadku, v log súbore alebo ide o reťazec schémy gconf (gconf je niečo ako registy v systéme Windows). Podrobnosti sa nachádzajú v časti Druhy reťazcov a súborov
1 prázdny riadok
2 #. komentár od vývojárov
3 #: odkaz na súbor(y), v ktorom sa daný reťazec nachádza
4 #, fuzzy, c-format
5 #| msgid predchádzajúci originálny reťazec
6 msgctxt aktuálny kontext od vývojárov
7 msgid aktuálny originálny reťazec s hodnotou premennej (napr. %s %d %u)
8 msgstr preložený reťazec
Tvary množných čísel
Niektoré položky môžu mať aj tvar pre množné číslo. V takom prípade budú k dispozícii až tri reťazce na preloženie, pretože v slovenčine používame tri tvary množného čísla
- pre hodnoty 0 a viac ako 5
- pre hodnotu 1
- pre hodnoty 2,3 a 4
tieto tvary a ich poradie sú učené vzorcom, ktorý je zapísaný v hlavičke .po súboru. V tíme Gnome sme nastavili vzorec tak aby prekladateľ mohol použiť nasledovnú mnemotechníckú pomôcku:
1 prázdny riadok
2 # komentár prekladateľa
3 #. komentár od vývojárov
4 #: odkaz na súbor(y), v ktorom sa daný reťazec nachádza
5 #, príznak(y)
6 #| msgctxt predchádzajúci kontext od vývojárov
7 #| msgid predchádzajúci originálny reťazec pre jednotné číslo
8 #| msgid_plural predchádzajúci originálny reťazec pre množné číslo
9 msgctxt aktuálny kontext od vývojárov
10 msgid aktuálny originálny reťazec pre jednotné číslo
11 msgid_plural aktuálny originálny reťazec pre množné číslo
12 msgstr[0] preložený reťazec - tvar pre 0 položiek (v skutočnosti 0 a 5 a viac)
13 msgstr[1] preložený reťazec - tvar pre 1 položku
14 msgstr[2] preložený reťazec - tvar pre 2 položky (v skutočnosti 2,3,4)
Nepoužité reťazce
Ak vývojári vymažú časť kódu spolu s reťazcami určenými na preklad. V aktualizovanom .po súbore sa takéto položky nastavia za nepoužité pomocou znakov "#~ ":
Medzi tieto reťazce sa môžu dostať aj reťazce, ktoré vývojári zmeníli a program, ktorý vytvára .po súbor, nepochopí, že ich má priradiť k položke ako starý reťazec začínajúci znakmi #|. Z tohto dôvodu je dobré prečítať si tieto reťazce, ak bol modul zmenený.
Tieto reťazce môžete z .po zmazať, alebo ich tam môžete nechať, pre prípad, že by vývojári zmenili názor a niektorý z reťazcov znova použili.
Preloženie súboru .po na binárny súbor .mo
Keď chceme spustiť prekladaný program s Keď chceme spustiť prekladaný program s naším prekladom (napríklad kvôli otestovaniu), je potrebné .po súbor najskôr preložiť do binárnej podoby.
Poznámka: Je potrebné mať nainštalovaný balík gettext
Preklad súboru .po na binárny súbor .mo je veľmi jednoduchý. Stačí v príkazovom riadku spustiť
msgfmt súbor.po
- Ak chceme modul zároveň skontrolovať, môžeme použiť voľbu -cv (pozri Kontrola súboru .po).
- Ak chceme binárny súbor rovno umiestniť do cieľového adresára, môžeme použiť voľbu -o
Testovaním binárnej podoby prekladu sa podrobnejšie zaoberá časť Návod na otestovanie prekladu.
Kontrola súboru .po
Ak sa pokúsite do systému Damned Lies odovzdať chybne formátovaný súbor. Zobrazí sa chybové hlásenie, "Súbor .po neprešiel kontrolou 'msgfmt -vc'. Prosím, opravte súbor a opätovne ho odošlite."
Kontrola .po súboru je veľmi jednoduchá, stačí do príkazového riadka napísať:
msgfmt -vc súbor.po
Výstupom kontroly bude číslo riadka, na ktorom sa chyba nachádza a typ chyby. napr:
súbor.po:2349 počet formátovacích značiek v 'msgid' a 'msgstr' sa nezhoduje súbor.po:2352: neznáme kľúčové slovo "asdf" súbor.po:2352:19: syntax error súbor.po:2353: koniec riadka uprostred reťazca msgfmt: nájdené 4 závažné chyby
V tomto prípade bol problém v tom, že prekladateľ na riadku 2349 zabudol do prekladu napísať formátovaciu značku %s a na riadku 2352 zabudol dať pred znak " znak /.