Єкатерина Герасимова (Ekaterina Gerasimova)
kittykat3756@gmail.com 2013
Максим Дзюманенко
dziumanenko@gmail.com 2010
Юрій Чорноіван
yurchor@ukr.net 2020

# Налаштовування системи збирання для роботи з перекладами

# Налаштовування перекладів

Вам слід налаштувати ваш проєкт і систему збирання для роботи з перекладами.

Створіть підкаталог po/ у каталозі вашого проєкту і запишіть список файлів, у яких містяться придатні до перекладу рядки, до файла po/POTFILES.in. Список файлів, які не містять придатних до перекладу рядків, слід вказати у файлі po/POTFILES.skip.

Додайте такі рядки до вашого configure.ac:

IT_PROG_INTLTOOL([0.50.0]) AC_SUBST([GETTEXT_PACKAGE], [$PACKAGE_TARNAME]) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Package name for gettext])

Додайте такі рядки до вашого Makefile.am:

SUBDIRS = po
AM_CPPFLAGS = -DPACKAGE_LOCALEDIR=\""$(datadir)/locale"\"
@INTLTOOL_DESKTOP_RULE@ desktopdir = $(datadir)/applications desktop_in_files = data/applicationname.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)

Запустіть intltoolize для копіювання інфраструктури збирання intltool до ієрархії збирання перед запуском autoreconf.

Тепер, коли ваша система збирання і ваші початкові рядки готові до перекладу, вам слід повідомити gettext три речі:

домен перекладу, зазвичай, він збігається із назвою програми

місце, куди буде встановлено зібрані переклади

кодування символів для перекладів, типово UTF-8

У цьому прикладі ми припускаємо, що вашу програму написано на C. У інших мовах програмування код буде дещо іншим.

Додайте такий рядок до файла коду, який містить функцію `main()`on:

#include "config.h"

Далі, додайте такі рядки до вашої функції `main()`:

bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALEDIR); bind_textdomain_codeset (PACKAGE_TARNAME, "UTF-8"); textdomain (GETTEXT_PACKAGE);

Віддайте команду make назва_проєкту.pot у каталозі po. У відповідь буде запущено intltool-extract для видобування придатних до перекладу рядків і записування їх до файла шаблона po (POT).