Jest to alternatywa dla działań takich funkcji jak POSIX-owa catgets, GetString z AmigaOS, czy LoadString w Microsoft Windows, gdzie używany jest identyfikator ciągu, często będący liczbą naturalną.

Program xgettext służy do ekstrakcji tłumaczeń z kodu źródłowego i tworzenia z nich plików .pot, których zawartość jest szablonem dla tłumacza.

Przykład Przykładowy kod do tłumaczenia: /// TRANSLATORS: Please leave %s as it is, because it is needed by the program. /// Thank you for contributing to this project. printf(_("My name is %s.\n"), my_name);

Po uruchomieniu xgettext: xgettext --add-comments=/ file.c

Wynikowy plik szablonowy .pot będzie wyglądał mniej więcej tak: #. TRANSLATORS: Please leave %s as it is, because it is needed by the program. #. Thank you for contributing to this project. #: src/name.c:36 msgid "My name is %s.\n" msgstr ""

Tłumaczenie Tłumacz tworzy plik .po (zawierający tłumaczenie) z szablonu używając programu msginit, gdzie uzupełnia tłumaczenia. Przykładowo dla języka polskiego będzie to: msginit --locale=pl --input=name.pot