[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFR] po4a://po4a/po/pod/de.po



Hallo Helge,

Helge Kreutzmann:
Chris Leick wrote:

#. type: textblock
#: doc/po4a.7.pod:922
msgid ""
"This approach proved successfully in the KDE project and allows people there"
"to produce the biggest corpus of translated and up to date documentation I"
"know."
msgstr ""
"Diese Herangehensweise erwies sich im KDE-Projekt als erfolgreich und"
"ermöglichte dort Leuten den größten Umfang von dem Verfasser bekannter"
"übersetzter und aktueller Dokumentation."
s/Leuten den größten Umfang von dem Verfasser bekannter übersetzter
und aktueller Dokumentation/den Mitarbeitern, die größte mir
bekannte Sammlung an übersetzter und aktueller Dokumentation zu
erstellen/

»mir« ist erste Person - die soll aber gemieden werden.
Wie wäre es mit »die größte bekannte Sammlung ...«?

#. type: verbatim
#: doc/po4a.7.pod:978
#, no-wrap
msgid ""
"<section>\n"
"<title lang=\"en\">My title</title>\n"
"<title lang=\"fr\">Mon titre</title>\n"
"\n"
msgstr ""
"<section>\n"
"<title lang=\"en\">My title</title>\n"
"<title lang=\"fr\">Mon titre</title>\n"
"\n"
Warum hast Du hier (und im Folgenden) nicht die »en«-Passagen
übersetzt (und en ->  de)?

Die Originale sind immer in Englisch, oder?


#. type: textblock
#: doc/po4a.7.pod:988
msgid ""
"But it was so problematic that a PO-based approach is now used. Only the"
"original can be edited in the file, and the translations must take place in"
"PO files extracted from the master template (and placed back at package"
"compilation time). The old system was deprecated because of several issues:"
msgstr ""
"Aber es war dadurch problematisch, dass nun eine PO-basierte Herangehensweise"
"benutzt wird. Nur das Original kann in der Datei bearbeitet werden und die"
"Übersetzung muss in PO-Dateien erfolgen, die von der übergeordneten Schablone"
"extrahiert wurden (und zur Kompilierungzeit des Pakets zurück platziert"
"werden). Das alte System war wegen mehrerer Probleme missbilligt:"
»übergeordnet« finde ich nicht so klar, warum nicht »Master«

»Master-Schablone« (bzw »Hauptschablone«) konnte ich nur im Zusammenhang mit Datenbanken finden. Es scheint für Po4a ungebräuchlich zu sein. Das Wörterbuch kennt noch »Urschablone«, was mir allerdings auch nicht gefällt.

Wenn dieser Abschnitt ausdiskutiert ist, schickst Du mir einen Patch
oder die aktualisierte Datei, damit ich die gefundenen Fehler im
Original wieder berichten und die aktualisierte Version ins Depot
einspielen kann?

Gerne. Die Fehler im Original habe ich mit
# FIXME ...
eingefügt. Die geänderte Fassung ist angehängt. Vielen Dank für die Korrektur.

Gruß,
Chris
#. type: =item
#: doc/po4a.7.pod:605
msgid "B<endboundary> (idem)"
msgstr "B<endboundary> (dasselbe)"

#. type: textblock
#: doc/po4a.7.pod:607
msgid "regexp matching the end of the section after which the addendum goes."
msgstr ""
"Regulärer Ausdruck, der zum Ende des Abschnitts passt, hinter dem das "
"Addendum folgt."

#. type: textblock
#: doc/po4a.7.pod:609
# FIXME s/ie/i.e./
msgid ""
"When B<mode=after>, the I<insertion point> is after the I<position point>, "
"but not directly after! It is placed at the end of the section beginning at "
"the I<position point>, ie after or before the line matched by the I<???"
">B<boundary> argument, depending on whether you used B<beginboundary> or "
"B<endboundary>."
msgstr ""
"Wenn B<mode=after> ist, ist der I<Einfügepunkt> hinter dem I<Positionspunkt>, "
"aber nicht direkt dahinter! Er wird ans Ende des Abschnitts platziert, der "
"beim I<Positionspunkt> anfängt, d.h. hinter oder vor der Zeile, auf die "
"das Argument I<???>B<boundary> passt, abhängig davon, ob Sie B<beginboundary> "
"oder B<endboundary> verwandt haben."

#. type: textblock
#: doc/po4a.7.pod:615
msgid ""
"In our case, we can choose to indicate the end of the section we match by "
"adding:"
msgstr ""
"In diesem Fall kann ausgewählt werden, das Ende des Abschnitts anzugeben, das "
"beim Hinzufügen von Folgendem passt:"

#. type: verbatim
#: doc/po4a.7.pod:618
#, no-wrap
msgid ""
"   endboundary=</section>\n"
"\n"
msgstr ""
"   endboundary=</Abschnitt>\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:620
msgid "or to indicate the beginning of the next section by indicating:"
msgstr ""
"oder den Anfang des nächsten Abschnitts anzugeben, indem Folgendes angegeben "
"wird:"

#. type: verbatim
#: doc/po4a.7.pod:622
#, no-wrap
msgid ""
"   beginboundary=<section>\n"
"\n"
msgstr ""
"   beginboundary=<Abschnitt>\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:624
msgid ""
"In both case, our addendum will be placed after the B<E<lt>/sectionE<gt>> "
"and before the B<E<lt>sectionE<gt>>. The first one is better since it will "
"work even if the document gets reorganized."
msgstr ""
"In beiden Fällen wird das Addendum nach dem B<E<lt>/AbschnittE<gt>> und vor "
"dem B<E<lt>AbschnittE<gt>> platziert. Die erste Variante ist besser, da sie "
"auch funktioniert, wenn das Dokument neu organisiert wird."

#. type: textblock
#: doc/po4a.7.pod:628
# FIXME s/beginning of next section/beginning of the next section/
msgid ""
"Both forms exist because documentation formats are different. In some of "
"them, there is a way to mark the end of a section (just like the B<E<lt>/"
"sectionE<gt>> we just used), while some other don't explicitly mark the end "
"of section (like in man). In the former case, you want to make a I<boundary> "
"matching the I<end of a section>, so that the I<insertion point> comes after "
"it. In the latter case, you want to make a I<boundary> matching the "
"I<beginning of next section>, so that the I<insertion point> comes just "
"before it."
msgstr ""
"Es gibt beide Formen, da sich die Formate der Dokumentationen unterscheiden. "
"In einigen davon gibt es eine Möglichkeit, das Ende eines Abschnitts zu "
"markieren (genauso wie im gerade benutzten B<E<lt>/AbschnittE<gt>>), während "
"einige andere das Ende des Abschnitts nicht explizit markieren (wie in "
"Handbuchseiten). Im erstgenannten Fall möchten Sie keine "
"I<Abschnittsgrenzen>, die ans I<Ende eines Abschnitts> passen, so dass der "
"I<Einfügepunkt> danach kommt. Im letztgenannten Fall möchten Sie erreichen, "
"dass I<Abschnittsgrenzen> an den I<Anfang des nächsten Abschnitts> passen, so "
"dass der I<Einfügepunkt> direkt davor kommt."

#. type: textblock
#: doc/po4a.7.pod:639
msgid ""
"This can seem obscure, but hopefully, the next examples will enlighten you."
msgstr ""
"Dies kann undurchsichtig erscheinen, aber die nächsten Beispiele werden Sie "
"hoffentlich erleuchten."

#. type: =item
#: doc/po4a.7.pod:643
msgid ""
"To sum up the example we used so far, in order to add a section called "
"\"About this translation\" after the \"About this document\" one in a SGML "
"document, you can use either of those header lines:"
msgstr ""
"Um das bisher benutzte Beispiel zusammenzufassen, können Sie, um einen "
"Abschnitt namens »�ber diese �bersetzung« nach dem »�ber dieses Dokument« "
"einem SGML-Dokument hinzuzufügen, eine dieser beiden Kopfzeilen verwenden:"

#. type: verbatim
#: doc/po4a.7.pod:648
#, no-wrap
msgid ""
" PO4A-HEADER: mode=after; position=About this document; endboundary=</section>\n"
" PO4A-HEADER: mode=after; position=About this document; beginboundary=<section>\n"
"\n"
msgstr ""
" PO4A-HEADER: mode=after; position=Ã?ber dieses Dokument; "
"endboundary=</section>\n"
" PO4A-HEADER: mode=after; position=Ã?ber dieses Dokument; "
"beginboundary=<section>\n"
"\n"

#. type: =item
#: doc/po4a.7.pod:652
msgid "If you want to add something after the following nroff section:"
msgstr ""
"Falls Sie etwas hinter den folgenden Nroff-Abschnitt hinzugefügen möchten:"

#. type: verbatim
#: doc/po4a.7.pod:655
#, no-wrap
msgid ""
"  .SH \"AUTHORS\"\n"
"\n"
msgstr ""
"  .SH \"AUTOREN\"\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:657
msgid ""
"you should put a B<position> matching this line, and a B<beginboundary> "
"matching the beginning of the next section (i.e., B<^\\.SH>). The addendum "
"will then be added B<after> the I<position point> and immediately B<before> "
"the first line matching the B<beginboundary>. That is to say:"
msgstr ""
"Sie sollten eine B<Position> setzen, die auf diese Zeile passt und ein "
"B<beginboundary>, das auf den Anfang des nächsten Abschnitts (d.h. B<^\\.SH>) "
"passt. Das Addendum wird dann B<nach> dem I<Positionspunkt> und unmittelbar "
"B<vor> der ersten Zeile, die auf das B<beginboundary> passt, hinzugefügt. Das "
"heiÃ?t:"

#. type: verbatim
#: doc/po4a.7.pod:662
#, no-wrap
msgid ""
" PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\\.SH\n"
"\n"
msgstr ""
" PO4A-HEADER:mode=after;position=AUTOREN;beginboundary=\\.SH\n"
"\n"

#. type: =item
#: doc/po4a.7.pod:664
msgid ""
"If you want to add something into a section (like after \"Copyright Big Dude"
"\")  instead of adding a whole section, give a B<position> matching this "
"line, and give a B<beginboundary> matching any line."
msgstr ""
"Falls Sie einem Abschnitt etwas hinzugefügen möchten (etwa hinter »Copyright "
"Gro�er Kerl«), statt einen ganzen Abschnitt hinzuzufügen, geben Sie eine "
"B<Position> an, die zu dieser Zeile passt und geben Sie ein B<beginboundary> "
"an, das zu irgendeiner Zeile passt."

#. type: verbatim
#: doc/po4a.7.pod:669
#, no-wrap
msgid ""
" PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^\n"
"\n"
msgstr ""
" PO4A-HEADER:mode=after;position=Copyright GroÃ?er Kerl, 2004;beginboundary=^\n"
"\n"

#. type: =item
#: doc/po4a.7.pod:671
# FIXME s/but prefer/but prefer those/
msgid ""
"If you want to add something at the end of the document, give a B<position> "
"matching any line of your document (but only one line. Po4a won't proceed if "
"it's not unique), and give an B<endboundary> matching nothing. Don't use "
"simple strings here like B<\"EOF\">, but prefer which have less chance to be "
"in your document."
msgstr ""
"Falls Sie am Ende des Dokuments etwas hinzufügen möchten, geben Sie eine "
"B<Position> an, die zu einer Zeile Ihres Dokuments passt (aber nur eine "
"Zeile â?? Po4a wird nicht fortfahren, wenn sie nicht eindeutig ist) und geben "
"Sie ein B<endboundary> an, das zu nichts passt. Verwenden Sie hier keine "
"einfachen Zeichenketten wie B<»EOF«>, aber nehmen Sie bevorzugt solche, bei "
"denen es unwahrscheinlich ist, dass sie sich in Ihrem Dokument befinden."

#. type: verbatim
#: doc/po4a.7.pod:677
#, no-wrap
msgid ""
" PO4A-HEADER:mode=after;position=<title>About</title>;beginboundary=FakePo4aBoundary\n"
"\n"
msgstr ""
" PO4A-HEADER:mode=after;position=<title>Ã?ber</title>;"
"beginboundary=FakePo4aBoundary\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:681
msgid ""
"In any case, remember that these are regexp. For example, if you want to "
"match the end of a nroff section ending with the line"
msgstr ""
"Denken Sie auf alle Fälle daran, dass dies reguläre Ausdrücke sind. Falls der "
"Ausdruck zum Beispiel auf das Ende eines Nroff-Abschnitts passen soll, der "
"mit der Zeile"

#. type: verbatim
#: doc/po4a.7.pod:684
#, no-wrap
msgid ""
"  .fi\n"
"\n"
msgstr ""
"  .fi\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:686
# Beispiel passt nur im Englischen, daher geändert
msgid ""
"don't use B<.fi> as B<endboundary>, because it will match with \"the[ fi]le"
"\", which is obviously not what you expect. The correct B<endboundary> in "
"that case is: B<^\\.fi$>."
msgstr ""
"endet, benutzen Sie B<.fi> nicht als B<endboundary>, weil es auf »[fi]nden« "
"passt, was vermutlich nicht das ist, was sie erwarten. Das korrekte "
"B<endboundary> ist in diesem Fall: B<^\\.fi$>."

#. type: textblock
#: doc/po4a.7.pod:690
msgid ""
"If the addendum doesn't go where you expected, try to pass the B<-vv> "
"argument to the tools, so that they explain you what they do while placing "
"the addendum."
msgstr ""
"Falls das Addendum nicht dort landet, wo Sie es erwartet haben, versuchen Sie "
"das Argument B<-vv> an die Werkzeuge zu übergeben, so dass sie erklären, was "
"sie beim Platzieren des Addendums tun."

#. type: =head3
#: doc/po4a.7.pod:694
msgid "More detailed example"
msgstr "Ein ausführlicheres Beispiel"

#. type: textblock
#: doc/po4a.7.pod:696
msgid "Original document (POD formatted):"
msgstr "Originaldokument (POD-formatiert):"

#. type: verbatim
#: doc/po4a.7.pod:698
#, no-wrap
msgid ""
" |=head1 NAME\n"
" |\n"
" |dummy - a dummy program\n"
" |\n"
" |=head1 AUTHOR\n"
" |\n"
" |me\n"
"\n"
msgstr ""
" |=head1 BESCHREIBUNG\n"
" |\n"
" |dummy - Ein Platzhalterprogramm\n"
" |\n"
" |=head1 AUTOR\n"
" |\n"
" |mich\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:706
msgid ""
"Then, the following addendum will ensure that a section (in French) about "
"the translator is added at the end of the file. (in French, \"TRADUCTEUR\" "
"means \"TRANSLATOR\", and \"moi\" means \"me\")"
msgstr ""
"Dann wird das folgende Addendum sicherstellen, dass ein Abschnitt (auf "
"Französisch) über den �bersetzer an das Ende der Datei hinzugefügt wird (auf "
"Französisch hei�t »�BERSETZER« »TRADUCTEUR« und »moi« hei�t »mich«)."

#. type: verbatim
#: doc/po4a.7.pod:710
#, no-wrap
msgid ""
" |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head\n"
" |\n"
" |=head1 TRADUCTEUR\n"
" |\n"
" |moi\n"
"\n"
msgstr ""
" |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head\n"
" |\n"
" |=head1 TRADUCTEUR\n"
" |\n"
" |moi\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:716
msgid ""
"In order to put your addendum before the AUTHOR, use the following header:"
msgstr ""
"Um Ihr Addendum vor dem AUTOR einzufügen, verwenden Sie die folgende "
"Kopfzeile:"

#. type: verbatim
#: doc/po4a.7.pod:718
#, no-wrap
msgid ""
" PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n"
"\n"
msgstr ""
" PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:720
msgid ""
"This works because the next line matching the B<beginboundary> /^=head1/ "
"after the section \"NAME\" (translated to \"NOM\" in French), is the one "
"declaring the authors. So, the addendum will be put between both sections."
msgstr ""
"Dies funktioniert, da die nächste auf das B<beginboundary> /^=head1/ passende "
"Zeile nach dem Abschnitt »BESCHREIBUNG« (übersetzt zu »NOM« auf Französisch) "
"diejenige ist, die die Autoren deklariert. Daher wird das Addendum zwischen "
"beide Abschnitte gelegt."

#. type: textblock
#: doc/po4a.7.pod:726
msgid ""
"The use of po4a proved to be a bit error prone for the users since you have "
"to call two different programs in the right order (B<po4a-updatepo> and then "
"B<po4a-translate>), each of them needing more than 3 arguments. Moreover, it "
"was difficult with this system to use only one PO file for all your "
"documents when more than one format was used."
msgstr ""
"Die Benutzung von Po4a erweist sich für Benutzer als ein wenig "
"fehleranfällig, da Sie zwei unterschiedliche Programme in der richtigen "
"Reihenfolge aufrufen müssen (B<po4a-updatepo> und dann B<po4a-translate>), "
"von denen jedes mehr als drei Argumente benötigt. Zudem war es schwer, mit "
"diesem System nur eine PO-Datei für all Ihre Dokumente zu benutzen, wenn mehr "
"als ein Format benutzt wurde."

#. type: textblock
#: doc/po4a.7.pod:732
msgid ""
"The L<po4a(1)> program was designed to solve those difficulties. Once your "
"project is converted to the system, you write a simple configuration file "
"explaining where your translation files are (PO and POT), where the original "
"documents are, their formats and where their translations should be placed."
msgstr ""
"Das Programm L<po4a(1)> wurde entworfen, um diese Schwierigkeiten zu lösen. "
"Sobald Ihr Projekt auf dieses System umgestellt wurde, schreiben Sie eine "
"einfache Konfigurationdatei, die erklärt, wo Ihre �bersetzungsdateien (PO und "
"POT) liegen, wo Ihre Originaldokumente liegen, deren Formate und wohin ihre "
"Ã?bersetzungen platziert werden sollen."

#. type: textblock
#: doc/po4a.7.pod:737
# FIXME s/file ensure/file ensures/
# FIXME s/to get completely/to get a completely/
msgid ""
"Then, calling po4a(1) on this file ensure that the PO files are synchronized "
"against the original document, and that the translated document are "
"generated properly. Of course, you will want to call this program twice: "
"once before editing the PO file to update them and once afterward to get "
"completely updated translated document. But you only need to remember one "
"command line."
msgstr ""
"Wird po4a(1) für diese Datei aufgerufen, wird sichergestellt, dass die "
"PO-Dateien mit dem Original synchronisiert werden und dass das übersetzte "
"Dokument ordentlich erzeugt wird. Gewiss möchten Sie dieses Programm zwei Mal "
"aufrufen: Einmal vor der Bearbeitung der PO-Datei, um sie zu aktualisieren, "
"und einmal danach, um ein vollständig aktualisiertes übersetztes Dokument zu "
"erhalten. Sie müssen sich aber nur eine Befehlszeile merken."

#. type: textblock
#: doc/po4a.7.pod:746
msgid ""
"po4a modules have options (specified with the B<-o> option) that can be used "
"to change the module behavior."
msgstr ""
"Po4a-Module haben Optionen (mit der Option B<-o> angegeben), die benutzt "
"werden können, um das Verhalten des Moduls zu ändern."

#. type: textblock
#: doc/po4a.7.pod:749
msgid ""
"It is also possible to customize a module or new / derivative / modified "
"modules by putting a module in F<lib/Locale/Po4a/>, and adding F<lib> to the "
"paths specified by the PERLLIB or PERL5LIB environment. For example:"
msgstr ""
"Es ist au�erdem möglich, ein Modul oder neue/abgeleitete/veränderte Module "
"anzupassen, indem ein Modul in F<lib/Locale/Po4a/> abgelegt und dem durch die "
"PERLLIB- oder PERL5LIB-Umgebung angegebenen Pfad F<lib> hinzugefügt wird. Zum "
"Beispiel:"

#. type: verbatim
#: doc/po4a.7.pod:753
#, no-wrap
msgid ""
"   PERLLIB=$PWD/lib po4a --previous po4a/po4a.cfg\n"
"\n"
msgstr ""
"   PERLLIB=$PWD/lib po4a --previous po4a/po4a.cfg\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:755
msgid "Note: the actual name of the lib directory is not important."
msgstr ""
"Hinweis: Der tatsächliche Name des Lib-Verzeichnisses ist nicht von Bedeutung."

#. type: =head1
#: doc/po4a.7.pod:757
msgid "How does it work?"
msgstr "Wie funktioniert es?"

#. type: =head2
#: doc/po4a.7.pod:764
msgid "What's the big picture here?"
msgstr "Was steckt dahinter?"

#. type: textblock
#: doc/po4a.7.pod:766
msgid ""
"The po4a architecture is object oriented (in Perl. Isn't that neat?). The "
"common ancestor to all parser classes is called TransTractor. This strange "
"name comes from the fact that it is at the same time in charge of "
"translating document and extracting strings."
msgstr ""
"Die Po4a-Architektur ist objektorientiert (in Perl. Ist das nicht schön?). "
"Der übliche Vorfahr zu allen Auswertungsklassen nennt sich TransTractor. "
"Dieser merkwürdige Name ist der Tatsache zu verdanken, dass er gleichzeitig "
"für das �bersetzen des Dokuments und das Extrahieren von Zeichenketten "
"zuständig ist."

#. type: textblock
#: doc/po4a.7.pod:771
msgid ""
"More formally, it takes a document to translate plus a PO file containing "
"the translations to use as input while producing two separate outputs: "
"Another PO file (resulting of the extraction of translatable strings from "
"the input document), and a translated document (with the same structure than "
"the input one, but with all translatable strings replaced with content of "
"the input PO). Here is a graphical representation of this:"
msgstr ""
"Förmlicher ausgedrückt nimmt es ein Dokument zum �bersetzen plus eine "
"PO-Datei, die die �bersetzungen enthält, als Eingabe, während es zwei "
"getrennte Ausgaben erzeugt: Eine weitere PO-Datei (die das Ergebnis des "
"Extrahierens übersetzbarer Zeichenketten vom Eingabedokument ist) und einem "
"übersetzen Dokument (mit der gleichen Struktur, wie der aus der Eingabe, bei "
"der aber alle übersetzbaren Zeichenketten durch den Inhalt der "
"Eingabe-PO-Datei ersetzt wurden). Hier eine grafische Darstellung davon:"

#. type: verbatim
#: doc/po4a.7.pod:778
#, no-wrap
msgid ""
"   Input document --\\                             /---> Output document\n"
"                     \\      TransTractor::       /       (translated)\n"
"                      +-->--   parse()  --------+\n"
"                     /                           \\\n"
"   Input PO --------/                             \\---> Output PO\n"
"                                                         (extracted)\n"
"\n"
msgstr ""
" Eingabedokument -- \\                             /---> Ausgabedokument\n"
"                     \\      TransTractor::       /       (übersetzt)\n"
"                      +-->--   parse()  --------+\n"
"                     /                           \\\n"
" Eingabe-PO-Datei---/                             \\---> Ausgabe-PO-Datei\n"
"                                                          (extrahiert)\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:786
msgid ""
"This little bone is the core of all the po4a architecture. If you omit the "
"input PO and the output document, you get B<po4a-gettextize>. If you provide "
"both input and disregard the output PO, you get B<po4a-translate>."
msgstr ""
"Dieser kleine Knochen ist der Kern der Po4a-Architektur. Falls Sie die "
"Eingabe-PO-Datei und das Ausgabedokument weglassen, erhalten Sie "
"B<po4a-gettextize>. Falls Sie beide Eingaben bereitstellen und die "
"Ausgabe-PO-Datei nicht beachten, erhalten Sie B<po4a-translate>."

#. type: textblock
#: doc/po4a.7.pod:790
msgid ""
"TransTractor::parse() is a virtual function implemented by each module. Here "
"is a little example to show you how it works. It parses a list of "
"paragraphs, each of them beginning with B<E<lt>pE<gt>>."
msgstr ""
"TransTractor::parse() ist eine virtuelle Funktion, die durch jedes Modul "
"implementiert wird. Hier nun ein kleines Beispiel, um zu zeigen, wie es "
"funktioniert. Es wertet eine Liste von Absätzen aus, von denen jeder mit "
"B<E<lt>pE<gt>> beginnt."

#. type: verbatim
#: doc/po4a.7.pod:794
#, no-wrap
msgid ""
"  1 sub parse {\n"
"  2   PARAGRAPH: while (1) {\n"
"  3     $my ($paragraph,$pararef,$line,$lref)=(\"\",\"\",\"\",\"\");\n"
"  4     $my $first=1;\n"
"  5     while (($line,$lref)=$document->shiftline() && defined($line)) {\n"
"  6       if ($line =~ m/<p>/ && !$first--; ) {\n"
"  7         $document->unshiftline($line,$lref);\n"
"  8\n"
"  9         $paragraph =~ s/^<p>//s;\n"
" 10         $document->pushline(\"<p>\".$document->translate($paragraph,$pararef));\n"
" 11\n"
" 12         next PARAGRAPH;\n"
" 13       } else {\n"
" 14         $paragraph .= $line;\n"
" 15         $pararef = $lref unless(length($pararef));\n"
" 16       }\n"
" 17     }\n"
" 18     return; # Did not got a defined line? End of input file.\n"
" 19   }\n"
" 20 } \n"
"\n"
msgstr ""
"  1 sub parse {\n"
"  2   PARAGRAPH: while (1) {\n"
"  3     $my ($paragraph,$pararef,$line,$lref)=(\"\",\"\",\"\",\"\");\n"
"  4     $my $first=1;\n"
"  5     while (($line,$lref)=$document->shiftline() && defined($line)) {\n"
"  6       if ($line =~ m/<p>/ && !$first--; ) {\n"
"  7         $document->unshiftline($line,$lref);\n"
"  8\n"
"  9         $paragraph =~ s/^<p>//s;\n"
" 10         "
"$document->pushline(\"<p>\".$document->translate($paragraph,$pararef));\n"
" 11\n"
" 12         next PARAGRAPH;\n"
" 13       } else {\n"
" 14         $paragraph .= $line;\n"
" 15         $pararef = $lref unless(length($pararef));\n"
" 16       }\n"
" 17     }\n"
" 18     return; # Keine definierte Zeile erhalten? Ende der Eingabedatei.\n"
" 19   }\n"
" 20 } \n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:815
msgid ""
"On line 6, we encounter B<E<lt>pE<gt>> for the second time. That's the "
"signal of the next paragraph. We should thus put the just obtained line back "
"into the original document (line 7) and push the paragraph built so far into "
"the outputs. After removing the leading B<E<lt>pE<gt>> of it on line 9, we "
"push the concatenation of this tag with the translation of the rest of the "
"paragraph."
msgstr ""
"In Zeile sechs taucht B<E<lt>pE<gt>> zum zweiten Mal auf. Dies signalisiert "
"den nächsten Absatz. Daher sollte daher die gerade erhaltene Zeile zurück in "
"das Originaldokument (Zeile sieben) ablegt und die soweit gebauten Absätze in "
"die Ausgaben verschoben werden. Nachdem das führende B<E<lt>pE<gt>> in Zeile "
"neun entfernt wurde, wird die Verbindung dieser Markierung mit der "
"Ã?bersetzung des restlichen Absatzes verschoben."

#. type: textblock
#: doc/po4a.7.pod:821
msgid ""
"This translate() function is very cool. It pushes its argument into the "
"output PO file (extraction) and returns its translation as found in the "
"input PO file (translation). Since it's used as part of the argument of "
"pushline(), this translation lands into the output document."
msgstr ""
"Diese translate()-Funktion ist richtig toll. Sie schiebt ihre Argumente in "
"die Ausgabe-PO-Datei (Extrahierung) und gibt ihre �bersetzung so zurück, wie "
"sie in der Eingabe-PO-Datei vorgefunden wurde (Ã?bersetzung). Da sie als Teil "
"des Arguments von pushline() verwandt wird, landet diese Ã?bersetzung im "
"Ausgabedokument."

#. type: textblock
#: doc/po4a.7.pod:826
msgid ""
"Isn't that cool? It is possible to build a complete po4a module in less than "
"20 lines when the format is simple enough..."
msgstr ""
"Ist das nicht toll? Es ist möglich, ein vollständiges Po4a-Modul in weniger "
"als 20 Zeilen zu bauen, wenn das Format einfach genug ist â?¦"

#. type: textblock
#: doc/po4a.7.pod:829
msgid ""
"You can learn more about this in L<Locale::Po4a::TransTractor(3pm)|Locale::"
"Po4a::TransTractor(3pm)>."
msgstr ""
"Sie können unter "
"L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor(3pm)> mehr "
"darüber erfahren."

#. type: =head2
#: doc/po4a.7.pod:832
msgid "Gettextization: how does it work?"
msgstr "Gettextisierung: Wie funktioniert es?"

#. type: textblock
#: doc/po4a.7.pod:834
msgid ""
"The idea here is to take the original document and its translation, and to "
"say that the Nth extracted string from the translation is the translation of "
"the Nth extracted string from the original. In order to work, both files "
"must share exactly the same structure. For example, if the files have the "
"following structure, it is very unlikely that the 4th string in translation "
"(of type 'chapter') is the translation of the 4th string in original (of "
"type 'paragraph')."
msgstr ""
"Die Idee hierbei ist, das Originaldokument und seine Ã?bersetzung zu nehmen "
"und zu sagen, dass die Nte übersetzte Zeichenkette der �bersetzung die "
"Ã?bersetzung der Nten extrahierten Zeichenkette des Originals ist. Damit das "
"funktioniert, müssen sich beide Dateien die exakt gleiche Struktur teilen. "
"Falls die Dateien zum Beispiel die folgende Struktur haben, ist es sehr "
"unwahrscheinlich, dass die vierte Zeichenkette der Ã?bersetzung (vom Typ "
"»Kapitel«) die �bersetzung der vierten Zeichenkette des Originals (vom Typ "
"»Absatz«) ist."

#. type: verbatim
#: doc/po4a.7.pod:842
#, no-wrap
msgid ""
"    Original         Translation\n"
"\n"
msgstr ""
"    Original         Ã?bersetzung\n"
"\n"

#. type: verbatim
#: doc/po4a.7.pod:844
#, no-wrap
msgid ""
"  chapter            chapter\n"
"    paragraph          paragraph\n"
"    paragraph          paragraph\n"
"    paragraph        chapter\n"
"  chapter              paragraph\n"
"    paragraph          paragraph\n"
"\n"
msgstr ""
"  Kapitel            Kapitel\n"
"    Absatz             Absatz\n"
"    Absatz             Absatz\n"
"    Absatz           Kapitel\n"
"  Kapitel              Absatz\n"
"    Absatz             Absatz\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:851
msgid ""
"For that, po4a parsers are used on both the original and the translation "
"files to extract PO files, and then a third PO file is built from them "
"taking strings from the second as translation of strings from the first. In "
"order to check that the strings we put together are actually the "
"translations of each other, document parsers in po4a should put information "
"about the syntactical type of extracted strings in the document (all "
"existing ones do so, yours should also). Then, this information is used to "
"make sure that both documents have the same syntax. In the previous example, "
"it would allow us to detect that string 4 is a paragraph in one case, and a "
"chapter title in another case and to report the problem."
msgstr ""
"Dafür werden Po4a-Auswertprogramme sowohl für das Original als auch für die "
"Ã?bersetzungsdateien zum Extrahieren der PO-Dateien benutzt. Dann wird eine "
"dritte PO-Datei gebaut, deren Zeichenketten von der zweiten als Ã?bersetzung "
"der Zeichenketten der ersten genommen werden. Um zu prüfen, ob die "
"zusammengefügten Zeichenketten tatsächlich die �bersetzung der jeweils "
"anderen sind, sollten Dokumentauswertprogramme in Po4a Informationen über den "
"syntaktischen Typ der extrahierten Zeichenketten im Dokument setzen (alle "
"existierenden tun das, Ihres sollte das ebenfalls tun). Dann wird diese "
"Information benutzt, um sicherzustellen, dass beide Dokumente die gleiche "
"Syntax haben. Im vorhergehenden Beispiel würde es ermöglichen, festzustellen, "
"dass Zeichenkette vier im einen Fall ein Absatz und im anderen Fall eine "
"Kapitelüberschrift ist und dieses Problem melden."

#. type: textblock
#: doc/po4a.7.pod:862
msgid ""
"In theory, it would be possible to detect the problem, and resynchronize the "
"files afterward (just like B<diff> does). But what we should do of the few "
"strings before desynchronizations is not clear, and it would produce bad "
"results some times. That's why the current implementation don't try to "
"resynchronize anything and verbosely fail when something goes wrong, "
"requiring manual modification of files to fix the problem."
msgstr ""
"Theoretisch wäre es möglich, das Problem festzustellen und die Dateien "
"nachher neu zu synchronisieren (genauso wie es B<diff> tut). Aber es ist "
"nicht klar, was mit den wenigen Zeichenketten geschehen soll, bevor sie "
"asynchron werden und es würde manchmal zu schlechten Ergebnissen führen. Dies "
"ist der Grund, weshalb aktuelle Implementierungen nicht versuchen, etwas neu "
"zu synchronisieren und lautstark fehlschlagen, wenn etwas schiefgeht, was "
"manuelle �nderungen an Dateien erfordert, um das Problem zu lösen."

#. type: textblock
#: doc/po4a.7.pod:869
# FIXME s/review/reviews/
# FIXME s/check/checks/
msgid ""
"Even with these precautions, things can go wrong very easily here. That's "
"why all translations guessed this way are marked fuzzy to make sure that the "
"translator review and check them."
msgstr ""
"Sogar mit diesen Vorsichtsma�nahmen können hier sehr einfach Dinge "
"schiefgehen. Daher werden alle Ã?bersetzungen, die auf diese Weise entstehen, "
"als »fuzzy« (unscharf) markiert, um sicherzustellen, dass der �bersetzer sie "
"aufarbeitet und prüft."

#. type: =head2
#: doc/po4a.7.pod:873
msgid "Addendum: How does it work?"
msgstr "Addendum: Wie funktioniert es?"

#. type: textblock
#: doc/po4a.7.pod:875
msgid ""
"Well, that's pretty easy here. The translated document is not written "
"directly to disk, but kept in memory until all the addenda are applied. The "
"algorithms involved here are rather straightforward. We look for a line "
"matching the position regexp, and insert the addendum before it if we're in "
"B<mode=before>. If not, we search for the next line matching the boundary "
"and insert the addendum after this line if it's an B<endboundary> or before "
"this line if it's a B<beginboundary>."
msgstr ""
"Gut, das hier ist ziemlich leicht. Das übersetzte Dokument wird nicht direkt "
"auf die Platte geschrieben, sondern im Speicher gehalten, bis alle Addenda "
"angewandt wurden. Die hier beteiligten Algorithmen sind eher unkompliziert. "
"Es wird nach einer Zeile gesucht, die zum regulären Positionsausdruck passt "
"und falls B<mode=before> ist, wird das Addendum davor eingefügt. Wenn nicht, "
"wird die nächste zur Abschnittsgrenze passende Zeile gesucht und das Addendum "
"nach dieser Zeile eingefügt, falls es ein B<endboundary> ist oder vor dieser "
"Zeile, falls es ein B<beginboundary> ist."

#. type: =head1
#: doc/po4a.7.pod:883
msgid "FAQ"
msgstr "Häufig gestellte Fragen"

#. type: =head2
#: doc/po4a.7.pod:892
msgid "Why to translate each paragraph separately?"
msgstr "Warum ist jeder Absatz getrennt zu übersetzen?"

#. type: textblock
#: doc/po4a.7.pod:894
msgid ""
"Yes, in po4a, each paragraph is translated separately (in fact, each module "
"decides this, but all existing modules do so, and yours should also).  There "
"are two main advantages to this approach:"
msgstr ""
"Ja, in Po4a wird jeder Absatz getrennt übersetzt (tatsächlich entscheidet "
"dies jedes Modul, aber alle existierenden Module tun dies und Ihres sollte "
"das auch tun). Es gibt zwei Hauptvorteile für dieses Herangehen:"

#. type: =item
#: doc/po4a.7.pod:900 doc/po4a.7.pod:906 doc/po4a.7.pod:920 doc/po4a.7.pod:926
#: doc/po4a.7.pod:935 doc/po4a.7.pod:1113 doc/po4a.7.pod:1118
#: doc/po4a.7.pod:1124 doc/po4a.7.pod:1131 doc/po4a.7.pod:1137
#: doc/po4a.7.pod:1142 doc/po4a.7.pod:1158 doc/po4a.7.pod:1162
#: doc/po4a.7.pod:1168 lib/Locale/Po4a/Man.pm:351 lib/Locale/Po4a/Man.pm:356
#: lib/Locale/Po4a/Man.pm:361 lib/Locale/Po4a/Man.pm:366
#: lib/Locale/Po4a/Sgml.pm:139 lib/Locale/Po4a/Sgml.pm:156
#: lib/Locale/Po4a/Sgml.pm:165 lib/Locale/Po4a/Sgml.pm:179
msgid "*"
msgstr "*"

#. type: textblock
#: doc/po4a.7.pod:902
msgid ""
"When the technical parts of the document are hidden from the scene, the "
"translator can't mess with them. The fewer markers we present to the "
"translator the less error he can do."
msgstr ""
"Wenn die technischen Teile des Dokuments nicht sichtbar sind, kann der "
"Ã?bersetzer nicht daran herumbasteln. Je weniger Markierungen der Ã?bersetzer "
"vorgesetzt bekommt, um so weniger Fehler kann er machen."  

#. type: textblock
#: doc/po4a.7.pod:908
msgid ""
"Cutting the document helps in isolating the changes to the original "
"document. When the original is modified, finding what parts of the "
"translation need to be updated is eased by this process."
msgstr ""
"Das Zerschneiden des Dokuments hilft beim Isolieren der Ã?nderungen am "
"Originaldokument. Wenn das Original verändert wurde, wird es durch diesen "
"Prozess vereinfacht, herauszufinden, welche Teile der Ã?bersetzung aktualisiert "
"werden müssen."

#. type: textblock
#: doc/po4a.7.pod:914
msgid ""
"Even with these advantages, some people don't like the idea of translating "
"each paragraph separately. Here are some of the answers I can give to their "
"fear:"
msgstr ""
"Sogar mit diesen Vorteilen mögen einige Leute den Gedanken nicht, jeden "
"Absatz einzeln zu übersetzen. Hier einige Antworten auf deren Befürchtungen:"

#. type: textblock
#: doc/po4a.7.pod:922
msgid ""
"This approach proved successfully in the KDE project and allows people there "
"to produce the biggest corpus of translated and up to date documentation I "
"know."
msgstr ""
"Diese Herangehensweise erwies sich im KDE-Projekt als erfolgreich und "
"ermöglichte dort Leuten den grö�ten Umfang von dem Verfasser bekannter "
"übersetzter und aktueller Dokumentation."

#. type: textblock
#: doc/po4a.7.pod:928
msgid ""
"The translators can still use the context to translate, since the strings in "
"the PO file are in the same order than in the original document. Translating "
"sequentially is thus rather comparable whether you use po4a or not.  And in "
"any case, the best way to get the context remains to convert the document to "
"a printable format since the text formatting ones are not really readable, "
"IMHO."
msgstr ""
"Die �bersetzer können weiterhin den Kontext zum �bersetzen benutzen, da die "
"Zeichenketten in der PO-Datei in der gleichen Reihenfolge wie im "
"Originaldokument stehen. Nacheinander zu übersetzen ist daher eher "
"vergleichbar, ob Sie Po4a verwenden oder nicht. Und auf jeden Fall bleibt die "
"beste Möglichkeit, den Kontext zu erhalten, das Dokument in ein druckbares "
"Format umzuwandeln, da die Fassungen mit Textformatierungen nach Auffassung "
"des Verfassers nicht wirklich lesbar sind."

#. type: textblock
#: doc/po4a.7.pod:937
msgid ""
"This approach is the one used by professional translators. I agree, that "
"they have somewhat different goals than open-source translators. The "
"maintenance is for example often less critical to them since the content "
"changes rarely."
msgstr ""
"Diese Herangehensweise ist diejenige, die von professionellen Ã?bersetzern "
"angewandt wird. Es stimmt, dass die etwas andere Ziele als "
"Open-Source-Ã?bersetzer verfolgen. Die Wartung ist zum Beispiel meist weniger "
"kritisch für sie, da der Inhalt sich seltener ändert."

#. type: =head2
#: doc/po4a.7.pod:944
msgid "Why not to split on sentence level (or smaller)?"
msgstr "Warum wird nicht auf Satzebene (oder darunter) unterteilt?"

#. type: textblock
#: doc/po4a.7.pod:946
msgid ""
"Professional translator tools sometimes split the document at the sentence "
"level in order to maximize the reusability of previous translations and "
"speed up their process.  The problem is that the same sentence may have "
"several translations, depending on the context."
msgstr ""
"Professionelle Ã?bersetzerwerkzeuge unterteilen das Dokument machmal auf "
"Satzebene, um die Wiederverwendbarkeit vorhergehender Ã?bersetzungen zu "
"maximieren und ihre Verarbeitung zu beschleunigen. Das Problem ist, dass der "
"gleiche Satz mehrere �bersetzungen haben könnte, je nach Kontext."

#. type: textblock
#: doc/po4a.7.pod:951
msgid ""
"Paragraphs are by definition longer than sentences. It will hopefully ensure "
"that having the same paragraph in two documents will have the same meaning "
"(and translation), regardless of the context in each case."
msgstr ""
"Absätze sind definitionsgemä� länger als Sätze. Das wird hoffentlich "
"sicherstellen, dass der gleiche Absatz, wenn er in zwei Dokumenten vorkommt, "
"die gleiche Bedeutung (und Ã?bersetzung) hat, ohne in jedem Fall den Kontext "
"zu beachten."

#. type: textblock
#: doc/po4a.7.pod:955
msgid ""
"Splitting on smaller parts than the sentence would be B<very bad>. It would "
"be a bit long to explain why here, but interested reader can refer to the "
"L<Locale::Maketext::TPJ13(3pm)|Locale::Maketext::TPJ13(3pm)> man page (which "
"comes with the Perl documentation), for example. To make short, each "
"language has its specific syntactic rules, and there is no way to build "
"sentences by aggregating parts of sentences working for all existing "
"languages (or even for the 5 of the 10 most spoken ones, or even less)."
msgstr ""
"Unterteilen in kleinere Teile als einen Satz wäre B<sehr schlecht>. Es wäre "
"etwas zu umfangreich, hier zu erklären warum, aber interessierte Leser "
"können beispielsweise die Handbuchseite "
"L<Locale::Maketext::TPJ13(3pm)|Locale::Maketext::TPJ13(3pm)> lesen (die der "
"Perl-Dokumentation beigefügt ist). Kurz gesagt, hat jede Sprache ihre "
"besonderen syntaktischen Regeln und es gibt keine Möglichkeit, Sätze durch "
"angesammelte Teile von Sätzen für alle existierenden Sprachen zu bilden (oder "
"gar für fünf der zehn meistgesprochenen, oder sogar weniger)."

#. type: =head2
#: doc/po4a.7.pod:963
# FIXME sother way/the other way around/
msgid ""
"Why not put the original as comment along with translation (or other way)?"
msgstr ""
"Warum wird das Original nicht der Ã?bersetzung als Kommentar (oder auf andere "
"Art) mitgegeben?"

#. type: textblock
#: doc/po4a.7.pod:965
# FIXME s/gettext don't/gettext dosn't/
# FIXME s/a dozen of line/a dozen lines/
msgid ""
"At the first glance, gettext don't seem to be adapted to all kind of "
"translations.  For example, it didn't seemed adapted to debconf, the "
"interface all Debian packages use for their interaction with the user during "
"installation. In that case, the texts to translate were pretty short (a "
"dozen of line for each package), and it was difficult to put the translation "
"in a specialized file since it has to be available before the package "
"installation."
msgstr ""
"Auf den ersten Blick schien Gettext nicht für alle Arten von �bersetzungen "
"geeignet zu sein. Es scheint zum Beispiel nicht an Debconf angepasst zu sein, "
"die Schnittstelle, die alle Debian-Pakete für ihr Zusammenspiel mit dem "
"Anwender während der Installtion nutzen. In diesem Fall waren die Texte "
"schön klein (ein Dutzend Zeilen für jedes Paket) und es war schwierig, die "
"Ã?bersetzung in eine Spezialdatei abzulegen, da sie vor der Paketinstallation "
"verfügbar sein müssen."

#. type: textblock
#: doc/po4a.7.pod:973
msgid ""
"That's why the debconf developer decided to implement another solution, "
"where translations are placed in the same file than the original. This is "
"rather appealing. One would even want to do this for XML, for example. It "
"would look like that:"
msgstr ""
"Daher haben sich die Debconf-Entwickler entschieden, eine andere Lösung zu "
"implementieren, bei der Ã?bersetzungen in die gleiche Datei wie das Original "
"platziert werden. Dies ist recht ansprechend. Jemand könnte dies zum Beispiel "
"sogar für XML wollen, dies würde dann ungefähr so aussehen:"

#. type: verbatim
#: doc/po4a.7.pod:978
#, no-wrap
msgid ""
" <section>\n"
"  <title lang=\"en\">My title</title>\n"
"  <title lang=\"fr\">Mon titre</title>\n"
"\n"
msgstr ""
" <section>\n"
"  <title lang=\"en\">My title</title>\n"
"  <title lang=\"fr\">Mon titre</title>\n"
"\n"

#. type: verbatim
#: doc/po4a.7.pod:982
#, no-wrap
msgid ""
"  <para>\n"
"   <text lang=\"en\">My text.</text>\n"
"   <text lang=\"fr\">Mon texte.</text>\n"
"  </para>\n"
" </section>\n"
"\n"
msgstr ""
"  <para>\n"
"   <text lang=\"en\">My text.</text>\n"
"   <text lang=\"fr\">Mon texte.</text>\n"
"  </para>\n"
" </section>\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:988
msgid ""
"But it was so problematic that a PO-based approach is now used. Only the "
"original can be edited in the file, and the translations must take place in "
"PO files extracted from the master template (and placed back at package "
"compilation time). The old system was deprecated because of several issues:"
msgstr ""
"Aber es war dadurch so problematisch, dass nun eine PO-basierte "
"Herangehensweise benutzt wird. Nur das Original kann in der Datei bearbeitet "
"werden und die Ã?bersetzung muss in PO-Dateien erfolgen, die von der "
"übergeordneten Schablone extrahiert wurden (und zur Kompilierungzeit des "
"Pakets zurück platziert werden). Das alte System wurde wegen mehrerer "
"Probleme missbilligt:"

#. type: =item
#: doc/po4a.7.pod:995
msgid "* maintenance problems"
msgstr "* Verwaltungsprobleme"

#. type: textblock
#: doc/po4a.7.pod:997
msgid ""
"If several translators provide a patch at the same time, it gets hard to "
"merge them together."
msgstr ""
"Falls mehrere Ã?bersetzer gleichzeitig ein Patch bereitstellen, ist es "
"schwierig, sie zusammenzufügen."

#. type: textblock
#: doc/po4a.7.pod:1000
msgid ""
"How will you detect changes to the original, which need to be applied to the "
"translations? In order to use diff, you have to note which version of the "
"original you translated. I.e., you need a PO file in your file ;)"
msgstr ""
"Wie möchten Sie �nderungen im Original ermitteln, die auf die �bersetzungen "
"angewandt werden? Um Diff zu benutzen, müssen sie vermerken, welche Version "
"des Originals Sie übersetzt haben. D.h. Sie benötigen in Ihrer Datei eine "
"PO-Datei. ;)"

#. type: =item
#: doc/po4a.7.pod:1004
msgid "* encoding problems"
msgstr "* Kodierungsprobleme"

#. type: textblock
#: doc/po4a.7.pod:1006
msgid ""
"This solution is viable when only European languages are involved, but the "
"introduction of Korean, Russian and/or Arab really complicate the picture.  "
"UTF could be a solution, but there are still some problems with it."
msgstr ""
"Diese Lösung ist umsetzbar, wenn nur europäische Sprachen beteiligt sind, "
"aber die Einführung von Koreanisch, Russisch und/oder Arabisch erschwert das "
"Szenario. UTF könnte eine Lösung sein, aber es gibt immer noch Probleme damit."

#. type: textblock
#: doc/po4a.7.pod:1010
msgid ""
"Moreover, such problems are hard to detect (i.e., only Korean readers will "
"detect that the encoding of Korean is broken [because of the Russian "
"translator])"
msgstr ""
"AuÃ?erdem sind solche Probleme schwer feststellbar (d.h. nur koreanische Leser "
"werden bemerken, dass die Kodierung von Koreanisch kaputt ist [aufgrund des "
"russischen Ã?bersetzers])."

#. type: textblock
#: doc/po4a.7.pod:1016
msgid "gettext solves all those problems together."
msgstr "Gettext löst all diese Probleme gleichzeitig."

#. type: =head2
#: doc/po4a.7.pod:1018
msgid "But gettext wasn't designed for that use!"
msgstr "Aber Gettext wurde nicht für diese Verwendung entworfen!"

#. type: textblock
#: doc/po4a.7.pod:1020
# FIXME s/will/with/
msgid ""
"That's true, but until now nobody came with a better solution. The only "
"known alternative is manual translation, will all the maintenance issues."
msgstr ""
"Das stimmt, allerdings kam bisher niemand mit einer besseren Lösung. Die "
"einzige bekannte Alternative ist die manuelle Ã?bersetzung mit all den "
"Verwaltungsproblemen."

#. type: =head2
#: doc/po4a.7.pod:1023
msgid "What about the other translation tools for documentation using gettext?"
msgstr ""
"Was ist mit den anderen �bersetzungswerkzeugen für Dokumentation, die Gettext "
"benutzen?"

#. type: textblock
#: doc/po4a.7.pod:1026
msgid "As far as I know, there are only two of them:"
msgstr "Soweit dem Verfasser bekannt, gibt es nur zwei davon:"

#. type: =item
#: doc/po4a.7.pod:1030
msgid "B<poxml>"
msgstr "B<poxml>"

#. type: textblock
#: doc/po4a.7.pod:1032
msgid ""
"This is the tool developed by KDE people to handle DocBook XML. AFAIK, it "
"was the first program to extract strings to translate from documentation to "
"PO files, and inject them back after translation."
msgstr ""
"Dies ist das durch KDE-Leute entwickelte Werkzeug, um DocBook-XML zu "
"handhaben. Soweit bekannt, war es das erste Programm zum Extrahieren von "
"Zeichenketten aus der Dokumentation in PO-Dateien und um sie nach dem "
"Ã?bersetzen wieder einzuspeisen."

#. type: textblock
#: doc/po4a.7.pod:1036
msgid ""
"It can only handle XML, and only a particular DTD. I'm quite unhappy with "
"the handling of lists, which end in one big msgid. When the list become big, "
"the chunk becomes harder to shallow."
msgstr ""
"Es kann nur XML und eine spezielle DTD handhaben. Der Verfasser ist ziemlich "
"unglücklich mit der Handhabung von Listen, die in einer gro�en Msgid enden. "
"Wenn die Liste gro� wird, wird es schwerer, das gro�e Stück zu verkleinern."

#. type: =item
#: doc/po4a.7.pod:1040
msgid "B<po-debiandoc>"
msgstr "B<po-debiandoc>"

#. type: textblock
#: doc/po4a.7.pod:1042
msgid ""
"This program done by Denis Barbier is a sort of precursor of the po4a SGML "
"module, which more or less deprecates it. As the name says, it handles only "
"the DebianDoc DTD, which is more or less a deprecated DTD."
msgstr ""
"Dieses von Denis Barbier erstellte Programm ist so eine Art Vorläufer des "
"Po4a-SGML-Moduls, wodurch ersteres mehr oder weniger missbilligt ist. Wie der "
"Name sagt, handhabt es nur die DebianDoc-DTD, die mehr oder weniger eine "
"missbilligte DTD ist."

#. type: textblock
#: doc/po4a.7.pod:1048
msgid ""
"The main advantages of po4a over them are the ease of extra content addition "
"(which is even worse there) and the ability to achieve gettextization."
msgstr ""
"Die Hauptvorteile von Po4a demgegenüber sind die Erleichterung beim "
"Hinzufügen zusätzlichen Inhalts (was dort sogar schlechter ist) und die "
"Fähigkeit, Gettext zu verwenden."

#. type: =head2
#: doc/po4a.7.pod:1051
msgid "Educating developers about translation"
msgstr "Entwickler über �bersetzung schulen"

#. type: textblock
#: doc/po4a.7.pod:1053
msgid ""
"When you try to translate documentation or programs, you face three kinds of "
"problems; linguistics (not everybody speaks two languages), technical "
"(that's why po4a exists) and relational/human. Not all developers understand "
"the necessity of translating stuff. Even when good willed, they may ignore "
"how to ease the work of translators. To help with that, po4a comes with lot "
"of documentation which can be referred to."
msgstr ""
"Wenn Sie versuchen, Dokumentationen oder Programme zu übersetzen, sehen Sie "
"sich drei Arten von Problemen gegenüber; linguistische (nicht jeder spricht "
"zwei Sprachen), technische (der Grund, weshalb Po4a existiert) und "
"beziehungsartige/menschliche. Nicht alle Entwickler verstehen die "
"Notwendigkeit von Ã?bersetzungszeug. Sogar wenn sie entgegenkommend sind, "
"könnten Sie ignorieren, wie �bersetzern die Arbeit erleichtert wird. Um dabei "
"zu helfen, bringt Po4a ein Menge Dokumentation mit, auf die Bezug genommen "
"werden kann."

#. type: textblock
#: doc/po4a.7.pod:1060
msgid ""
"Another important point is that each translated file begins with a short "
"comment indicating what the file is, how to use it. This should help the "
"poor developers flooded with tons of files in different languages they "
"hardly speak, and help them dealing correctly with it."
msgstr ""
"Ein weiterer wichtiger Punkt ist, dass jede übersetzte Datei mit einem kurzen "
"Kommentar beginnt, der angibt, um was für eine Datei es sich handelt und wie "
"sie benutzt wird. Dies sollte den armen Entwicklern helfen, die mit "
"tonneweisen Dateien in unterschiedlichen Sprachen überschüttet werden, die "
"sie kaum sprechen können und hilft ihnen, korrekt damit umzugehen."

#. type: textblock
#: doc/po4a.7.pod:1065
msgid ""
"In the po4a project, translated documents are not source files anymore. "
"Since SGML files are habitually source files, it's an easy mistake. That's "
"why all files present this header:"
msgstr ""
"Im Po4a-Projekt sind übersetzte Dateien keine Quelldateien mehr. Da "
"SGMl-Dateien üblicherweise Quelldateien sind, ist die ein einfacher Fehler. "
"Daher haben alle vorhandenen Dateien diese Kopfzeilen:"

#. type: verbatim
#: doc/po4a.7.pod:1070
#, no-wrap
msgid ""
" |       *****************************************************\n"
" |       *           GENERATED FILE, DO NOT EDIT             * \n"
" |       * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *\n"
" |       *****************************************************\n"
" |\n"
" | This file was generated by po4a-translate(1). Do not store it (in VCS,\n"
" | for example), but store the PO file used as source file by po4a-translate. \n"
" |\n"
" | In fact, consider this as a binary, and the PO file as a regular source file:\n"
" | If the PO gets lost, keeping this translation up-to-date will be harder ;)\n"
"\n"
msgstr ""
" |       *****************************************************\n"
" |       *           GENERATED FILE, DO NOT EDIT             * \n"
" |       * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *\n"
" |       *****************************************************\n"
" |\n"
" | This file was generated by po4a-translate(1). Do not store it (in VCS,\n"
" | for example), but store the PO file used as source file by po4a-translate. \n"
" |\n"
" | In fact, consider this as a binary, and the PO file as a regular source file:\n"
" | If the PO gets lost, keeping this translation up-to-date will be harder ;)\n"
"\n"

#. type: textblock
#: doc/po4a.7.pod:1081
msgid ""
"Likewise, gettext's regular PO files only need to be copied to the F<po/> "
"directory. But B<this is not the case of the ones manipulated by po4a>. The "
"major risk here is that a developer erases the existing translation of his "
"program with the translation of his documentation. (Both of them can't be "
"stored in the same PO file, because the program needs to install its "
"translation as an mo file while the documentation only uses its translation "
"at compile time). That's why the PO files produced by the po-debiandoc "
"module contain the following header:"
msgstr ""
"Ebenso müssen die normalen PO-Dateien von Gettext nur in das Verzeichnis "
"F<po/> kopiert werden. Aber B<dies ist nicht der Fall bei denen, die durch "
"Po4a manipuliert wurden.> Das Hauptrisiko hier ist, dass ein Entwickler die "
"existierende Ã?bersetzung dieses Programms mit der Ã?bersetzung seiner "
"Dokumentation löscht. (Beides kann nicht in der gleichen PO-Datei "
"gespeichert werden, weil die Programme zur Installation ihrer Dokumentation "
"als eine mo-Datei benötigen, während die Dokumentation ihre �bersetzung nur "
"zur Zeit der Kompilierung benötigt.) Daher enthalten die PO-Dateien, die vom "
"Module Po-debiandoc erzeugt wurden folgende Kopfzeilen:"

#. type: verbatim
#: doc/po4a.7.pod:1090
#, no-wrap
msgid ""
" #\n"
" #  ADVISES TO DEVELOPERS:\n"
" #    - you do not need to manually edit POT or PO files.\n"
" #    - this file contains the translation of your debconf templates.\n"
" #      Do not replace the translation of your program with this !!\n"
" #        (or your translators will get very upset)\n"
" #\n"
" #  ADVISES TO TRANSLATORS:\n"
" #    If you are not familiar with the PO format, gettext documentation \n"
" #     is worth reading, especially sections dedicated to this format.\n"
" #    For example, run:\n"
" #         info -n '(gettext)PO Files'\n"
" #         info -n '(gettext)Header Entry'\n"
" #\n"
" #    Some information specific to po-debconf are available at\n"
" #            /usr/share/doc/po-debconf/README-trans\n"
" #         or http://www.debian.org/intl/l10n/po-debconf/README-trans\n";
" #\n"
"\n"
msgstr ""
" #\n"
" #  ADVISES TO DEVELOPERS:\n"
" #    - you do not need to manually edit POT or PO files.\n"
" #    - this file contains the translation of your debconf templates.\n"
" #      Do not replace the translation of your program with this !!\n"
" #        (or your translators will get very upset)\n"
" #\n"
" #  ADVISES TO TRANSLATORS:\n"
" #    If you are not familiar with the PO format, gettext documentation \n"
" #     is worth reading, especially sections dedicated to this format.\n"
" #    For example, run:\n"
" #         info -n '(gettext)PO Files'\n"
" #         info -n '(gettext)Header Entry'\n"
" #\n"
" #    Some information specific to po-debconf are available at\n"
" #            /usr/share/doc/po-debconf/README-trans\n"
" #         or http://www.debian.org/intl/l10n/po-debconf/README-trans\n";
" #\n"
"\n"

Reply to: