Siirry sisältöön

gettext

Wikipediasta
GNU Gettext
Kehityshistoria
Vakaa versio 1.0 ()[1]
Tiedot
Lisenssi GNU General Public License v3.0 or myöhempi ja GNU Lesser General Public License, versio 2.1 tai myöhempi

gettext on kirjasto ohjelmien lokalisointiin.

Sun Microsystems toteutti kirjaston ensimmäisen kerran vuonna 1993 Solaris-käyttöjärjestelmässä. 1980-luvun lopulla lokalisointiin oli kaksi kilpailevaa toteutusta, X/Openin catgets ja Sunin gettext. Sun yritti standardoida gettextiä Uniforum-ryhmässä.[2] GNU-projekti katsoi gettextin olevan yksinkertaisempi ja ohjelmoijalle helppo ja toteutti sen myös. Laajalti käytetty toteutus on GNU-projektin vuonna 1995 julkaisema GNU Gettext.[3][4]

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.

  1. gettext-1.0 released [stable], (viitattu ) (englanniksi) . Tieto on haettu Wikidatasta.
  2. Message Translation (The GNU C Library) www.gnu.org. Arkistoitu 18.12.2003. Viitattu 4.5.2023.
  3. History of GNU gettext gnu.org. Viitattu 14.10.2007. (englanniksi)
  4. Olexiy Ye Tykhomyrov: Introduction to Internationalization Programming 1.11.2002. Linux Journal. Viitattu 4.2.2020. (englanniksi)

Aiheesta muualla

[muokkaa | muokkaa wikitekstiä]