Atviras kodas Lietuvai

Stop the Hollyweb! No DRM in HTML5.

Istorija moko vertinti savo laisvę, nes gali ją prarasti. Neįkyrėkite su savo politika, atsako nenorintys mokytis.
Richard Stallman

Atviro kodo programų vertimo pradžiamokslis

Didžioji dalis laisvų (atviro kodo) programų vertimui naudoja gettext mechanizmą (.po bylas), todėl čia bus aprašytas tik šis būdas.

Pradžia bei įrankiai

Paprasčiausia yra atsisiųsti iš programos, kurią norite versti, interneto svetainės vertimo šabloną - t.y. bylą su išplėtimu .pot, tada ją pervadinti į .po ir versti. Jokių specialių programų nereikia, užtenka paprasto tekstų redaktoriaus. Trumpas .po bylos aprašymas:

# Lithuanian translation of GIMP.
# Copyright (C) 2001 Free Software Foundation, Inc.
# 
msgid ""
msgstr ""
"Project-Id-Version: GIMP 1.2\n"
"POT-Creation-Date: 2002-07-23 22:19+0200\n"
"PO-Revision-Date: 2002-10-05 11:04+0200\n"
"Last-Translator: Jonas Lietuvis <lietuvis@lietuva.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n"

Pradžioje yra bendra informacija - čia įrašomas verčiamos programos pavadinimas, vertėjo informacija, vertėjų komanda (Language-Team), koduotė (charset) ir t.t. Verčiant geriausia naudoti UTF-8 koduotę. Jei programa nesupranta UTF-8 tada reikia rinktis iso-8859-13 koduotę.
Toliau yra svarbiausia - eilutės, kurias reikia išversti:

msgid "This is english words"
msgstr ""

Eilutėse, prasidedančiose msgid yra angliški žodžiai, kuriuos reikia išversti ir įrašyti tarp kabučių, esančių prie msgstr, taigi po vertimo turi atrodyti maždaug taip:

msgid "This is english words"
msgstr "Tai yra angliški žodžiai"

Versti galima su bet kokia tekstų redagavimo programa, tačiau patogiausia tai daryti su tam pritaikytomis programomis - Emacs, KBabel, gtranslator, PoEdit. Programa PoEdit labai gera tuo, kad veikia tiek Linux, tiek Windows sistemose.

Kaip aš galėčiau prisidėti, ir kaip yra organizuojamas informacijos apsikeitimas?

Pradžiai geriausiai imti nepradėtas versti programas, ypač tas kur pats naudoji. Kai išmoksite, tada galėsi perimti kai kuriuos vertimus.

Visų pirma reikia atsisiųsti verčiamos programos vertimo šabloną (bylą su .pot išplėtimu) iš interneto. Jei nežinote kur rasti vertimo šablonus - paprasčiausiai parsisiųskite neišverstą (.pot) ar pusiau išverstą bylą (.po) iš iš GNOME vertimo projekto puslapių:
Pagrindinis Gnome 2.6 versijos puslapis lietuviškiems vertimams yra čia: http://developer.gnome.org/projects/gtp/status/gnome-2.6/lt/index.html
O iš čia galima iškart atsisiųsti pagrindinių papildomų bei kitų GNOME programų vertimų bylas.
Visa GNOME vertimų statistika yra čia: http://developer.gnome.org/projects/gtp/status.

Patyrusiems kompiuterio vartotojams vertimo bylas geriausiai gauti iš verčiamos programos CVS (reikalingiausia informacija, kaip naudotis GNOME CVS, yra developer.gnome.org svetainėje, o pilna dokumentacija yra www.cvshome.org).

Labai daug programų vertimų bylų (.po) galima rasti Debian vertimų puslapyje: www.debian.org/intl/l10n

Tada išverti (su aukščiau paminėtais įrankiais) ir siunti programos autoriams. Jei kyla kokių klausimų geriausia kreiptis į programų vertimams skirtą konferenciją komp_lt - žvilgtelk į http://www.lietuvybe.org arba paprasčiausiai adresu serv@konferencijos.lt nusiųskite laišką su tuščiu Subject: laukeliu, o jame įrašykite vienintelę eilutę

subscribe komp_lt

Tada gausite laišką ir įvykdę ten esančius nurodymus galėsite rašyti laiškus adresu komp_lt@konferencijos.lt arba per web sąsają:
http://www.konferencijos.lt susiraskite komp_lt konferenciją.

Ar verta versti dokumentaciją?

Ne, dokumentacijos beveik niekas neverčia. Ne tik kad į lietuvių kalbą, bet ir į kitas. Praktiškai tik ispanų ir italų komandos verčia GNOME dokumentaciją. Bent kol kas jos niekas neskaito :(

Terminai

Iškils klausimų dėl to, kokius žodžius naudoti... Dalis jų yra surašyta www.lietuvybe.org/?menuid=Zodynai. Čia tokie beveik oficialūs terminai, nors nėra gerai atrinkti ir peržiūrėti. Jei (tavo manymu) yra geresnių atitikmenų arba ko nors trūksta - rašyk į aukščiau minėtą konferenciją.

Vertimų patikrinimas bei atnaujinimas

Klausimas: Aš išverčiau vieną pot bylą, po kurio laiko atsiranda nauja to pot versija. Kai kurios frazės lieka senos, kai kas atsiranda naujo. Kaip būtų geriausia padaryti, kad nereikėtų iš naujo suvedinėti tų senų frazių, kurios ir taip jau suvestos? Gal yra kokios programos tam dalykui?

Atsakymas: taip. Viena iš esminių gettext paketo programų yra msgmerge. Gavus naują projekto foo frazių be vertimų bylą foo.pot, ir turint seną vertimą foo-lt.po, paleidi

msgmerge foo-lt.po foo.pot > lt.po
mv lt.po foo-lt.po

išverti, tada sukompiliuoji iš .po bylos į .mo (verčiant su PoEdit programa .mo padaromas automatiškai išsaugant verčiamą bylą) ir pasižiūri, kiek išversta:

msgfmt -c -v -o foo.mo foo-lt.po

kad išbandytum, kaip tai atrodo, nukopijuoji .mo bylą į /usr/share/locale/lt/LC_MESSAGES katalogą (kaip tiksliai turi vadintis .mo byla rasite pasižiūrėję į kitas kalbas, pvz vokiečių - katalogas /usr/share/locale/de/LC_MESSAGES):

cp foo.mo /usr/share/locale/lt/LC_MESSAGES/foo.mo
(jei dirbi su Linux)

Windows OS reikia nueiti į katalogą, į kurį įdiegėte programą ir ten pačiam susirasti .mo bylų vietą.

Tada paleidi programą, kurią verti, iš naujo. GNOME programose po kataloge dažniausiai yra skriptukas update.pl arba update.sh. Tuomet vietoj visų paminėtų veiksmų galima paleisti

./update.pl lt

Tačiau kai kurių programų naujesnės versijos reikalauja paketo xml-i18n-tools. Jei parsisiunčiate pradinius tekstus (sources) .tar.gz pavidalu, tuomet lengviausia tai patikrinti -- šakniniame kataloge yra keletas xml-18n-* bylų. Jei gavote sourcus iš CVS, tuomet tos bylos sukuriamos kompiliavimo metu (tiksliau, leidžiant ./autogen.sh). Tokių programų vertimai atnaujinami komanda.

xml-i18n-update lt

PO formatas

Tie, kas vers po bylas, atkreipkite dėmesį į šias pastabas:

  1. Ženklas & reiškia, kad po jo esanti raidė programoje bus pabraukta (pvz "&File" programoje atrodys File)
  2. Eilutėse, pažymėtose
    #, c-format
    yra labai svarbu %s ir kiti parametrai. Jų skaičius, reikšmė po % ir tvarka turi sutapti. Jei reikia sukeisti, tuomet yra toks formatas:
    msgid "%s %d"
    msgstr "%1$d %2$s"

    Visa laimė, kad tai lengva patikrinti:

    msgfmt -c -v -o lt.gmo lt.po
    patikrins visus formatus ir praneš visas klaidas.
  3. Jei nenori versti, pavyzdžiui "Alt+Right", tai nepalik neišversto, tačiau nukopijuok. Tuomet bus aišku, kad viskas yra išversta.
  4. vertimai turėtų vadintis lt.po, o jei jų daug -- tarkim, yast-lt.po. yast.pot yra tuščia (be vertimų), programos xgettext sugeneruojama byla.

Daugiau skaitykit anglišką dokumentaciją, pvz. "info gettext" arba KDE Internacionalizacijos puslapyje esančią KDE-Translation-HOWTO. Naudinga perskaityti apie GNOME vertimo projektą.

Mantas Kriaučiūnas
Gediminas Paulauskas