.po
GNU gettext
Entwickler: Das GNU-gettext-Team (Maintainer: Bruno Haible)
Aktuelle Version: 0.17
(27. November 2006)
Betriebssystem: Unix-artige Betriebssysteme, Windows (s. Weblinks)
Kategorie: Lokalisierung
Lizenz: GPL
Deutschsprachig: nein
GNU gettext Homepage

GNU gettext ist die GNU-Internationalisierungsbibliothek. Normalerweise wird sie zur Entwicklung von mehrsprachigen Programmen genutzt. Die derzeit aktuelle Version ist 0.17.

Inhaltsverzeichnis

Arbeitsablauf

Programmierer

Zuerst wird der Quelltext so modifiziert, dass er die GNU-gettext-Funktionen aufruft. Dies wird bei den meisten Programmiersprachen durch Wrappen der Strings erreicht, die durch gettext ausgegeben werden sollen. Um Zeit beim Programmieren zu sparen, ist diese Funktion normalerweise auch unter dem Namen _ ansprechbar, so dass das folgende Codebeispiel (in C) von

 printf("Mein Name ist %s.\n", mein_name);

in

 printf(_("Mein Name ist %s.\n"), mein_name);

geändert werden müsste. Dieses ist gleichbedeutend mit

 printf(gettext("Mein Name ist %s.\n"), mein_name);

GNU gettext ist außer in C mittlerweile auch in C++, Objective-C, sh script, Bash script, Python, Ruby, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Pascal, Delphi, wxWidgets (mit Hilfe der wxLocale-Klasse), YCP (der YaST2-Sprache), Tcl, Perl, PHP und Pike verfügbar. Die Benutzung von gettext in diesen Systemen ist dabei in der Regel sehr ähnlich zu C.

Mit xgettext werden die Quelldateien analysiert, um eine .pot-Datei (Portable Object Template) zu erzeugen, die eine Liste aller übersetzbaren Texte (Strings) enthält. Für das obige Beispiel würde der Eintrag in der .pot-Datei in etwa so aussehen:

#: src/name.c:36
msgid "Mein Name ist %s.\n"
msgstr ""

Übersetzer

Der Übersetzer erstellt eine .po-Datei (Portable Object) aus der Vorlage mit dem Programm msginit und erstellt anschließend die Übersetzungen. msginit initialisiert die Übersetzung, wenn man also eine englische Übersetzung erstellen möchte, müsste man msginit wie folgt aufrufen:

msginit --locale=en --input=name.pot

Dieser Aufruf würde die Datei en.po erstellen, ein Eintrag in dieser Datei würde z. B. so aussehen:

#: src/name.c:36
msgid "Mein Name ist %s.\n"
msgstr "Mein Name ist %s.\n"

Der Übersetzer müsste dann entweder manuell oder mit einem Werkzeug wie poEdit oder KBabel die entsprechenden Texte ersetzen. Nach getaner Arbeit würde der Beispieleintrag so aussehen:

#: src/name.c:36
msgid "Mein Name ist %s.\n"
msgstr "My name is %s.\n"

Abschließend werden die .po-Dateien mit msgfmt in binäre .mo-Dateien (Machine Object) übersetzt. Diese können nun mit dem Softwarepaket ausgeliefert werden.

Es empfiehlt sich häufig auch für deutsche Programmierer, die Originaltexte auf Englisch zu verfassen, ansonsten müsste ein Übersetzer sowohl Deutsch als auch die Zielsprache beherrschen. Eine alternative Strategie ist, statt ganzen Sätzen kurze Begriffe zu verwenden (z. B. „form_submit“), was den Vorteil hat, dass diese generischen "Schnipsel" an mehreren Stellen im Code verwendet werden können, aber in der Lokalisierungsdatei nur einmal übersetzt werden müssen. Um denselben Effekt mit ganzen Sätzen zu erzielen, müssten diese Zeichen für Zeichen identisch sein, was recht fehleranfällig ist.

Benutzer

Der Benutzer auf einem Unix- (oder Unix-ähnlichen) System definiert die Locale mithilfe der Umgebungsvariablen LC_ALL, LC_MESSAGES bzw. LANG. Das Programm gibt die Texte in der entsprechenden Sprache aus, sofern für diese eine .mo-Datei existiert.

Siehe auch

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • po — I {{/stl 13}}{{stl 8}}przyim., łączy się z biernikiem {{/stl 8}}{{stl 20}} {{/stl 20}}{{stl 12}}1. {{/stl 12}}{{stl 7}} wskazuje na granicę zasięgu czegoś w przestrzeni lub w czasie : {{/stl 7}}{{stl 10}}Wanna wypełniona po brzegi wodą. Śnieg po… …   Langenscheidt Polski wyjaśnień

  • Po — Saltar a navegación, búsqueda Río Po El río Po en Turín País que atraviesa …   Wikipedia Español

  • Po — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}}   Sigles d une seule lettre > Sigles de deux lettres   Sigles de trois lettres …   Wikipédia en Français

  • po — pȍ prij. (s A i L) DEFINICIJA 1. s upravnom riječju i izrazom u akuzativu određuje a. svrhu, cilj gl. radnje [otići po kruh] b. trajanje onoga što označava imenica u A [po cijeli dan] c. način i uvjet pod kojim se ostvaruje ono što riječ ili… …   Hrvatski jezični portal

  • Po — or PO may refer to: Contents 1 Places 2 People 3 Fictional characters …   Wikipedia

  • po — po·dag·ra; po·dal; po·dal·ic; po·da·li·ri·idae; po·da·lir·i·us; po·dar·gi·dae; po·dar·gus; po·dar·thral; po·dar·thrum; po·da·tus; po·de·on; po·de·sta; po·de·tial; po·de·tii·form; po·de·tium; po·dex; …   English syllables

  • Po — (bei den Alten Padus, auch Eridanus), der größte Fluß Italiens, entspringt in den Kottischen Alpen, am Nordabhang des Monte Viso, auf dem Piano del Re (2041 m), fließt anfangs östlich in der Provinz Cuneo durch ein Alpental bis gegen Saluzzo,… …   Meyers Großes Konversations-Lexikon

  • Po! — was an indie band formed in Leicester, England in 1987, with releases dating up to 1997 on Rutland Records.HistoryPo! was originally formed by Ruth Miller (vocals and guitar), with Julian Glover (bass) and Mark Fuccio (drums). Usually subsumed… …   Wikipedia

  • po — pȏ (pȏl) čest. (nesamostalna) DEFINICIJA u zn. pola FRAZEOLOGIJA dva i po (sata), tri i po (sata) itd. (njem. kalk. pola tri, pola četiri itd.); junak i po, knjiga i po itd. za pojačavanje pozitivnog značenja imenice: odličan, izvrstan; ni po… …   Hrvatski jezični portal

  • Po — Símbolo químico del polonio. * * * El río Po (antiguamente conocido como río Padus) fluye a lo largo de 652 kilómetros de oeste a este, a través del norte de Italia. En su extensión desde los Alpes al Mar Adriático, cerca de Venecia, su cuenca… …   Enciclopedia Universal

  • — s. m. 1. Partículas tenuíssimas que andam suspensas no ar ou se depositam sobre os corpos. 2. Estado particular de um corpo ou substância reduzida a pequeníssimas partículas. 3.  [Figurado] Coisa sem valor. 4. fazer pó: destruir, desfazer.… …   Dicionário da Língua Portuguesa

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”