6.5. Benutzung von GNU `gettext`
Zurück | Kapitel 6. Besonderheiten | Weiter

## 6.5. Benutzung von GNU `gettext`

### 6.5.1. Grundlegende Benutzung

Wenn Ihr Port `gettext` benötigt, setzen Sie einfach `USE_GETTEXT` auf `yes`, und Ihr Port bekommt die Abhängigkeit von `devel/gettext`. Der Wert von `USE_GETTEXT` kann auch die benötigte Version der `libintl`-Bibliothek angeben, der grundlegenden Teil von `gettext` – jedoch wird von der Benutzung dieser Funktion dringend abgeraten: Ihr Port sollte einfach nur mit der aktuellen Version von `devel/gettext` funktionieren.

Ein ziemlich häufiger Fall ist, dass ein Port `gettext` und `configure` benutzt. Normalerweise sollte GNU `configure` `gettext` automatisch finden können. Sollte das einmal nicht funktionieren, können Hinweise über den Ort von `gettext` in `CPPFLAGS` und `LDFLAGS` wie folgt übergeben werden:

USE_GETTEXT= yes CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib GNU_CONFIGURE= yes CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \ LDFLAGS="${LDFLAGS}"

Natürlich kann der Code kompakter sein, wenn es keine weiteren Flags gibt, die `configure` übergeben werden müssen:

USE_GETTEXT= yes GNU_CONFIGURE= yes CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib"

### 6.5.2. Optionale Benutzung

Manche Softwareprodukte erlauben die Deaktivierung von NLS - z.B. durch Übergeben von `--disable-nls` an `configure`. In diesem Fall sollte Ihr Port `gettext` abhängig vom Status von `WITHOUT_NLS` benutzen. Für Ports mit niedriger bis mittlerer Komplexität können Sie sich auf das folgende Idiom verlassen:

GNU_CONFIGURE= yes .if !defined(WITHOUT_NLS) USE_GETTEXT= yes PLIST_SUB+= NLS="" .else CONFIGURE_ARGS+= --disable-nls PLIST_SUB+= NLS="@comment " .endif

Der nächste Punkt auf Ihrer Todo-Liste ist dafür zu sorgen, dass die Message-Catalog-Dateien nur bedingt in der Packliste aufgeführt werden. Der `Makefile`-Teil dieser Aufgabe ist schon durch obiges Idiom erledigt. Das wird im Abschnitt über Fortgeschrittene `pkg-plist`-Methoden erklärt. Kurz gesagt, jedes Vorkommen von `%%NLS%%` in `pkg-plist` wird durch „`@comment` “, wenn NLS abgeschaltet ist, oder durch eine leere Zeichenkette, wenn NLS aktiviert ist, ersetzt. Folglich werden die Zeilen, denen `%%NLS%%` vorangestellt ist, zu reinen Kommentaren in der endgültigen Packliste, wenn NLS abgeschaltet ist; andernfalls wird der Prefix einfach nur ausgelassen. Alles, was Sie jetzt noch machen müssen, ist `%%NLS%%` vor jedem Pfad zu einer Message-Catalog-Datei in `pkg-plist` einzufügen. Zum Beispiel:

%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo %%NLS%%share/locale/no/LC_MESSAGES/foobar.mo

In sehr komplexen Fällen müssen Sie eventuell fortgeschrittenere Techniken als die hier vorgestellte benutzen - wie z.B. Dynamische Packlistenerzeugung.

### 6.5.3. Behandlung von Message-Catalog-Verzeichnissen

Bei der Installation von Message-Catalog-Dateien gibt es einen Punkt zu beachten. Ihr Zielverzeichnis, das unter ``LOCALBASE`/share/locale` liegt, sollte nur selten von Ihrem Port erzeugt und gelöscht werden. Die Verzeichnisse für die gebräuchlichsten Sprachen sind in `/etc/mtree/BSD.local.dist` aufgelistet; das heisst, sie sind Teil des Systems. Die Verzeichnisse für viele andere Sprachen sind Teil des Ports `devel/gettext`. Sie wollen vielleicht dessen `pkg-plist` zur Hand nehmen, um festzustellen, ob Ihr Port eine Message-Catalog-Datei für eine seltene Sprache installiert.

Zurück | Nach oben | Weiter
6.4. Benutzung von GNU autotools | Zum Anfang | 6.6. Die Benutzung von `perl`

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.