Next Previous Contents

7. Gazen Lanera!

Honuntz heldu bazara programen mezuak euskeratzen has zaitezke, beti ere eskuliburu honen urratsak jarraituz, lagungarri gerta bait dezake. Buruan eduki ikasitako ezaguerak garrantzitsuak direla. Euskeraketak hasteko prest? Baiezkoa erantzuten baduzu... aurrera!

7.1 POT Fitxategiaren Bila

Programa bat euskeratzeko, lehendabizi dagokion POT fitxategia lortu behar duzu. Mahiz gertatzen da programaren jatorrizko kodearekin bat etortzen dela. Hots, berorren jatorrizko kodeak lortu beharko dituzu. Jatorrizko kodeak lortu orduko, zure direktorio batean beroien kopia bat egitea aholkatzen da. Ohitura oso ona izaten da, oraintxe egin dezakezu?

Gero, programaren jatorrizko (zuk sortutako direktorio horren barruan) po/ direktorioan koka zaitez. Direktorio honetan hainbat hizkuntzetara itzulitako PO fitxategiak egoten dira. "ls" agindua erabiliz datorren adibidean agertzen den bezalako zerbaitekin topo egin dezakezu:


Makefile.am          cs.po    fi.po    it.po
Makefile.in          da.po    fr.po    ja.po
README               el.po    gl.po
kaixo.pot            eu.po    hr.po

PO fitxategiak direnak (eu.po bezalakoak, adibidez) itzulitako mezuak dauzkaten fitxategiak dira. kaixo.pot fitxategiak ordea programaren jatorrizko hizkuntzan (askotan inglesez izango dira) dauden mezuak edukiko ditu.

po/ direktorioa ez baduzu aurkitzen, programaren egileari (edo egileei) beronek internazionalizaketa (edo bertokoketa, batzuek dioten bezala) eskeintzen al duen galde iezaiozu. Programak horrelakorik ez badu uzten, berorren egileari gutun elektroniko bat bidaltzea burutazio bikaina da, bere internazionalizaketaren alde onuragarriak azalduz eta programak itzultzeko gettext erabiltzearen abaintailak ere agertuz. Zenbat eta hizkuntza gehiagotako prestatuta egon, hainbat erabiltzaile gehiagok erabil ahal izango bait du, bai?

Bestalde, direktorioa bertan agertu ezkero, baina kaixo.pot fitxategia ez bada agertzen, berau lortzeko bi bide dauzkazu: Bata, egileari posta elektroniko bat bidali, gero beronek beste posta batean gehigarri gisa zuregana itzuliz; Bestea, zuk zeuk sortzea (zelako azeria!).

kaixo.pot bat sortzeko programaren src/ direktorioan lekutu (kokatu) zaitez, bertan jatorrizko kode guztiak egongo bait dira, fitxategia.c, fitxategia.h, eta abar. Direktorio horretan POTFILES.in izeneko fitxategi bat egotea behin baino gehiagotan gertatzen da. Fitxategi honek, euskeratu daitezkeen mezuak dituzten jatorrizko kodeen fitxategien zerrenda bat edukitzen du. Ohizko POTFILES.in fitxategi batek eduki dezakeen lerro batzuen (besteak beste) adibide ttipi bat:


main.c
help.c
screen.c
texture.c
wdefaults.c

Honen esanahia zera da, POTFILES.in-an zerrendatutako fitxategiek dauzkaten mezu euskerakorrak kaixo.pot fitxategian sartuko direla.

POTFILES.in fitxategia (edo antzeko ezaugarriak dituen beste bat) ez dela ageri? Hori bai dela adarjotzea! Arnasa sakon hartuaz (estutu gabe, lasaitasunez) beste bide bat landu beharko dugu, ia beti irtenbideren bat aurkitu bait dezakegu. po/ direktoriora joan beharko dugu, eta han patuaren esanetara PO fitxategi bat aukeratuko dugu, adibidez it.po fitxategia. Fitxategi hori argitatu, eta argitatze tresnako beste lehio batean (gero POTFILES.in izenarekin gordeko duzuna) it.po-an zehar agertzen diren fitxategi guztien izenak kopiatzen joan. it.po fitxategiaren edukina honoko hau dela demagun:


#: ../src/appicon.c:570 ../src/dialog.c:223 ../src/dock.c:3301
#: ../src/dockedapp.c:210 ../src/dockedapp.c:251 
msgid "Error"
msgstr "Errore"

POTFILES.in berrian datozen fitxategien izenak kopiatzen joan, lerroko bakar bat idatzi:


appicon.c
dialog.c
dock.c
dockedapp.c

Fitxategien izenik ez errepikatzearekin kontu eduki. Era honetan POTFILES.in sortzen joango gara, zeinek mezu euskerakorrak dituzten jatorrizko kode fitxategien izenak edukiko dituen. Aholku txiki bat, zerrenda hori alfabetikoki antolatu, horrela fitxategien izenak errepikatzea zailago egingo bait zaizu.

POTFILES.in fitxategiak aipamenak eta lerro hutsak eduki ditzazke, hala nola:


#Mezu euskerakorrak dituzten jatorrizko fitxategien zerrenda.
#Copyright (c) 2000 Free Software Foundation, Inc.
# Liburutegi Orokorren fitxategiak
lib/error.c
lib/getopt.c
lib/xmalloc.c

#Programa Sortako Jatorrizko Fitxategiak
src/main.c
src/dock.c
src/wmain.c

Euskeraketaren zati izango diren fitxategien izenak idatzi ondoren, POTFILES.in fitxategi berria gorde, eta fitxategia gorde barik (nahigabe bertan zerbait idatzi baduzu ere, aldaketa batzuk eginez) argitatze tresnatik irten zaitez.

src/ direktorioan POTFILES.in-en kopia bat egin, eta direktorio horretan lekutu zaitez.

Orain kaixo.pot fitxategia eskuratzera goaz. Hau lortzeko, datorren agindu hau idatzi (gogoratu src/ direktorioan kokatuta egotea):


xgettext --default-domain=kaixo --add-comments 
         --keyword=_ --files-from=POTFILES.in

xgettext programak ( xgettext ingurutik joanetorri bat egindezakezu) src/-ean kaixo.po izeneko fitxategi berri bat sortzen du. Berorren kopia bat po/ direktorioan egiten dugu, baina kaixo.pot izenarekin. Egin duzu? Ene! Bai langile jatorra zarena! Orain atsedenalditxo bat har dezakegu (txakoli edo sagardotxo bat oso arin edaten da). Atsedenaldiaren ondoren, zekulako zirrara nabarituko duzu!

7.2 fitxategia.pot Lortu Eta Gero

POT fitxategia lortu eta gero, gauza bat begiratu behar dugu. eu.po izeneko fitxategi bat aurkitzeko asmoz po/direktorioan jar gaitezen.

kaixo.pot POT fitxategia eguneratua dago, programaren azken bertsioaren jatorritik lortu bait dugu. Beraz, msgmerge programa erabiliz eu.pox-en eguneraketa lortuko dugu:


msgmerge kaixo.pot eu.po > eu.pox

Badirudi agindu honen erabilkera zaharkituta gelditu dela, eu.pox fitxategia ez bait du eguneratuta uzten. Eguneratua egon ezkero, euskeratutako sarrerekin (mezuekin) batera euskeratugabekoak agertu beharko lukete. Gaur egun, zein aguro eraldatzen diren gauzak, PO fitxategi bat eguneratzeko agindua beste era honetara idazten da:


msgmerge eu.po kaixo.pot -o eu.pox

Urrenez urren, adibideko antolamendu hori jarraituz, egin behar da. Bestela, fitxategien izenak lekuz aldatuz, ekintza honen eraginak eu.pox fitxategiaren edukinean aurrez euskeratutako mezurik ez bait du idatziko.

Honela, eu.pox fitxategia eguneratuta edukitzea lortu dugu, zeinek euskeratutako (itzulitako) mezu zaharrekin batera sarrera (mezu) berriak edukiko dituen ( msgmerge atala ikuska dezakezu, zeinek msgmerge-ri buruz hitzegiten duen)

eu.pox fitxategia gehien atsegin duzun argitatze tresnarekin argitatu ezazu. GNU Emacs erabiltzera bazoaz, PO fitxategiak argitatzeko asko laguntzen duen 'po-mode' erabil dezakezula oroitu zaitez (bere egokitzaketarako GNU gettext-en Ezarketa atala ikusi).

eu.pox fitxategia argitatzean, horrelako zerbait ikus ahal izango duzu:


# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2000-10-13 16:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"

non, hizki larriz agertzen diren hitzak dagokien hitzengatik alda ditzakezu, eta gero izenburua iadanik zuzen dagoela azaltzeko "fuzzy" zotza (flag) daukan lerroa ezabatu ezazu:


# SOME DESCRIPTIVE TITLE.
# Itzulketen azalpenerako erabilia
# Copyright (C) 2000 Free Software Foundation, Inc.
# Euskeraketa: Iņaki Larraņaga Murgoitio <blackziggy@freemail.it>, 2000/10/23.
# 
msgid ""
msgstr ""
"Project-Id-Version: rhinstall 6.1\n"
"POT-Creation-Date: 2000-09-05 10:46+0200\n"
"PO-Revision-Date: 2000-10-23 20:43+1\n"
"Last-Translator: Iņaki Larraņaga Murgoitio <blackziggy@freemail.it>\n"
"Language-Team: BASQUE <linux-eu@chanae.alphanet.ch>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"

Ondoren, sarrera taldea agertzen da, jatorrizko hizkuntzan dagoen mezuaren eta euskeratu (itzuli) gabe dagoenaren artean harreman bat zehaztuz:


#: ../loader/net.c:234 
msgid "IP address:"
msgstr ""

Irudikatu dezakezun bezala, msgstr-ren ondoren (eta komila artean) euskeratutako mezua idazten da. Jatorrizkoa msgid-ren ondoren doa.


#: ../loader/net.c:234 
msgid "IP address:"
msgstr "IP Helbidea:"

Mezuak komila artean derrigorrez egon behar dutelarekin ez zaitez ahaztu, bestela akatsa emango bait luke. Datorren adibidea ikusi:


#: ../loader/net.c:234 
msgid "IP address:"
msgstr "" IP Helbidea:

Badakizu non dagoen akatsa? Ederto!

Euskeraketaren (itzulketaren) oinarria hauxe izango zatekeen (mezuen sarreren zotzak, edo atributoak, ulertzeko PO fitxategien Egitura atala ikusi).

7.3 Itzulketen adibide gehiago

Zati honetan beste adibide zailagoekin lantzen ikasiko dugu. Adibide hauek programaketa C/C++ hizkuntzetan oinarrituta daude.

fuzzy-ren adibideak

  1. Adibidea
    #. Ask if the file should be checked out for
    #. viewing/editing, if so: load it.
    #: src/bufferlist.C:471
    #, fuzzy
    msgid "Do you want to retrieve file under version control?"
    msgstr "Bertsioen kontrolean gordetako bertsioa irekitzea nahi duzu?"
     
    

Adibide honetan, "fuzzy" daukan lerroak PO fitxategia eguneratzerakoan msgmerge programa berak sortu zezakeen. Horrela, fitxategia euskeratuta (eta eguneratuta) edukitzeaz arduratzen den euskeratzaileak mezuaren euskeraketa egokia al den edo ez aztertu beharko luke. Zuzena bada, "fuzzy" daukan lerroa ezabatzearekin nahikoa izaten da.

Edo, "fuzzy" zotza euskeratzaile berak idatz zezakeen baita ere, egin duen euskeraketari buruz zalantzak eduki ezkero bederen, edo bixamona (ajea) edukitzeagatik, e.a.

c-format-ren adibideak

  1. %s-dun Adibidea:

Adibide honetan, jatorrizko mezuak "%s" dakarki. C programaketa hizkuntzan, hiztkate ("string") motako agerbide (edo argumentu) bat dela azaltzen du. Programak, buruketa garaian ("runtime"), erabiltzaileari mezu hau erakustean %s agerbidea agertzen den lekuan hitzkatea azalduko dio "Reading aborted", adibide bat idazte arren. c-format zotza daukan lerroa xgettext tresna berak idatzi du, beraz, hori ezabatzerik ez bururatu (ametsetan ere ez), ikutu be ez, entzun?


#: main.c:409
#, c-format
msgid "%s aborted.\n"
msgstr ""

Datorrena euskeratu ondoren gelditzen den sarrera da:


#: ../main.c:162
#, c-format
msgid "%s aborted.\n"
msgstr "%s ezereztua.\n"

c-format-ek zera adierazi nahi du, hitzkateak ( printf("%s ezereztua.\n","Irakurketa") funtzioan dagoela irudika ezazu) C programaketa hizkuntzeko egitura bat erabiltzen duela. Euskeratutako mezua "%s ezereztua.\n" da, eta erabiltzaileari aurkeztuko dion mezua berriz ,"Irakurketa ezereztua". Baina "%s ezereztua.\n" izan beharrean "ezereztua %s.\n" izango balitz aurkeztutakoa "ezereztua Irakurketa" izango litzateke. Hau da, Irakurketa hitzkatea %s agerbidea dagoen lekuan aurkeztua izango dela. Sarreran "\n" ihesbidea agertzen da, eta programaren erabiltzaileari aurkezten zaion mezuan lerro berri bat itsatsiko du ( Ihesbide Ikurrak atala ikusi).

  1. %d eta %s-dun Adibidea:

Gauza batekin gogoratu zaitez, %d agerbideak zenbaki oso bategaitik ordezkatua izango dela dio.


#: dockedapp.c:341
#, c-format
msgid "%d will be replaced with the file name %s"
msgstr "%d %s fitxategiaren izenarengatik ordezkatua izango da"

Hemen "%d %s fitxategiaren izenarengatik ordezkatua izango da" sarrera "10 Sagardotegia fitxategiaren izenarengatik ordezkatua izango da" bezala ordezkatuko da. Baina, euskeraketa horren ordez beste hau egin ezkero:


#: dockedapp.c:341
#, c-format
msgid "%d will be replaced with the file name %s"
msgstr "%s fitxategiaren izenak %d ordezkatuko du"

Beronen emaitza erabat ezberdina izango zatekeen, "Sagardotegia fitxategiaren izenak 10 ordezkatuko du".

  1. %s eta %s -dun Adibidea:

Zer gertatzen da mezu batean bi %s (edo bi %d, e.a.) agerbide azaltzen badira? Egoera hauetan hitzkateen agerlekua ez da aldatzen. Ikusi datorren adibidea:


#: defaults.c:2428
#, c-format
msgid "could not load image in option %s: %s"
msgstr "%s aukerarekin %s irudia ezin du bereganatu"

Adibide honek sortuko lukeen mezu bat hauxe izango litzateke: "xpm aukerarekin Venus.jpg irudia ezin du bereganatu". Lehen %s agerbidea "xpm"-agatik ordezkatu da, bigarrena "Venus.jpg"berriz -agatik. Une batez, euskeraketa beste era batean egin dela sinetsi ezazu:


#: defaults.c:2428
#, c-format
msgid "could not load image in option %s: %s"
msgstr "%s irudia %s aukerarekin ezin du bereganatu"

Gertatuko ez dena zera da, "Venus.jpg irudia xpm aukerarekin ezin du bereganatu"-ren bezalako mezu bat aurkeztea. Jatorrizko programarentzat, lehen %s agerbidea beti "xmp"-rekin lotuta egongo da, bigarren %s berriz "Venus.jpg"-ekin. Honen eraginez, mezu apur bat bitxia aurkeztuko zaigu, "xpm irudia Venus.jpg aukerarekin ezin du bereganatu". Honelako mezu batekin txixagurez lehertuko al zinake? Ummmmm, eskuliburu hau oso oso serioa da eta horrelakorik ezin dugu aipatu ere egin.

Jatorrizko mezuak mota bateko bi agerbide berdin baditu, euskeratutakoak ere mota berdineko bi agerbide eduki beharko ditu, ez gehiago eta ez gutxiago. Bestela msgfmt tresnak akats bat dagoela esango bait liguke.

no-c-format-en adibideak


#: src/menus.C:657
#, no-c-format
msgid "|Export%m%l"
msgstr "|Kanporatu%m%l"

Ohartu zaitez hitzkatean "%m%l" daudela, baina ez dira (ezta nahi ere) agerbideak. Pillatzaileak (konpilatzaileak) % ikurra ehuneko hainbat bezala onartzeko (eta erabiltzaileari aurkezten zaion mezuan "|Kanporatu%m%l" dan bezalaxe agertzeko) xgettext tresnak bere kasa no-c-format zotzarekin lerro bat sartu du. Ikutubez! Bestela Olentzerok ikatza bakarrik ekarriko bait dizu....ummm, ikatz kilo baten salneurria zenbatean dago? Agian saldu eta surf-eko taulatxo bat erosteko edo...

Ametsak alde batera utzi eta goazen ba beste adibide ttiki batekin.


#: src/insets/figinset.C:2030 src/insets/insetgraphics.C:99
#, no-c-format
msgid "space, '#', '~', '$', '\' or '%'."
msgstr "hutsunea, '#', '~', '\' '$' edo '%'."

Bai jatorrizko mezuan bai euskeratutakoan apostrofearen ihesbidearen " \'" itxura duen bat agertzen da, nahiz eta hau egitazkoa ez izan. C hizkuntzako egitura bateko mezuak, adibide honetatik une batez aldenduz "hutsunea edo ' ' " aurkeztuko litzatekeena, baina horratarako "hutsunea edo \' \' " idatzi beharko litzateke. Gura adibide arrigarrira hurbilduz, C egiturakoa ez den mezuaren emaitza "hutsunea, '#', '~', '\' '$' edo '%'." da. Ezberdintasunik ikusten al duzu?

Lerro Anitzkoitzen adibideak

Hizkiez osatutako hitzkate batek C-ren sintaxia onartzen du bai jatorrizko hitzkateak bai euskeratutakoak, komillaartekoak eta alderantzizko barradun ('\') ihesbideak barne. Lerro anitzkoitzak dituzten hiztkateak idazterako orduan ihesbidedun lerro berririk ez dira erabili behar. Horien ordez, jarraitu beharreko lerroaren amaieran, azkenego hizkiaren atzean, itxierako komilla bat idatzi, eta PO fitxategiko hurrengo (azpiko) lerroaren haseran, lehen hizkiaren aurretik, irekitzeko komilla idazten da. Adibidez:


msgstr ""
"Hau lerro luze bat nola landu behar denaren adibide bat \n"
"da, zeinek hitzkatearen aurkezpena (erabiltzailearekiko)\n"
"lerro anitzetan egiten duen.\n"

Agertzen den adibidean lehen lerroa hitzkate hutsa erabiltzen da, "Hau" hitzeko "H"-a "da" hitzeko "d"-rekin lerrokatuta egon dadin. Oharra: msgstr giltzaren atzetik lau hitzkate datoz, zeinek elkarrekin batuko direla esanahi duten. Hitzkate hutsarekin beste hitzkate ez huts bat batu ezkero emaitzean ez du ezer aldatzen, baina guk, msgstr-ren eskariarekin (derrigorrez atzetik hitzkate bat edukitzea) betetzen dugu, eta gainera lerro anitzkoitzekoak ezkerraldera lerrokatuta azaltzen dugu, guk, euskeratzaileok, honen aurkezpena PO fitxategiaren barruan hobekiago (edo garbiago, txukunago) ikusiz.

Lehen lerroko hitzkate hutsa ezabatu dezakegu, baldin eta "Hau" hitzarekin hasten den hitzkatea lehen lerrora eramaten badugu, msgstr-ren atzetik, hain zuzen. Dena den, "\n" erabili gabe lerro anitzeko mezuak landu ditzakegu. Aurreko adibidean erabili bada, haseratik gauzak garbiago erakusteko asmoz izan delako da.


#: src/credits_form.C:55
msgid ""
"This program is free software; you can redistribute it\n"
"and/or modify it under the terms of the GNU General\n"
"Public License as published by the Free Software\n"
"Foundation; either version 2 of the License, or\n"
"(at your option) any later version."
msgstr ""
"Programa hau software askea da; bere hedaketa\n"
"edo eta aldaketak Free Software Foundation-ek\n" 
"argitatu duen bezala GNU-ren Publiko Baimen \n"
"Orokorreko (GPL) hitzen bidez onartzen da;\n"
"Baimenaren 2. bertsioaren arabera,edo (norberaren \n"
"aukeran) garatuagoa den beste edozein bertsioren\n"
"arabera."

Lerroen amaierako hitzkateko zatia den "\n" ihesbidearekin (komilla artean) eta PO fitxategiko lerro bateko amaieran ager daitekeenaren, baina ez komilla artean eta gainera hitzkatearekin zerikusirik ez dutenak, artean ezberdintzerako orduan kontu handiz ibili!

Hitzkateetatik kanpo, lerro hutsak eta aipatutakoak mahiz erabili ohi dira. Aipamenak lerro hasieran # ikurrar edukitzen dute, eta PO fitxategiko lerro amaieraino iristen dira. Euskeratzaileak (itzultzaileak) idatzitako aipamenak lerro hasieran # ikurra edukiz gain, berorren atzetik hutsune bat eduki behar dute. Baldin eta # ikur baten atzetik hutsunerik ez badoa, GNU-ren tresna batek bere kasa sortutako, eta eguneratutako, aipamen bat da, eta PO fitxategia msgmerge tresnaren eskutik igarotean ezabatua edo ordezkatua izango da. Egia da baita ere, nahiz eta eu.pox izena eduki PO fitxategi motakoa dela.


#: src/menus.C:893
msgid ""
"Floats & Insets%t|Open/Close%x21|Melt%x22|Open All Footnotes/Margin "
"Notes%x23|Close All Footnotes/Margin Notes%x24|Open All "
"Figures/Tables%x25|Close All Figures/Tables%x26%l|Remove all Error Boxes%x27"
msgstr ""
"Mugikorrak%t|Ireki/Itxi%x21|Nahastu%x22|Oin edo alboko ohar guztiak "
"ireki%x23|Oin edo alboko ohar guztiak itxi%x24|Irudi/Taula guztiak "
"ireki%x25|Irudi/Taula guztiak itxi%x26|Akatsen mezu guztiak "
"ezabatu%x27"

Beste sarrera ikaragarri bat azter dezagun! Jatorrizko mezuak lau lerro dauzka, euskeratutakoak berriz bost. Ohartu zaitez lehen lerroa msgid "" eta msgstr "" hasten dela. Jatorrizkoak diren lerro guztiak hitzkate berdina osatzen dute. Euskeratutakoarenarekin ere berdin gertatzen da.

Jatorrizkoak lau lerro behar baditu, baian egiten ari zaren euskeraketan hamar behar badituzu, ez dago inongo arazorik, milaka eta milaka badira ere! (Uste dut oso goitik jo dudala) Lerro guztiak, azken finean, hitzkate bakarra osatzen dute, eta msgfmt tresnak hitzkate bezala lantzen ditu, ez lerro bezala. Jarraitu horrelan! Ongi ari bait zara!

"Ihesbide" ikurrak

Jatorrizko mezuetan hauetariko ihesbideak ager daitezke:

Mezuak eskatzen duten ihesbideak erabiltzea aholkatzen dizugu, datorren adibide horretan bezala:


#: defaults.c:2547
#, c-format
msgid "failed to open bitmap file \"%s\""
msgstr "Bitmap motako \"%s\" fitxategia irekitzean kale egin du"

Honek, gutxigorabehera, itxura honetako mezua aurkeztuko luke: "Bitmap motako "Jupiter.bmp" fitxategia irekitzean kale egin du".


#: ../main.c:180
msgid " -version\t\tprint version and exit"
msgstr " -version\t\tbertsioa inprimatu eta irten egiten du"

Adibide honetan jarraian bi ihesbide agertzen dira, "\t\t", zeinek "-version" eta "bertsioa" artean tabulaketa bikoitza sartzen duten.


#: src/buffer.C:1103
#, c-format
msgid "Warning: need lyxformat %.2f but found %.2f\n"
msgstr "Oharra: LyX-en %.2f  egitura behar\n
        arren %.2f aurkitu da\n"

Adibideko mezu amaieran ihesbide bat agertzen zaigu, "\n". Jatorrikzo mezuan hauetariko bat agertzen den bakoitzean, euskeratutako mezuan ere edukitzea komenigarria da. Gainera, hemen bi zenbaki errealeko ("coma flotante") "%.2f" agerbide agertzen direla konturatu al zara?

Itzulkertarik gabe

Baldin eta sarrera bat nola euskeratu behar den ez badakizu, dagoen bezala utzi, euskeratu gabe. Adibideko sarrera euskeratu geba dago. Berau euskeratzeaz arduratzen denak nola euskeratu jakindakoan PO fitxategia berreskuratu eta dagokiona idatziko du.


#: src/language.C:81
msgid "Norsk"
msgstr ""

7.4 PO fitxategia itzuli ondoren

Azkenean, San Jon (nahi duenarentzat, Juan) bezperako sua gainetik jauzitzeko garaia heldu da. Epaaaa! Zelako zirrara! eu.pox euskeratu ondoren MO egiturara bihurtzeko garai iritxi zaigu. Baina, badaezpada, lehendabizi eu.pox, aldi bateko PO fitxategia, eu.pox PO fitxategian kopiatuko dugu.

Orain bai, goazen msgfmt ( msgfmt atala ikusi) tresna erabiltzera, MO egiturara beronek bihurtzen bait du:


msgfmt eu.po

Lortu dugu! Agindu honek, direktorio berdinean, messages izeneko fitxategi bat sortuko du. msgfmt tresnaren agindua burutzerakoan akats mezuak agertu bazaizkizu, aurrenik beroien zuzenketak landu beharko dituzu. Baliteke akats mezuak Inglesez, Frantsezez, Gazteleraz edo beste hizkuntza batean aurkeztea, eskuliburu hau idazterako orduan oraindik (oker ez banago) gettext-en mezuak Euskeratu gabe bait daude. Hemen akats mezuak hiru hizkuntz horietan aurkezten saistuko gara. Adibideen ibiladiekin jarraitu dezagun:


#: src/LaTeXLog.C:53
msgid "Build Program Log"
msgstr "Programaren Erregistroa" Eraiki

Komilla artetik kanpo dagoen Eraiki hitzak datorren akats mezua sortaraziko du (zein hizkuntzean agertuko den zuk aukeratu):


eu.po:227: palabra clave "Eraiki" desconocida
se encontraron 1 errores fatales

eu.po:227: mot-cl "Eraiki" inconnu
1 erreurs terminales

eu.po:227: keyword "Eraiki" unknown
found 1 fatal errors

Akats mezuan agertzen den lehen izena "eu.po" da, zenbaki bat atzetik duela. Zenbaki honek akatsdun lerrora bideratuko zaitu, msgstr "Programaren Erregistroa" Eraiki agertzen den lerrora, hain zuzen.

  1. Adibidea


#: src/spellchecker.C:658
msgid ""
"\n"
"\n"
"The ispell-process has died for some reason. *One* possible reason\n"
"could be that you do not have a dictionary file\n"
"for the language of this document installed.\n"
"Check /usr/lib/ispell or set another\n"
"dictionary in the Spellchecker Options menu."
msgstr ""
"\n"
"\n"
"ispell-en lanketa zerbait dela eta hil egin da. *Lehen* zergatia\n"
"idazki honen hizkuntzarako hiztegirik ez \n"
"egotea izan daiteke. Badaezpada\n"
"/usr/lib/ispell dagoela egiaztatu edo "Ortografiako\n
" Aukera-ko menuan beste hiztegi bat hautatu."

Akatsa 547. lerroan aurkitzen da, "/usr/lib/ispell dagoela egiaztatu edo "Ortografiako\n egartzen dan lekuan. Akatsaren mezuan ordea, 541. lerroan gertatu dela dio, msgstr "" dagoen lekuan, hain zuzen. Erakutsiko zukeen akatsaren mezua hau izango zatekeen:


eu.po:541: palabre clave "Ortografiako" desconocida
se encontraron 1 errores fatales

eu.po:541: mot-cl "Ortografiako" inconnu
1 erreurs terminales

eu.po:541: keyword "Ortografiako" unknown
found 1 fatal errors

Beste era batera esanda, hitzkatea 541. lerroan hasten da. Mezu osoa hitzkate berdinean egotean bagara, akatsaren zenbakiak hiztkatearen hasierara bultzatzen gaituela ohartuko gara, eta ez PO fitxategian agertzen den akatsdun lerrora. Konturatu al zara akatseko mezuan ez dela "Ortografiako\n" agertzen? msgfmt-ek \n mezuaren kanpokoa izateaz gain PO fitxategiko beste lerro berri bat dela uste du, sarrerarekin zerrikusirik ez daukala uste bait du.


#: ../loader/kickstart.c:108
#, c-format
msgid "Error on line %d of kickstart file %s."
msgstr "kickstart fitxategiko %d lerroan akatsa."

msgfmt eu.po aginduak akatsik ez luke aurkeztuko. Zer dio! euskeratutako mezuan %s-rik ez dago eta! Hau burutik dago!

Laxai! Ez larritu! MO fitxategira bihurtzeko lanketa zehatzago bat egitea nahi badugu, msgfmt tresnari beste aukerazko agerbideak ezarri beharko dizkiogu. Saia zaitez beste agindu hau lantzen:


msgfmt -c --strict --statistics eu.po

Aurreko adibidean ondorengo akats mezua aurkeztuko luke:


es.po:2433: el numero de especificaciones de formato en 'msgid' y 'msgstr' no coincide
se encontraron 1 errores fatales

eu.po: 2433: nombre diff rent specifications de format entre 'msgid' et 'msgstr'
1 erreurs terminales

eu.po:2433: number of format specifications in 'msgid' and 'msgstr' does not match
found 1 fatal errors

Azken agindu hori erabiltzea aholkatzen dizut (eskupeko bat ematen bait didate ; ). Zuk euskeratu berri duzun PO fitxategiak akatsaik ez edukitzea irudika ezazu. Aginduaren buruketak (lanketak) ohar hau plazaratuko luke:


551 mensajes traducidos, 1 traducciones difusas.

551 messages traduits, 1 traductions approxim es.

551 translated messages, 1 fuzzy translations.

Zorionak! Direktorio horretan, msgfmt programak messages.mo izeneko fitxategi bat soortu berri du. Orain zankada txiki bezain handia ematea besterik ez da, fitxategi berri hori eu.gmo-ra kopiatu eta kitto! Euskeratutako MO fitxategia lortu duzu!

Gero jatorrizko programa pillatzerakoan (konpilatzean) berak bere izenarekin kaixo.mo izeneko fitxategiak sortuko ditu locales izeneko direktorioetako hizkuntzetako azpidirektorioean. Baina hori dena beste ipuin bat.

xgettext, msgmerge eta msgfmt tresnen aukera ezberdinei buruzko gauza gehiago jakitea nahi izan ezkero, GNU gettext tools, version 0.10.35. eskuliburua irakur dezakezu.

Eta orain, programak euskeratzera! On dagizula! Beste hizkuntzak ikasteko bide politta da!


Next Previous Contents