Hallo, wie bereits von Helge angekündigt, führe ich die Übersetzung von Po4a fort. Anbei nun 100 weitere Absätze zur 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 passt zum Ende des Abschnitts, hinter dem das Addendum " "folgt." #. type: textblock #: doc/po4a.7.pod:609 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> verwenden." #. 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 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<Ränder>, die ans " "I<Ende des Abschnitts> passen, so dass der I<Einfügepunkt> danach kommt. Im " "letztgenannten Fall möchten Sie erreichen, dass I<Ränder> an den I<Anfang des " "Abschnitts> passen, so dass der I<Einfügepunkt> kurz 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 Zeilen 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 \"AUTOR\"\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 I<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=AUTOR;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 " "I<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 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 einzigartig 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 Sie " "zum Beispiel das Ende eines Nroff-Abschnitts suchen, 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" " |me\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 ist 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 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 "" "Rufen Sie dann po4a(1) für diese Datei auf, um sicherzustellen, dass die " "PO-Dateien mit dem Original synchronisiert werden und dass das übersetzte " "Dokument ordentlich erzeugt wird. Sie möchten dieses Programm sicher 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: =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 Entpacken 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 nur 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 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« markiert, um sicherzustellen, dass der Ãbersetzer sie aufarbeitet " "und prüft." #. 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, aber 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 hinter dieser Zeile " "eingefügt. Wenn nicht, wird die nächste zur Begrenzung 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: 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 vor der Szene versteckt 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 wenn 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 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 Verwaltung 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 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 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 scheint 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 soll." #. 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 würde dies zum Beispiel " "für XML wollen, würde das 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 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:" #. 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 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 ein spezielles DTD handhaben. Der Verfasser ist ziemlich " "unglücklich mit der Handhabung von Listen, die in einer grioÃ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, das mehr oder weniger missbilligt ist. Wie der Name sagt, " "handhabt es nur das DebianDoc-DTD, das mehr oder weniger ein missbilligtes " "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 und die Fähigkeit Gettext zu verwenden." #. type: =head2 #: doc/po4a.7.pod:1051 msgid "Educating developers about translation" msgstr "Entwickler über Ãbersetzungen 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 " "tonneweise Dateien in unterschiedlichen Sprachen überschüttet werden, die sie " "kaum sprechen können und hilft ihnen korrekt damit umzugehen." #. 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 regulären PO-Dateien von Gettext 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 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 Modul " "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"