gettext
Tämän artikkelin tai sen osan muoto tai tyyli kaipaa korjausta. Voit auttaa Wikipediaa parantamalla artikkelia. Lisää tietoa saattaa olla keskustelusivulla. |
gettext on kirjasto ohjelmien lokalisointiin. Alun perin kirjastoa käytettiin ainoastaan Solaris-käyttöjärjestelmässä.
Laajalti käytetty versio on GNU-projektin vuonna 1995 julkaisema GNU Gettext.[1][2]
Käyttö[muokkaa | muokkaa wikitekstiä]
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.
Lähteet[muokkaa | muokkaa wikitekstiä]
- ↑ History of GNU gettext gnu.org. Viitattu 14.10.2007. (englanniksi)
- ↑ Olexiy Ye Tykhomyrov: Introduction to Internationalization Programming 1.11.2002. Linux Journal. Viitattu 4.2.2020. (englanniksi)