Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2005  »  12  »  Programme von Welt  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Drei mal eins

Abschließend muss der Entwickler dem Gettext-System nur noch mitteilen, welche Sprachdatei es anwenden soll. Das übernehmen drei Funktionen, die jedes Programm möglichst direkt nach seinem Start aufrufen sollte. In einem C-Programm ist der beste Platz normalerweise am Anfang von »main«:

setlocale (LC_ALL, "");
bindtextdomain ("hello","/usr/share/locale");
textdomain ("hello");

Listing 2: Hello World
übersetzt

01 #include <stdio.h>
02 #include <libintl.h>
03 #include <locale.h>
04 
05 main()
06 {
07    setlocale (LC_ALL, "");
08    bindtextdomain ("hello","/usr/share/locale");
09    textdomain ("hello");
10 
11    printf(gettext("hello worldn"));
12 }

In der ersten Zeile setzt »setlocale« die Sprache auf jene, die in der Umgebungsvariablen »LC_ALL« steht. Die nächste Zeile gibt an, in welchem Unterverzeichnis sich die Wörterbücher befinden (in der oben genannten Unterverzeichnisstruktur ist dies »Pfad_zu_Sprachdateien«). In diesem Fall forscht »bindtextdomain« im entsprechenden Unterverzeichnis von »/usr/share/locale« nach dem Katalog mit dem Namen »hello.mo«. Die Funktion »textdomain()« wählt das ab sofort zu benutzende Wörterbuch. Grundsätzlich sind mehrere Bindtextdomain-Aufrufe erlaubt, der Anwender kann also während der Ausführung zwischen verschiedenen Katalogen hin und her springen.

Um das Ergebnis der Übersetzung zu testen, kompiliert man zunächst »hello.c«. Das Binary mit der Libintl-Bibliothek zu linken ist auf Systemen mit der Glibc nicht notwendig, da diese alle Gettext-Funktionen enthält. Bleibt nur noch die entsprechende Umgebungsvariable mit »export LANG="de_DE"« auf Deutsch einzustellen. Bei der Ausführung gibt »hello« nun die beliebte Meldung auf Deutsch aus. Den kompletten Quellcode zeigt Listing 2.

Unterverzeichnisse
verarbeiten

Besteht ein Programm aus mehr als einer Datei, so müssen diese dem Aufruf von »xgettext« hinzugefügt werden. Am einfachsten geschieht dies, indem man gleich die kompletten Unterverzeichnisse einbindet:

xgettext -D Eingabeverzeichnis -d hello.po

Hiermit stehen alle Zeichenketten nur in der Datei »hello.po«, was die Arbeit für den Übersetzer erheblich erleichtert.


Abbildung 2: Die Ubuntu-Foundation betreut das Rosetta-Projekt, das die Übersetzung von PO-Dateien im Browser ermöglicht. Damit können auch Nicht-Programmierer zur Übersetzung beitragen.

Fazit

Gettext unterstützt die mehrsprachige Übersetzung von Programmen, indem es Textausgabe und Programmcode trennt. Auf diese Weise lassen sich nachträglich weitere Sprachen hinzufügen, ohne eine einzige Zeile Quellcode zu ändern. Auch einem bereits existierenden Programm bringt Gettext schnell fremde Sprachen bei: Drei Zeilen zum Programmbeginn und einige Gettext-Kapselungen genügen. Es lohnt sich also, bei der mehrsprachigen Programmentwicklung auf Gettext zu setzen. (ofr)

Infos

[1] Gettext: [http://www.gnu.org/software/gettext]

[2] PO-Edit: [http://www.poedit.org]

[3] Rosetta: [https://launchpad.net/rosetta]

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Wissenstransfer Aussichtsreiche Würfelkandidaten unter der Lupe
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Nebenläufig Concurrent Programming mit Clojure
Alles geht Welche Programmiersprache sich für welche Probleme eignen
Groß in Mode Workshop: Major Modes für (X)Emacs
Angler-Paradies Informationen aus Webseiten mit Tcl extrahieren
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Kommentare (0)