GNU gettext

Z Wikipedii, wolnej encyklopedii
(Przekierowano z Gettext)
Skocz do: nawigacji, szukaj

GNU gettext to pakiet oprogramowania, stworzony w ramach projektu GNU, służący do umiędzynarodowienia programów komputerowych poprzez tłumaczenie ich komunikatów. W skład pakietu wchodzą narzędzia do tworzenia i obróbki plików z tłumaczeniami komunikatów (pliki .po) oraz funkcje biblioteczne m.in. dla języka C.

Spis treści

[edytuj] Zastosowanie w programie

#include <locale.h> /* dla funkcji setlocale() */
#include <libintl.h> /* dla gettext'a */

char *domena_naszego_programu; /* nazwa, pod którą gettext będzie szukał komunikatów */

[...]

setlocale(LC_ALL, ""); /* ustawienie zmiennych językowych (tu pobierane ze środowiska) */
domena_naszego_programu = textdomain ("nasza_domena"); /* ustawienie tzw. 'text domain' */
[...]

I tu, zamiast

printf("Komunikat oryginalny");

wstawiamy:

  • printf(gettext("Komunikat oryginalny"));
  • printf(_("Komunikat oryginalny"));
  • printf(N_("Komunikat oryginalny"));

Jeśli Komunikat oryginalny zostanie przetłumaczony w pliku dla odpowiedniego języka, to wyświetlone zostanie jego tłumaczenie.

[edytuj] Struktura plików .po

Mają one bardzo prostą strukturę, polegającą na powtarzaniu par msgid i msgstr, z których pierwsze zawiera treść komunikatu oryginalnego, a drugie tłumaczenie. Przykład:

msgid "Komunikat oryginalny"
msgstr "Tłumaczenie komunikatu"

[edytuj] Tworzenie plików z tłumaczeniem

Pliki z tłumaczeniem - .po lub .pot (pusty szablon) mogą zostać stworzone ręcznie lub przez narzędzie xgettext dostarczane z pakietem. Opis programu otrzymamy pisząc:

$ xgettext --help

Jeśli korzystamy w swym projekcie z programów autoconf/automake, to stworzenie pliku .pot wykonamy przez wydanie polecenia:

cd po/
make <nazwa_projektu>.pot

Tak stworzone i przetłumaczone pliki tekstowe należy przekształcić do postaci binarnej poleceniem msgfmt (informacja o użyciu: opcja --help) oraz przekopiować powstałe pliki .mo (najczęściej) do pliku /usr/share/locale/<język, np. 'pl'>/LC_MESSAGES/<nazwa_projektu>.mo.

[edytuj] Dodatkowe informacje

[edytuj] Podręcznik systemowy

Więcej informacji na stronach podręcznika systemowego:

  • gettext
  • setlocale
  • locale

[edytuj] Linki zewnętrzne

Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Dla czytelników
Dla wikipedystów
Drukuj lub eksportuj
Narzędzia
W innych językach