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
Tim Sabsch
tim@sabsch.com 2019

# 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).