Ekaterina Gerasimova kittykat3756@gmail.com 2013 Mario Blättermann mario.blaettermann@gmail.com 2009-2012, 2016 Christian Kirbach christian.kirbach@gmail.com 2011, 2012, 2015, 2017, 2018 Aljosha Papsch al@rpapsch.de 2012 Einrichten Ihres Buildsystems für Übersetzungen Übersetzungen einrichten

Sie sollten das Buildsystem Ihres Projekts so einrichten, dass es mit Übersetzungen umgehen kann.

Erstellen Sie einen Unterordner namens po/ in Ihrem Projektordner und listen Sie in der Datei po/POTFILES.in jene Dateien auf, die übersetzbare Zeichenketten enthalten. Dateien ohne übersetzbare Zeichenketten listen Sie in po/POTFILES.skip auf.

Fügen Sie die folgenden Zeilen zur Datei configure.ac hinzu:

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

Fügen Sie die folgenden Zeilen zur Datei Makefile.am hinzu:

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)

Führen Sie intltoolize aus, um die Build-Infrastruktur von intltool zum Build-Tree hinzuzufügen, bevor Sie autoreconf aufrufen.

Ihre Buildsystem ist und Ihre Quellzeichenketten sind nun bereit für die Übersetzung. Sie müssen noch gettext über drei Dinge informieren:

die translation domain, im Allgemeinen der Name der Anwendung

den Ort, wo die erstellten Übersetzungen installiert werden sollen

und die Zeichenkodierung der Übersetzungen, allgemein UTF-8

Das Beispiel nimmt an, dass Ihre Anwendung in C geschrieben ist. Für andere Programmiersprachen wird es etwas abweichen.

Fügen Sie die folgende Zeile zu der Quelldatei hinzu, die Ihre main()-Funktion enthält:

#include "config.h"

Dann fügen Sie folgende Zeilen zur main()-Funktion hinzu:

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

Rufen Sie make Projektname.pot im Ordner po auf. Dadurch extrahiert intltool-extract die übersetzbaren Zeichenketten und schreibt diese in eine po-Vorlage (POT-Datei).