gettext

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun

gettext on kirjasto ohjelmien lokalisointiin. Alun perin kirjastoa käytettiin ainoastaan Solaris-käyttörjärjestelmässä, mutta vuonna 1995 GNU-projekti julkaisi kirjastosta oman versionsa.[1]

gettextia käytettäessä ohjelma muutetaan suoran tulostuksen sijaan käyttämään gettext-kirjaston kutsuja. C-kieltä käytettäessä tämä tehdään yleisimmin käyttämällä funktiota nimeltä "_".

Tulostuskutsusta:

printf("My name is %s.\n", my_name);

tulisi:

printf(_("My name is %s.\n"), my_name);

gettext käyttää ohjelmassa olevia merkkijonoja avaimina käännöksiä etsittäessä, ja palauttaa alkuperäisen merkkijonon sijaan tiedostosta ladatun, tai alkuperäisen, jos halutulle kielelle ei ole käännöstä.

Ohjelman kääntäminen tapahtuu ajamalla lähdekoodille xgettext-ohjelma, joka poimii käännettävät kohdat .pot-päätteiseen tekstitiedostoon. Tästä luodaan .po-päätteinen käännöstiedosto halutulle kielelle:

msginit --locale=fi --input=name.pot

Edellä mainitulle ohjelmalle fi.po olisi:

#: src/name.c:36
msgid "My name is %s.\n"
msgstr "Minun nimeni on %s.\n"

Ohjelman kääntäjä kirjoittaa käännöksen msgstr-riville lainausmerkkien väliin jättäen C:n tulostuksenohjauskoodit kuten "%s" ja "\n" paikoilleen.

.po-tiedostosta käännetään .mo-tiedosto msgfmt-ohjelmalla ja se sijoitetaan esimerkiksi /usr/share/locale/fi/LC_MESSAGES-hakemistoon.

Viitteet[muokkaa | muokkaa wikitekstiä]

  1. History of GNU gettext Viitattu 14.10.2007. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]