Ellhnikes Metafraseis NLS (Greek NLS translations)

Simos 3enitellhs, S.Xenitellis@rhbnc.ac.uk v0.9, 21 Aygoustoy 1999

Ayto to keimeno perigrafei thn prospa8eia ejellhnismou twn GNU programmatwn. Ta GNU programmata (dhladh ta perissotera programmata efarmogwn poy apantwntai synh8ws se Unix systhmata opws ls, mutt, kde, gnome) exoyn th dynatothta na yposthrijoyn glwsses ektos twn agglikwn me ena aplo kai diafanes gia to xrhsth tropo. To paron asxoleitai me osa aforoun th metafrash sta ellhnika.

Contents

1 Eisagwgh 2 1.1 Istoria Ana8ewrhsewn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Ti einai to ”NLS”; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Ektash toy NLS 3 2.1 Se ti epipedo briskontai oi alles glwsses; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Poia leitoyrgika systhmata yposthrizoyn to NLS; . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Epigrammatika, pws leitoyrgei to NLS; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.4 Poia programmata yposthrizoyn NLS; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.5 Stoxos twn metafrasewn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 NLS sthn prajh 4 3.1 Paradeigma xrhshs toy NLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 To dokimasa alla den doyleuei! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Me poio(poioys) tropoys ka8orizetai h glwssa me thn opoia emfanizontai ta mhnumata enos

systhmatos; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.4 Metaptwsh glwsswn se periptwsh apoysias metafrasewn . . . . . . . . . . . . . . . . . . . . . 5 3.5 Programmatistikes plhrofories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Diadikasia ths metafrashs 12 4.1 Einai epiponh h ergasia ths metafrashs twn mhnymatwn; . . . . . . . . . . . . . . . . . . . . 12 4.2 Plhroforiaka, ena programma poy yposthrizei NLS pws moiazei; . . . . . . . . . . . . . . . . . 12 4.3 Poia einai ta programmata poy boh8oun th metafrash kai pws leitoyrgoun; . . . . . . . . . . 13

4.3.1 Paketo gettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.2 Programma xgettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.3 Programma msgfmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.4 Loipa programmata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5 Epilogh ellhnikwn lejewn kai ekfrasewn 14

5.1 Pws 8a mporouse na metafrastei to p.x. ”Broken pipe”; ”Spasmenh swlhna”; . . . . . . . . . 14 5.2 LEXIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.3 Ellhnikh bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6 Organwsh metafrasewn 14 6.1 Prosonta metafrastwn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.2 Analhch metafrasewn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.3 Odhgies metafrashs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.4 Nomikes leptomereies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.5 Poioi einai oi basikoi logoi metafrashs twn mhnymatwn sta ellhnika; . . . . . . . . . . . . . . 16

7 Trexoysa katastash twn metafrasewn 16

8 Ekkremothtes 17 8.1 Loipa programmata poy perimenoyn ellhnikh metafrash . . . . . . . . . . . . . . . . . . . . . 17

9 Dia8esimoi ana8ewrhtes 17

10 Ellhnikes metafraseis stis ekdoseis Linux 17

11 PO arxeia 18

12 Epikoinwnia 18 12.1 Poios einai o trexon ypeu8ynos twn ellhnikwn metafrasewn; . . . . . . . . . . . . . . . . . . . 18

1 Eisagwgh

1.1 Istoria Ana8ewrhsewn

• v0.1 - 09 Ianoyarioy 1999 - Simos 3enitellhs - Arxikh Ekdosh
• v0.2 - 24 Ianoyarioy 1999 - Simos 3enitellhs - Mikres allages
• v0.3 - 14 Febroyarioy 1999 - Simos 3enitellhs - Mikres allages
• v0.4 - 24 Febroyarioy 1999 - Simos 3enitellhs - Prwth dhmosieysh sto Hellug
  (http://www.hellug.gr)
• v0.5 - 15 Ioynioy 1999 - Simos 3enitellhs - Genikh ana8ewrhsh, pros8hkh KDE, Gnome
• v0.6 - 22 Ioynioy 1999 - Simos 3enitellhs - Dior8wseis apo thn anadrash, pros8hkh
  newn metafrasewn
• v0.7 - 24 Ioylioy 1999 - Simos 3enitellhs - Pros8hkh newn metafrasewn, pros8hkh
  listas programmatwn dia8esimwn gia metafrash, pros8hkh plhroforiwn gia to Lyx,
  pros8hkh listas me dia8esimoys ana8ewrhtes, pros8hkh listas me ekkremothtes,
  trexoysa yposthrijh ellhnikwn apo ekdoseis toy Linux, mikres dior8wseis

   • v0.8 - 25 Ioylioy 1999 - Simos 3enitellhs - Mikres allages
   • v0.9 - 21 Aygoustoy 1999 - Simos 3enitellhs - Pros8hkh topo8esias shadow utils

1.2 Ti einai to ”NLS”;

To NLS (National Language Support) einai mia dynatothta poy mporei na prosferei ena programma outws wste na kanei dynath thn emfanish olwn twn mhnymatwn kai symbolwn poy blepei o telikos xrhsths sthn topikh toy glwssa. Dhladh, prosferei poluglwssh yposthrijh sta programmata me ena arketa boliko kai diafanes tropo. Ektos apo ta mhnumata, mporei na xrhsimopoih8ei gia thn apeikonish ths topikhs nomismatikhs monadas, ths topikhs wras, toy topikou symboloy diaxwrismou toy akeraioy meros apo to dekadiko kai alla. Sto paron ejetazoyme to tmhma poy afora th metafrash twn mhnymatwn sta ellhnika.

2 Ektash toy NLS

2.1 Se ti epipedo briskontai oi alles glwsses;

Oi perissotero diadedomenes glwsses briskontai se polu kalo epipedo oson afora thn plhrothta kai thn poiothta twn metafrasewn. Akoma, yparxei yposthrijh apo glwsses poy den einai arketa synh8ismenes opws ta slobenika. Enhmerwtika, polu kalh doyleia yparxei gia ta gallika, ta germanika, ta finlandika, ta ispanika kai ta polwnezika. H tash ayth th stigmh einai oi diafores glwsses mikrhs embeleias na prosti8entai sth lista, kyriws logw ths anagnwrishs poy exei dex8ei to Linux poy einai kurios xrhsths twn programmatwn poy yposthrizoyn NLS.

2.2 Poia leitoyrgika systhmata yposthrizoyn to NLS;

To leitoyrgiko susthma Linux einai kurios xrhsths twn programmatwn poy yposthrizoyn NLS. To Linux <http://www.linux.gr> apartizetai apo programmata efarmogwn poy diati8entai me thn adeia dia8eshs GNU <http://www.gnu.org>. To logismiko ayto, yposthrizei kata bash to NLS. Ektos apo to Linux, ta perissotera leitoyrgika systhmata Unix h tupoy-Unix mporoun na yposthrijoyn NLS.

2.3 Epigrammatika, pws leitoyrgei to NLS;

Gia ta perissotera programmata, h yposthrijh ginetai me to paketo gettext. Sto paketo ayto perilambanontai mia biblio8hkh sthn opoia syndeetai (link) to ekastote programma sth fash ths metaglwttishs. Sto idio to programma, prosti8entai merikes entoles ths biblio8hkhs. Oi entoles aytes elegxoyn metablhtes toy periballontos poy ka8orizoyn th glwssa kai antika8istoun ta mhnumata me ta metafrasmena mhnumata.

2.4 Poia programmata yposthrizoyn NLS;

8a xwrisoyme ta programmata se kathgories.

1. Epishma GNU programmata H metafrash twn programmatwn aytwn organwnetai apo to GNU Translation Project to opoio exei stenes sxeseis me to FSF (Free Software Foundation). Ta pio basika programmata enos systhmatos Unix kaluptontai edw. To gegonos oti ta programmata einai epishma GNU shmainei oti ta atoma poy apostelloyn metafraseis, prepei na dhlwnoyn eggraptws oti symfwnoun me thn adeia dia8eshs GNU. Akoma, oi metafraseis ka8e glwssas prepei na exoyn ena ypeu8yno poy na organwnei th diadikasia. Aytes oi nomikes idiaiterothtes, an kai fainontai oti apo8arrunoyn tis metafraseis, einai anagkaies gia thn or8h xrhsh ths adeias dia8eshs GNU apo nomikhs pleyras.

2. Anepishma GNU programmata Enas shmantikos ari8mos programmatwn, poy oi programmatistes toys epilegoyn na dia8esoyn me thn adeia dia8eshs GNU, yposthrizoyn NLS. Gia ayta ta programmata, arkei h apostolh ths metafrashs stoys idioys toys programmatistes gia na th symperilaboyn. Edw anhkoyn kai ta grafika periballonta KDE kai Gnome, wstoso gia ayta pros8etoyme duo nees kathgories logw ths megalhs shmasias toys.

3. KDE To grafiko periballon KDE <http://www.kde.org> apartizetai apo ena shmantiko ari8mo programmatwn ta opoia yposthrizoyn NLS. To KDE einai polu dhmofiles kai yparxei megalh anagkh na yparxei mia plhrhs, trexoysa kai akribhs yposthrijh ellhnikwn.

4. Gnome To grafiko periballon Gnome <http://www.gnome.org>, apartizetai, opws to KDE, apo ena shmantiko ari8mo programmatwn programmatwn poy yposthrizoyn NLS. To Gnome arxizei na diadidetai kai anamenetai na paijei ena shmantiko rolo san ena grafiko periballon gia systhmata Unix.

2.5 Stoxos twn metafrasewn

Epi8ymoume stis metafraseis na petuxoyme toys parakatw stoxoys

• akribeia sth metafrash twn mhnymatwn sth topikh glwssa

• plhrothta ths metafrashs

• poiothta ths metafrashs

• omoiogeneia ths metafrashs kai metaju metafrasewn

• enhmerothta twn metafrasewn metaju ekdosewn

3 NLS sthn prajh

3.1 Paradeigma xrhshs toy NLS

Koitajte sto katalogo

RedHat-6.0:  /usr/share/locale (pros ejakribwsh)
RedHat-5.x:  /usr/share/locale
RedHat-4.x:  /usr/share/locale (pros ejakribwsh)
Open Linux 2.2:  /usr/share/locale (pros ejakribwsh)
SuSe 6.x:  /usr/share/locale (pros ejakribwsh)
Slackware 4.0:  /usr/share/locale (pros ejakribwsh)
Debian 2.x:  /usr/share/locale (pros ejakribwsh)

sto susthma sas gia diagrammata poy aforoun tis yposthrizomenes xwres. 8a breite sigoyra gallika, ispanika, germanika, ollandika klp.

Proxwrhste sto ypokatalogo es kai meta LC MESSAGES, dhladh /usr/share/es/LC MESSAGES/ kai estw oti briskete to ”fileutils.mo”. Tote, exete yposthrijh gia ispanika sto ls, mkdir ktl. (An exete ypokatalogo el gia ellhnika kai to antistoixo arxeio sto susthma sas, mporeite na xrhsimopoihsete to lektiko ayto anti toy es).

Trejte

• setenv LANGUAGE es (gia osoys exoyn floio tcsh h symbato me csh) h

• export LANGUAGE es (gia osoys exoyn floio bash h symbato me sh)

Twra trejte ”ls –help” kai 8a deite ispanika mhnumata!

3.2 To dokimasa alla den doyleuei!

Se ayth thn kathgoria mporei na briskontai oi xrhstes me palia ekdosh toy Linux.

Sto susthma sas mporei na yparxoyn perissoteroi katalogoi me plhrofories gia metafraseis programmatwn (katalogoi locale). To sunolo twn katalogwn poy elegxontai, orizetai me th metablhth periballontos NLSPATH. Panta yparxoyn kapoioi katalogoi poy to susthma ereyna ej orismou, oi opoioi exoyn proka8oristei sth basikh biblio8hkh toy systhmatos sas, th libc. Dokimaste ”strace -o output.log ls –help” kai meta ”grep open output.log” gia na deite poy caxnei to susthma. Meta ka8oriste analoga to NLSPATH.

3.3 Me poio(poioys) tropoys ka8orizetai h glwssa me thn opoia emfanizontai ta mhnumata enos systhmatos;

Mesw metablhtwn periballontos. Gia kapoio logo, yparxei enas ari8mos apo metablhtes poy kanoyn sxedon thn idia doyleia. H metablhth poy fainete na xrhsimopoioun oi perissoteroi xrhstes einai h LANG, me th morfh

• setenv LANG el (gia osoys exoyn floio tcsh h symbato me csh) h

• export LANG=el (gia osoys exoyn floio bash h symbato me sh)

Diaforetika, yparxei h metablhth LANGUAGE, h opoia exei proteraiothta enanti ths LANG.

Gia ta systhmata me glibc 2.1 (ayth th stigmh RedHat 6.0), o xrhsths mporei na ektelesei (pros ejakribwsh)

• setenv LANG greek (gia osoys exoyn floio tcsh h symbato me csh) h

• export LANG=greek (gia osoys exoyn floio bash h symbato me sh)

3.4 Metaptwsh glwsswn se periptwsh apoysias metafrasewn

Trejte

• setenv LANGUAGE 'it:fr' (gia osoys exoyn floio tcsh h symbato me csh) h

• export LANGUAGE='it:fr' (gia osoys exoyn floio bash h symbato me sh)

Se oles tis periptwseis, yparxei h telikh metaptwsh sthn agglikh.

3.5 Programmatistikes plhrofories

To parakatw yliko proerxetai apo to Niko Mayrogiannopoylo <mailto:nmav@hellug.gr>.

Mias kai to nls xrhsimopoieitai olo kai perissotero sta nea programmata (idiaitera ayta poy apoteloun to GNU susthma), einai anagkaio na kanoyme mia perigrafh ths diadikasias poy xreiazetai gia na to enswmatwsoyme kai sta dika mas programmata.

H adeia toy gettext gia ta kommatia poy 8a enswmatwsoyme sto programma mas einai h GNU LGPL poy den mas periorizei ston ka8orismo ths adeias toy programmatos mas. Koitajte thn pantws gia na deite an eiste symbatoi(!).

As prosperasoyme omws ta ”typika” kai as perasoyme sto chto. Ta programmata poy 8a xreiastoume einai ta GNU autoconf kai gettext-0.10, kai briskontai sto pio kontino gnu mirror.

Edw 8a prospa8hsoyme na pros8esoyme yposthrijh e8nikhs/topikhs glwssas (nls) se ena programma grammeno se C. As doume ena aplo programma, poy typwnei thn wra sthn o8onh:

#include <stdio.h>
#include <time.h>
main ()
{
        time_t tv;
        printf( "The time is: " );
        time(&tv);
        printf ( "%s",ctime(&tv) );
}

H wra opws kai to mhnyma typwnetai sta agglika. Epeidh h metafrash prepei na ginei genika - dhladh to idio programma na trexei kai sta germanika kai sta ellhnika kai se opoiadhpote allh glwssa - den metafrazoyme ap’ey8eias to keimeno. Xrhsimopoioume ta localedata kai th biblio8hkh intl ths C biblio8hkhs.

As xrhsimopoihsoyme ta localedata (topika dedomena) gia thn wra.

To idio programma twra ginetai:

#include <stdio.h>
#include <time.h>
#include <locale.h>
main ()
{
        struct tm *tp;
        char buf[80];
        time_t date;
/* 8etei to locale sumfwna me thn metablhth periballontos LANG h LANGUAGE
 * Gia ta ellhnika prepei na einai el (ISO639) */
        setlocale (LC_TIME, ""); /* Gia thn wra kai mono */
        printf( "The time is: " );

        time(&date);
/* Metatrepei thn wra ekfrash poy syndeetai me thn zwnh wras */
        tp = localtime(&date);
        strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %z %Y", tp);
/* ektypwnei thn wra */
        printf ("%s\n",buf);
}

H wra twra 8a typw8ei sthn morfh: Tet Noe 11 22:44:29 +0200 1998 me ellhnikous xarakthres opws blepete(an LANG=el h gr gia tis palies glibc2). Gi’ayto jexaste to ctime kai asxolh8eite me to strftime().

Se periptwsh poy den eidate ellhnikous xarakthres elegjte an sto /usr/share/locale/el yparxoyn ta aparaithta arxeia. An den yparxoyn promh8eyteite ena neo localedata - symperilambanetai synh8ws sthn libc h egkatasthste to tarball poy brisketai sto ftp://argeas.cs-net.gr/pub/unix/linux/GREEK/locale.glibc2.el.tar.gz

<ftp://argeas.cs-net.gr/pub/unix/linux/GREEK/locale.glibc2.el.tar.gz>

Gia thn metafrash twn mhnymatwn, poy einai kai h kyrioterh idiothta toy NLS xrhsimopoieitai o ejhs tropos:

#include <stdio.h>
#include <time.h>
#include <locale.h>
#include <libintl.h> /* arxeio ths GNU libc */
main ()
{
        struct tm *tp;
        char buf[80];
        time_t date;
/* pera apo to LC_ALL yparxoyn ta LC_TIME, LC_MESSAGES klp, ta opoia
 * prosdiorizoyn ep'akribws ti metafraseis 8a xrhsimopoihsoyme.
 */
        setlocale (LC_ALL, "");
        bindtextdomain ("my_time", "/usr/share/locale");
        textdomain ("my_time");
        printf( gettext("The time is: ") );
        time(&date);
        tp = localtime(&date);
        strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %z %Y", tp);
        printf ("%s\n",buf);
}

Oi entoles bindtextdomain() kai textdomain() aforoun thn nls biblio8hkh (libintl) kai thn plhroforoun oti h metafrash toy programmatos brisketai sto my time.mo ston katalogo /usr/share/locale/XX, opoy XX h glwssa toy xrhsth (ka8orizetai apo thn metablhth LANG h LANGUAGE).

Epeidh polles fores to na grafoyme gettext(...) einai epipono gia polla mhnumata, xrhsimopoioume to:

        #define _(Text) gettext(Text) /* stis epikefalides */
        printf( _("The time is: ") );

To programma den 8a leitoyrghsei akomh me ellhnika. Xreiazetai akomh th dhmioyrgia toy .po arxeioy. Ayto einai sxetika aplo an ginei me to programma xgettext (apo to paketo GNU gettext).

Gia to sygkekrimeno programma h ejodos toy xgettext einai: (suntajh ”xgettext my time.c”)

# messages.po
# 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: 1998-11-11 22:52+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"
#: c.c:16
msgid "The time is: "
msgstr ""
#end of messages.po

kai edw metonomazoyme to messages.po se el.po, pros8etontas taytoxrona sto msgstr thn metafrash, px:

msgstr "H wra einai: "

Teleytaio melhma toy programmatisth einai na metatrecei ayto to .po arxeio se .mo h .gmo morfh. Ayto epitygxanetai me to programma msgfmt (apo to GNU gettext pali).

px msgfmt el.po -o el.gmo

kai meta na antigrafei sto /usr/share/locale/el/LC MESSAGES/ to el.gmo san my time.mo (ayta ta teleytaia kalo einai na ginoyn mesw kapoioy makefile).

To shmantikotero twra einai na aytomatopoihsoyme ayth th diadikasia. Ayto epitygxanetai me to GNU autoconf. As ftiajoyme ena configure.in poy 8a elegxei kata poso yparxei yposthrijh nls apo thn libc kai ka8ws kai toy strftime. (gia kaluteres diamorfwseis koitajte sto: http://teamball.sdsu.edu/doc/texi/gettext toc.html

<http://teamball.sdsu.edu/doc/texi/gettext_toc.html>)

Gia na aplopoihsoyme ta pragmata 8ewroume thn ejhs diamorfwsh twn arxeiwn toy programmatos: (estw oti to programma einai sto /xxx) ston katalogo /xxx/

configure.in: Xreiazetai gia to autoconf (deite parakatw)
config.h.in : (deite parakatw)

ston katalogo /xxx/src/

my_time.c   : To programma

ston katalogo /xxx/po/

my_time.pot :  Ayto einai to messages.po poy dhmioyrgeitai apo to
               xgettext aplws metonomasmeno
el.po       :  To my_time.pot metafrasmeno sta ellhnika
POTFILES.in :  Edw pros8etete ola ta .c arxeia sto src poy xrhsimopoioun
               to gettext. px:
               /xxx/src/my_time.c

Arkei twra na antigracete apo to paketo gettext-0.10 ta po/Makefile.in ston katalogo toy programmatos /xxx/po/ , olo ton katalogo intl/ ston /xxx/intl/ kai ta ABOUT-NLS, aclocal.m4 ston /xxx .

Pame twra ston prwtarxiko katalogo toy programmatos mas (/xxx) kai as ftiajoyme to configure.in apo to opoio 8a prokucei to gnwsto(;) script configure.

# configure.in for my_time.c
AC_INIT()
AC_CONFIG_HEADER(config.h)
AC_PROG_CC
AC_PATH_PROG(MAKE,make)
AC_PROG_INSTALL
VERSION=1.0
PROGRAMS="my_time"
AC_PREFIX_DEFAULT(/usr/local)
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(PROGRAMS)
dnl yposthrizoyme ellhnika (to el einai apo to iso639 poy prepei na
dnl xrhsimopoieitai gia thn endeijh glwssas stis metafraseis sumfwna me to
dnl egxeiridio to gettext.)
ALL_LINGUAS="el"
dnl Gia to gettext 0.10.

ud_GNU_GETTEXT
AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
AC_FUNC_STRFTIME
AC_OUTPUT([Makefile src/Makefile intl/Makefile po/Makefile.in
[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
#end of configure.in

kai amesws meta dhmioyrgoume ena config.h.in (einai bash toy arxeioy config.h poy 8a symperilambanetai sto programma mas. H dhmioyrgia toy config.h ginetai apo to script configure.) To config.h.in 8a periexei:

# config.h.in for my_time.c
/* To onoma toy paketoy (8a xrhsimopoih8ei gia to textdomain) */
#undef PACKAGE
#undef VERSION
/* strftime */
#undef HAVE_STRFTIME
#undef ENABLE_NLS
#end of config.h.in

To Makefile.in gia to programma (to Makefile dhmioyrgeitai epishs aytomata apo to configure), prepei na exei se genikes grammes ta:

# Makefile.in
CC      = @CC@
LIBS    = @LIBS@
CCOPTS  = @CFLAGS@ -I. -I..
LN      = @LN_S@
INSTALL = @INSTALL@
prefix  = @prefix@
exec_prefix  = @prefix@
datadir = $(prefix)/lib
bin     = $(prefix)/bin
localedir = $(datadir)/locale
DEFS    = -DLOCALEDIR=\"$(localedir)\"
SUBDIRS = @INTLSUB@ src @POSUB@
MAKE    = @MAKE@
INSTALL = @INSTALL@
#Ean o kwdikas sas den einai ston src/ katalogo xreiazetai orismenes allages
all:
        @for subdir in $(SUBDIRS); do \
                echo making all in $$subdir; \
                (cd $$subdir && $(MAKE) all) \
                || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \

        done && test -z "$$fail"
install:
        @$(INSTALL) my_time $(bin)
        @$(MAKE) -C po/ install
# end of makefile.in

# src/Makefile.in
# Edw oi epikefalides einai peripoy idies me prin:
CC      = @CC@
LIBS    = @LIBS@
CCOPTS  = @CFLAGS@ -I../intl -I. -I..
LN      = @LN_S@
INSTALL = @INSTALL@
prefix  = @prefix@
exec_prefix  = @prefix@
datadir = $(prefix)/lib
localedir = $(datadir)/locale
DEFS    = -DLOCALEDIR=\"$(localedir)\"
all: my_time
my_time: my_time.o
        $(CC) $(OBJECTS) -o ../my_time $(LIBDIRS) $(LIBS)
my_time.o: my_time.c
        $(CC) -c my_time.c $(CCOPTS) $(DEFS)
#end of src/Makefile.in

To programma twra 8a ginei:

# src/my_time.c
#include <stdio.h>
#include <time.h>
#include <config.h> /* h "config.h" an den balete to -I. sto Makefile */
#ifdef ENABLE_NLS
#include <libintl.h>
#endif
main ()
{
#ifdef HAVE_STRFTIME
        struct tm *tp;
        char buf[80];
        time_t date;
#else

        time_t tv;
#endif

#ifdef ENABLE_NLS
        setlocale (LC_ALL, "");
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
# define _(Text) gettext(Text)
#else
# define _(Text) (Text)
#endif

        printf( _("The time is: ") );
#ifdef HAVE_STRFTIME_H
        time(&date);
        tp = localtime(&date);
        strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %z %Y", tp);
        printf ("%s\n",buf);
#else
        time(&tv);
        printf ( "%s",ctime(&tv) );
#endif
}
#end of src/my_time.c

Twra trexoyme to autoconf poy dhmioyrgei to configure script. An ola phgan kala exoyme ena programma poy milaei jenes glwsses!

To parapanw keimeno einai mia eisagwgh mono sto 8ema. Den einai se kamia periptwsh plhres, an 8elete parapanw plhrofories symboyleyteite ta egxeiridia twn programmatwn autoconf, gettext. Perissotera gia to gettext (kai thn xrhsh toy me to autoconf) sto: http://teamball.sdsu.edu/doc/texi/gettext toc.html <http:

//teamball.sdsu.edu/doc/texi/gettext_toc.html>

4 Diadikasia ths metafrashs

4.1 Einai epiponh h ergasia ths metafrashs twn mhnymatwn;

Den einai arketa epiponh. To mono epipono meros einai h arxikh metafrash oloy toy ogkoy twn mhnymatwn. Epeita, me thn kykloforia newn ekdosewn toy idioy programmatos, arkei h metafrash twn newn mhnymatwn, poy einai synh8ws liga ston ari8mo. Yparxoyn eidika ergaleia poy briskoyn ta mhnumata poy exoyn allajei metaju twn ekdosewn kai ta emfanizoyn gia metafrash.

4.2 Plhroforiaka, ena programma poy yposthrizei NLS pws moiazei;

O programmatisths grafei ta mhnumata ws ejhs:

...
/* Merikes grammes kwdika gia arxikopoihsh toy systhmatos NLS */
...
/* Second: Login with proper USER/PASS sequence.  */
printf( _("connected!\n") );
...

Dhladh perikleiei ta mhnumata poy apaitoun metafrash me ( ). Se olo to diasthma ths anaptyjhs toy programmatos, o programmatisths den asxoleitai me to susthma NLS para mono na perikleiei me () to mhnumata poy blepei o xrhsths. To programma doyleuei ws exei.

Epeita, o programmatisths trexei ena boh8htiko programma poy sygkentrwnei ta mhnumata poy perikleiontai se () se ena arxeio. Sto arxeio ayto einai poy epembainei gia na pros8esei th metafrash twn mhnymatwn. Epeita, me allo boh8htiko programma, to prwto arxeio metatrepetai se mia dyadikh morfh poy mporei na xrhsimopoih8ei apo to ektelesimo. Sthn ektelesh toy, to programma anazhta mia metablhth periballontos gia thn epilogh ths glwssas emfanishs twn mhnymatwn. Bash ths glwssas, xrhsimopoiei kai ta analoga mhnumata. An ta mhnumata den einai paronta, tote xrhsimopoiei ta agglika, ta opoia periexontai sto idio to ektelesimo programma.

4.3 Poia einai ta programmata poy boh8oun th metafrash kai pws leitoyrgoun;

4.3.1 Paketo gettext

Ta programmata poy boh8oun thn organwsh ths metafrashs einai apo to paketo gettext, kai 8a to breite se ola ta kala GNU mirror sites. Trexoysa ekdosh: 0.10.XX kai th stigmh poy grafetai ayto isxuei XX=35 kai

gettext-0.10.35.tar.gz <http://www.iro.umontreal.ca/contrib/po/gettext-0.10.35.tar.gz>

Ta perissotera programmata ylopoioun to NLS me to paketo gettext. Yparxoyn kapoia alla poy yposthrizoyn mia palioterh texnikh, thn catgets. 8a milhsoyme mono gia gettext.

4.3.2 Programma xgettext

Eisodos: arxeia *.c h *.h me alfari8mhtika ths morfhs (”blah blah”).

Ejodos: arxeio keimenoy *.pot me ta alfari8mhtika pros metafrash.

To arxeio *.pot einai to arxeio ypodeigma, poy 8a epairne kapoios metafrasths ellhnikwn kai 8a to antegrafe se el.po. Sto arxeio el.po ginetai h metafrash.

Se ola ta paketa me yposthrijh ”gettext”, yparxei enas ypokatalogos po/ poy periexei to arxeio ypodeigma ”programma.pot”, to opoio einai keno apo metafrasmena mhnumata. Taytoxrona, gia tis yposthrizomenes glwsses yparxoyn antistoixa arxeia *.po, opws de.po, fr.po, nl.po poy einai antigrafa toy arxikou arxeioy ypodeigmatos .pot me symplhrwmenes tis metafraseis.

4.3.3 Programma msgfmt

Eisodos: arxeia *.po (portable object)

Ejodos: arxeia *.mo (machine object)

To arxeio .mo einai ekeino poy 8a topo8eth8ei sto katalogo /usr/share/locale/el/LC MESSAGES gia na oloklhrw8ei h egkatastash.

4.3.4 Loipa programmata

Alla programmata toy paketoy gettext einai

• msgmerge, ejypnh synenwsh duo .po arxeiwn

• msgcomm, euresh koinwn mhnymatwn duo .po arxeiwn

• msgcmp, sugkrish duo .po arxeiwn

• msgunfmt, metatroph toy .mo se .po

5 Epilogh ellhnikwn lejewn kai ekfrasewn

Einai shmantiko na yparxei mia omoiogeneia sto apotelesma twn metafrasewn. Gia ayto to logo, Xrhsh orwn poy proteinoyn egkyres phges, opws ELOT, EPY, metafrasmena biblia plhroforikhs sta ellhnika (p.x. Leitoyrgika systhmata toy A.S.Tanenbaum) kai prohgoumenes metafraseis.

5.1 Pws 8a mporouse na metafrastei to p.x. ”Broken pipe”; ”Spasmenh swlhna”;

Me ejypnh epilogh twn orwn, mporoume na lusoyme tetoia problhmata. H Ellhnikh glwssa einai gnwsto oti einai arketa plousia. Enas kaluteros oros gia to parapanw paradeigma 8a htan ”Diakopeisa swlhnwsh”.

5.2 LEXIS

To LEXIS <http://server.hellug.gr/lexis/> einai ena lejiko me ellhnikes metafraseis agglikwn ennoiwn poy xrhsimopoiountai sth Plhroforikh.

5.3 Ellhnikh bibliografia

• Asfaleia stis Texnologies Plhroforiwn & Epikoinwniwn - Ennoiologikh 8emeliwsh (Ekdoseis Newn Texnologiwn)

• Leitoyrgika Systhmata I (metafrash toy biblioy toy A.Tannembaum apo to E.K.P.A.;)(pros ejakribwsh)

• E.P.Y.(pros symplhrwsh)

6 Organwsh metafrasewn

6.1 Prosonta metafrastwn

Ta atoma poy toys endiaferei h metafrash prepei na exoyn

• eyxeria sthn ellhnikh glwssa

• kalh gnwsh orwn ths plhroforikhs

• empeiria me to logismiko pros metafrash

Ginetai analhch ths basikhs metafrashs toy programmatos kai ena deutero atomo asxoleitai me th diadikasia ths ana8ewrhshs (reviewing). 8ewroume th diadikasia ths ana8ewrhshs shmantikh gia thn ychlh poiothta ths metafrashs.

6.2 Analhch metafrasewn

Molis epilejete to paketo poy 8elete na metafrasete, epikoinwneite me ton trexonta ypeu8yno twn metafrasewn kai sas apodidete o ana8ewrhths ths metafrashs. Afou oloklhrwsete th metafrash, o ana8ewrhths thn elegxei kai sas stelnei pisw sxolia kai protaseis gia allagh. Bash twn stoixeiwn aytwn, prokuptei mia telikh ekdosh h opoia apostellete pros symperilhch sto paketo logismikou. Gia tis mellontikes ekdoseis toy paketoy mporeite na stelnete katey8eian tis ananewmenes metafraseis.

6.3 Odhgies metafrashs

O metafrasths prepei na metafrasei ta mhnumata poy briskontai se ena arxeio me onoma po/programma.pot sto paketo toy programmatos. To sygkekrimeno arxeio exei th morfh

             msgid "Connecting to %s:%hu... "
             msgstr ""

Opote pros8etoyme sto pedio msgstr thn ellhnikh metafrash, dhladh:

• msgid ”Connecting to %s:%hu... ”

• msgstr ”Sundesh me %s:%hu... ”

Perissoteres odhgies mporeite na breite sto GNU Translation Project <http://www.iro.umontreal.ca/

contrib/po>

6.4 Nomikes leptomereies

Sthn periptwsh poy metafrazete ena programma poy anhkei sta Epishma GNU Programmata, prepei na apokyrrujete ola ta dikaiwmata ekmetalleyshs. Ayto ginetai me thn apostolh toy legomenoy DISCLAIMER <http://www.iro.umontreal.ca/contrib/po/doc/>. Gia perissoteres plhrofories, epikoinwnhste me ton ypeu8yno twn metafrasewn gia perissoteres plhrofories. Deite 12.1 (Ypeu8ynos metafrasewn)

Ta atoma ths ellhnikhs metafrastikhs omadas, ta opoia exoyn ektelesei thn prohgoumenh diadikasia einai

   • Xrhstos Anastasioy <mailto:chanas@cs.teiath.gr>
   • Nikos Mayrogiannopoylos <mailto:nmav@i-net.paiko.gr>
   • Kosmas Mpenekos <mailto:kosmega@teiath.gr>
   • Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>
   • Giannhs Spanos <mailto:yspanos@hotmail.com>

6.5 Poioi einai oi basikoi logoi metafrashs twn mhnymatwn sta ellhnika;

1. O ejellhnismos enisxuei ta epixeirhmata gia xrhsh toy Linux sth deyteroba8mia kai tritoba8mia ekpaideysh.

2. Oi newteres dianomes toy Linux 8a periexoyn ej orismou ta ellhnika mhnumata kai 8a yposthrizoyn en genei ta ellhnika.

3. Ka8ierwnontai nte fakto oi ellhnikoi oroi sth plhroforikh.

4. Enisxuontai oi diaforoi klwnoi toy Unix poy exoyn basikh yposthrijh Ellhnikwn opws Solaris.

5. O ejellhnismos einai kati poy prepei na ginei gia na einai plhres to Linux. Gia osoys einai arnhtika diakeimenoi, skefteite oti einai san na doyleuete se ena oiko logismikou (software house) kai kai na dia8etete to programma xwris na balete arxeia boh8eias dioti kaneis den ta diabazei.

6. Gia na xrhsimopoih8ei to Linux sthn ekpaideysh, einai shmantiko proson na einai ejellhnismeno. Kai ayto, eite gia toys diagwnismous plhroforikhs, eite gia toys ma8htes me dyskolia sta agglika.

7 Trexoysa katastash twn metafrasewn

• Epishma GNU programmata

1. enscript, metafrash Manwlhs Loyrakhs <mailto:lourakis@csd.uch.gr>, ana8ewrhsh Simos 3en-

  itellhs <mailto:S.Xenitellis@rhbnc.ac.uk>

2. fileutils, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno 3. gettext, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno 4. grep, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno

5. hello, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno

6. libc, metafrash Nikos Mayrogiannopoylos <mailto:nmav@hellug.gr>, ana8ewrhsh Simos 3en-

  itellhs <mailto:S.Xenitellis@rhbnc.ac.uk>

7. m4, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno

8. recode, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno 9. sharutils, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno 10. sh-utils, metafrash Nikos Mayrogiannopoylos <mailto:nmav@hellug.gr>, ana8ewrhsh keno

11. sed, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno

12. textutils, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno 13. wget, metafrash Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>, ana8ewrhsh keno

Perissoteres plhrofories Pinakas metafrasewn #1 <http://www.iro.umontreal.ca/contrib/po/doc/
matrix.texi>, Pinakas metafrasewn #2 <http://www.iro.umontreal.ca/contrib/po/trans/el/>

• Anepishma GNU programmata

1. mutt, metafrash Fanhs Dokianakhs <mailto:ph04169@cc.uoi.gr>, ana8ewrhsh Simos 3enitellhs

  <mailto:S.Xenitellis@rhbnc.ac.uk>

2. shadow, metafrash Nikos Mayrogiannopoylos <mailto:nmav@hellug.gr>, ana8ewrhsh keno

3. windowmaker, metafrash Papagrhgorioy Nikolaos <mailto:papanikos@usa.net>, ana8ewrhsh keno 4. lyx, metafrash Menelaos Magklhs <mailto:maglis@otenet.gr>, ana8ewrhsh keno, plhrofories

      Ellhnikh Selida Lyx <http://users.otenet.gr/~maglis/lyx>

• KDE

1. basika mhnumata KDE, metafrash 8eodwros Soldatos <mailto:theodore@eexi.gr>, ana8ewrhsh

keno Perissoteres plhrofories Pinakas metafrasewn KDE <http://www.kde.org/i18n.html>

• Gnome Perissoteres plhrofories Pinakas metafrasewn Gnome <http://www.gnome.org/i18n/status.

  shtml>

8 Ekkremothtes

8.1 Loipa programmata poy perimenoyn ellhnikh metafrash

1. Mhnumata egkatastashs RedHat, RedHat <http://www.redhat.com>

2. Mhnumata egkatastashs SuSE, SuSE <http://www.suse.com>

3. Fortify, Fortify <http://www.fortify.net/localization.html>, xrhsh systhmatos diaforetikou apo NLS

4. freetype, FreeType font rendering engine <http://www.freetype.org>

5. rpm, RPM, package manager <http://www.redhat.com>

6. Squid, Squid 2 Cache Proxy Server <http://squid.nlanr.net>

7. Console tools, Console-tools <http://www.multimania.com/ydirson/en/lct/l10n.html>

9 Dia8esimoi ana8ewrhtes

• Menelaos Maglhs <mailto:maglis@otenet.gr>
• Nikos Mayrogiannopoylos <mailto:nmav@i-net.paiko.gr>
• Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk>

Opoios einai dia8esimos na syneisferei ws ana8ewrhths metafrasewn, na epikoinwnhsei me ton 12.1 (ypeu8yno metafrasewn) gia thn pros8hkh toy/ths sth lista.

10 Ellhnikes metafraseis stis ekdoseis Linux

• RedHat Linux 5.2 1. WindowMaker

• RedHat Linux 6.0 1. WindowMaker

2. fileutils 3. grep

4. KDE, ekdosh 1.1

5. libc

• OpenLinux 2.2

1. fileutils, ekdosh 4.0-b6

2. KDE, ekdosh 1.1

• SuSE Linux 6.2 (pros symplhrwsh)

11 PO arxeia

1. Epishma GNU programmata Epishma GNU programmata <http://www.iro.umontreal.ca/

     contrib/po/trans/el/>

2. Anepishma GNU programmata

       • Lyx, Lyx <http://users.otenet.gr/~maglis/lyx/elpo>

• Mutt, mutt, international version <http://www.mutt.org>

       • Shadow suite, shadow-suite <http://linux.forthnet.gr/pub/linux/shadow>
       • WindowMaker,  WindowMaker  <http://www.windowmaker.org/ftp/pub/beta/srcs/
         WindowMaker-0.60.0.tar.gz>
  3. KDE <http://www.kde.org/messages/el.messages>

4. Gnome keno

12 Epikoinwnia

12.1 Poios einai o trexon ypeu8ynos twn ellhnikwn metafrasewn;

Ypeu8ynos gia tis metafraseis twn Epishmwn GNU Programmatwn sthn Ellhnikh glwssa einai o Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac.uk> (S.Xenitellis@rhbnc.ac.uk). Gia otidhpote plhroforia, steilte e-mail.

Gia ta Anepishma GNU Programmata, syntonisths einai ekeinos twn Epishmwn Metafrasewn.

Gia to grafiko periballon KDE, ypeu8ynos einai o 8eodwros I. Soldatos <mailto:theodore@eexi.gr>.

Gia to grafiko periballon Gnome, syntonisths einai o Simos 3enitellhs <mailto:S.Xenitellis@rhbnc.ac. uk>. Gia to Gnome den yparxoyn mexri ayth th stigmh ellhnikes metafraseis. To logismiko ayto brisketai se anaptyjh kai ta antistoixa arxeia mhnymatwn allazoyn arketa syxna. Pisteuoyme oti sto ameso mellon prepei na jekinhsei h metafrash kai sthn perioxh ayth.