
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 NAME

Locale::Po4a::Xml - konvertiert XML-Dokumente und -Derivate von/in
PO-Dateien

=head1 BESCHREIBUNG

Das Projektziel von Po4a (PO für alles) ist es, die Übersetzung (und
interessanter, die Wartung der Übersetzung) zu vereinfachen, indem die
Gettext-Werkzeuge auch für Gebiete verwendet werden, wo diese nicht erwartet
werden, wie Dokumentation.

Locale::Po4a::Xml ist ein Modul, um bei der Übersetzung von XML-Dokumenten
in andere [natürliche] Sprachen zu helfen. Es kann auch als Basis verwandt
werden, um Module für XML-basierte Dokumente zu erstellen.

=head1 ÜBERSETZEN MIT PO4A::XML

Dieses Modul kann direkt zum Umgang mit generischen XML-Dokumenten verwandt
werden. Dabei werden die Inhalte aller Markierungen (»Tags«) aber keiner
Attribute ausgelesen, da sich dort in den meisten XML-basierten Dokumenten
der geschriebene Text befindet.

Es gibt einige Optionen (die im nächsten Abschnitt beschrieben werden), die
dieses Verhalten anpassen lassen. Falls dies nicht auf Ihr Dokumentenformat
passt, ermutigen wir Sie, Ihr eigenes, von diesem Modul abgeleitetes Modul
zu schreiben, um die Details Ihres Formats zu beschreiben. Lesen Sie den
Abschnitt B<SCHREIBEN ABGELEITETER MODULE> weiter unten für die Beschreibung
des Prozesses.

=head1 VON DIESEM MODUL AKZEPTIERTE OPTIONEN

Die globale Option »debug« führt dazu, dass das Module ausgeschlossene
Zeichenketten anzeigt, um zu erkennen, ob etwas Wichtiges übersprungen wird.

Dies sind die Modul-spezifischen Optionen:

=over 4

=item B<nostrip>

verhindert, dass es Leerzeichen um herausgelöste Zeichenketten entfernt

=item B<wrap>

Erstellt eine kanonische Form der zu übersetzenden Zeichenketten,
berücksichtigt dabei, dass Leerzeichen nicht wichtig sind, und bricht das
übersetzte Dokument um. Diese Option kann mit angepassten »tag«-Optionen
überschrieben werden. Lesen Sie dazu über die Option B<translated> weiter
unten.

=item B<unwrap_attributes>

Attribute werden standardmäßig zeilenumgebrochen. Diese Option unterbindet
Zeilenumbrüche.

=item B<caseinsensitive>

Damit funktioniert die Suche nach Markierungen und Attributen unabhängig von
der Groß-/Kleinschreibung. Falls es definiert ist, wird es
E<lt>BooKE<gt>laNG und E<lt>BOOKE<gt>Lang als E<lt>bookE<gt>lang behandeln.

=item B<escapequotes>

Maskiert Anführungszeichen in Ausgabezeichenketten. Dies ist zum Beispiel
für die Erstellung von Zeichenkettenressourcen zur Verwendung mit den
Android-Bauwerkzeugen notwendig.

Siehe auche:
https://developer.android.com/guide/topics/resources/string-resource.html

=item B<includeexternal>

Wenn definiert, werden externe Entitäten in das erstellte (übersetzte)
Dokument und für die Herauslösung der Zeichenketten aufgenommen. Falls es
nicht definiert ist, müssen Sie externe Entitäten separat als unabhängige
Dokumente übersetzen.

=item B<ontagerror>

Diese Option defniert das Verhalten des Moduls, wenn es auf eine ungültige
XML-Syntax trifft (eine schließende Markierung (»Tag«), die nicht zur
letzten öffnenden Markierung passt). Sie kann die folgenden Werte annehmen:

=over

=item I<fail>

Dies ist der Standardwert. Das Modul wird sich mit einem Fehler beenden.

=item I<warn>

Das Modul wird fortfahren und eine Warnung ausgeben.

=item I<silent>

Das Modul wird ohne Warnungen fortfahren.

=back

Seien Sie vorsichtig, wenn Sie diese Option verwenden. Im Allgemeinen wird
empfohlen, die Eingabedatei zu reparieren.

=item B<tagsonly>

Hinweis: Diese Option wurde missbilligt.

extrahiert nur die angegebenen Markierungen in der Option
B<tags>. Andernfalls wird es nur die Markierungen extrahieren mit Ausnahme
derjenigen, die angegeben wurden.

=item B<doctype>

Zeichenkette, bei der ausprobiert wird, ob sie zu der ersten Zeile des
Dokumenttyps passt (falls definiert). Falls nicht, wird eine Warnung
angezeigt, dass das Dokument vom falschen Typ ist.

=item B<addlang>

Zeichenkette, die den Pfad einer Markierung
(z.B. E<lt>bbbE<gt>E<lt>aaaE<gt>) angibt, zu dem ein Attribut lang="…"
hinzugefügt werden soll. Die Sprache wird als Basisname der PO-Datei ohne
irgendeine .po-Erweiterung definiert sein.

=item B<optionalclosingtag>

Logischer Wert, der angibt, ob schließende Markierungen optional sind (wie
in HTML). Standardmäßig lösen fehlende schließende Markierungen einen Fehler
aus, der entsprechend B<ontagerror> behandelt wird.

=item B<tags>

Hinweis: Diese Option wurde missbilligt. Sie sollten stattdessen die
Optionen B<translated> und B<untranslated> verwenden.

leerzeichengetrennte Liste der Markierungen, die Sie übersetzen oder
überspringen möchten. Standardmäßig werden die angegebenen Markierungen
ausgenommen, falls Sie aber die Option »tagsonly« verwenden, werden nur die
angegebenen Markierungen einbezogen. Die Markierungen müssen die Form
E<lt>aaaE<gt> haben, Sie können aber einige verbinden
(E<lt>bbbE<gt>E<lt>aaaE<gt>), um anzugeben, dass der Inhalt der Markierung
E<lt>aaaE<gt> nur übersetzt wird, wenn er in einer E<lt>bbbE<gt>-Markierung
liegt.

Sie können außerdem einige Markierungsoptionen angeben, indem Sie ein paar
Zeichen an den Anfang der Markierungshierarchie stellen. Sie können zum
Beispiel I<w> (Zeilenumbruch) oder I<W> (kein Zeilenumbruch) setzen, um das
Standardverhalten, das durch die globale Option B<wrap> angegeben wurde,
außer Kraft zu setzen.

Beispiel: WE<lt>KapitelE<gt>E<lt>TitelE<gt>

=item B<attributes>

leerzeichengetrennte Liste der Markierungsattribute, die Sie übersetzen
wollen. Sie können die Attribute mittels ihres Namens angeben (zum Beispiel
»lang«), aber Sie können ihnen eine Markierung voranstellen, um anzugeben,
dass das Attribut nur übersetzt wird, wenn es sich in der angegebenen
Markierung befindet. Zum Beispiel: E<lt>bbbE<gt>E<lt>aaaE<gt>lang gibt an,
dass das Attribut lang nur übersetzt wird, falls es in einer E<lt>aaaE<gt>
und einer E<lt>aaaE<gt>-Markierung steht.

=item B<foldattributes>

Attribute in innenliegenden Markierungen nicht übersetzen; stattdessen alle
Attribute einer Markierung durch po4a-id=<Kennzahl> ersetzen

Dies ist nützlich, wenn Attribute nicht übersetzt werden sollen, da dies die
Zeichenketten für Übersetzer vereinfacht und Tippfehler vermeidet.

=item B<customtag>

leerzeichengetrennte Liste der Markierungen, die nicht als Markierungen
betrachtet werden. Diese Markierungen werden als innenliegend angesehen und
müssen nicht geschlossen werden.

=item B<break>

leerzeichengetrennte Liste der Markierungen, die die Abfolge unterbrechen
sollen. Standardmäßig unterbrechen alle Markierungen die Abfolge.

Die Markierungen müssen in der Form <aaa> vorliegen, Sie können aber einige
verbinden (<bbb><aaa>), falls eine Markierung nur berücksichtigt werden
soll, wenn sie innerhalb einer anderen Markierung liegt (<bbb>).

Bitte beachten Sie, dass eine Markierung nur in einer der
Einstellungszeichenketten B<break>, B<inline> B<placeholder> oder
B<customtag> aufgeführt sein soll.

=item B<inline>

leerzeichengetrennte Liste der Markierungen, die als innenliegend betrachtet
werden sollen. Standardmäßig unterbrechen alle Markierungen die Abfolge.

Die Markierungen müssen in der Form <aaa> vorliegen, Sie können aber einige
verbinden (<bbb><aaa>), falls eine Markierung nur berücksichtigt werden
soll, wenn sie innerhalb einer anderen Markierung liegt (<bbb>).

=item B<placeholder>

leerzeichengetrennte Liste der Markierungen, die als Platzhalter betrachtet
werden sollen. Platzhalter unterbrechen die Abfolge nicht, der Inhalt der
Platzhalter wird aber separat übersetzt.

Die Lage des Platzhalters in seinem Block wird mit einer Zeichenkette
ähnlich der Folgenden markiert:

  <placeholder type=\"footnote\" id=\"0\"/>

Die Markierungen müssen in der Form <aaa> vorliegen, Sie können aber einige
verbinden (<bbb><aaa>), falls eine Markierung nur berücksichtigt werden
soll, wenn sie innerhalb einer anderen Markierung liegt (<bbb>).

=item B<break-pi>

Standardmäßig werden Verarbeitungsanweisungen (d.h. C<E<lt>? …
?E<gt>>-Markierungen) als innenliegende Markierungen behandelt. Übergeben
Sie diese Option, wenn Sie möchten, dass die Verarbeitungshinweise als
unterbrechende Markierungen behandelt werden sollen. Beachten Sie, dass
unkomprimierte PHP-Markierungen durch das Auswertprogramm als
Verarbeitungsanweisungen gehandhabt werden.

=item B<nodefault>

leerzeichengetrennte Liste der Markierungen, die das Modul nicht
standardmäßig in jeder Kategorie zu setzen versuchen sollte.

Falls Sie eine Markierung einsetzen, deren Vorgabeeinstellung in einer
Unterklasse dieses Moduls ist, Sie aber eine alternative Einstellung wählen
möchten, müssen Sie diese Markierung als Teil der Einstellungszeichenkette
B<nodefault> aufführen.

=item B<cpp>

C-Präprozessordirektiven unterstützen. Wenn diese Option gesetzt ist, wird
Po4a Präprozessordirektiven als Absatztrenner betrachten. Dies ist wichtig,
falls die XML-Datei vorher bearbeitet werden muss, weil die Direktiven
andernfalls in die Mitte der Zeilen eingefügt werden könnten, falls Po4a sie
zum aktuellen Absatz gehörig ansieht und sie nicht durch den Präprozessor
erkannt würden. Hinweis: Die Präprozessordirektiven dürfen nur zwischen
Markierungen erscheinen (sie dürfen keine Markierung unterbrechen).

=item B<translated>

leerzeichengetrennte Liste der Markierungen, die Sie übersetzen möchten

Die Markierungen müssen in der Form <aaa> vorliegen, Sie können aber einige
verbinden (<bbb><aaa>), falls eine Markierung nur berücksichtigt werden
soll, wenn sie innerhalb einer anderen Markierung liegt (<bbb>).

Sie können außerdem einige Markierungsoptionen angeben, indem Sie ein paar
Zeichen an den Anfang der Markierungshierarchie stellen. Dies setzt das
durch die globalen Optionen B<wrap> und B<defaulttranslateoption>
festgelegte Vorgabeverhalten außer Kraft.

=over

=item I<w>

Markierungen sollten übersetzt werden und Inhalt kann neu umgebrochen werden

=item I<W>

Markierungen sollten übersetzt werden und Inhalt sollte nicht neu
umgebrochen werden

=item I<i>

Markierungen sollten innenliegend übersetzt werden

=item I<p>

Markierungen sollten als Platzhalter übersetzt werden

=back

Intern kümmert sich der XML-Parser nur um diese vier Optionen: I<w> I<W>
I<i> I<p>.

* In B<break> aufgeführte Markierungen werden abhängig von der Option
B<wrap> auf I<w> oder I<W> gesetzt.

* In B<inline> aufgeführte Markierungen werden auf I<i> gesetzt.

* In B<placeholder> aufgeführte Markierungen werden auf I<p> gesetzt.

* In B<untranslated> aufgeführte Markierungen sind ohne eine dieser
gesetzten Optionen.

Das tatsächliche interne Parameterverhalten können Sie durch Aufruf von
B<po4a> mit der Option B<--debug> überprüfen.

Beispiel: WE<lt>KapitelE<gt>E<lt>TitelE<gt>

Bitte beachten Sie, dass eine Markeirung entweder in der
Einstellungszeichenkette B<translated> oder B<untranslated> aufgeführt sein
sollte.

=item B<untranslated>

leerzeichengetrennte Liste der Markierungen, die Sie nicht übersetzen
möchten

Die Markierungen müssen in der Form <aaa> vorliegen, Sie können aber einige
verbinden (<bbb><aaa>), falls eine Markierung nur berücksichtigt werden
soll, wenn sie innerhalb einer anderen Markierung liegt (<bbb>).

Bitte beachten Sie, dass eine übersetzbare innenliegende Markierung in einer
unübersetzbaren Markierung als eine übersetzbare unterbrechende Markierung
behandelt wird, die Einstellung I<i> entfällt und I<w> oder I<W> werden
abhängig von der Option B<wrap> gesetzt.

=item B<defaulttranslateoption>

die Standardkategorie für Markierungen, die sich nicht in »translated«,
»untranslated«, »break«, »inline« oder »placeholder« befinden

Dies ist eine Gruppe von in B<translated> definierten Buchstaben und diese
Einstellung ist nur für übersetzbare Markierungen gültig.

=back

=head1 SCHREIBEN ABGELEITETER MODULE

=head2 DEFINIERT, WELCHE MARKIERUNGEN UND ATTRIBUTE ZU ÜBERSETZEN SIND

Die einfachste Anpassung ist, zu definieren, welche Markierungen und
Attribute der Parser übersetzen soll. Dies sollte in der Funktion
»initialize« erledigt werden. Zuerst sollten Sie die
Haupt-»initialize«-Funktion aufrufen, um die Befehlszeilenoptionen zu
erhalten und dann Ihre angepassten Definitionen an den Options-Hash
anhängen. Falls Sie einige neue Optionen von der Befehlszeile bearbeiten
möchten, sollten Sie sie vor dem Aufruf der Haupt-»initialize«-Funktion
definieren:

  $self->{options}{'new_option'}='';
  $self->SUPER::initialize(%options);
  $self->{options}{'_default_translated'}.=' <p> <head><title>';
  $self->{options}{'attributes'}.=' <p>lang id';
  $self->{options}{'_default_inline'}.=' <br>';
  $self->treat_options;

Sie sollten in abgeleiteten Modulen die Optionen B<_default_inline>,
B<_default_break>, B<_default_placeholder>, B<_default_translated>,
B<_default_untranslated> und B<_default_attributes> benutzen. Dies
ermöglicht Anwendern, das in Ihrem Modul definierte Verhalten mit
Befehlszeilenoptionen außer Kraft zu setzen.

=head2 AUSSERKRAFTSETZEN DES VORGABEVERHALTENS MIT BEFEHLSZEILENOPTIONEN

Falls Sie das Vorgabeverhalten dieses XML-Moduls und seiner abgeleiteten
Module nicht mögen, können Sie Befehlszeilenoptionen zur Änderung ihres
Verhaltens bereitstellen.

Siehe L<Locale::Po4a::Docbook(3pm)|Locale::Po4a::Docbook>,

=head2 DIE FUNKTION found_string AUßER KRAFT SETZEN

Ein weiterer einfacher Schritt ist es, die Funktion »found_string« außer
Kraft zu setzen, die die extrahierten Zeichenketten vom Parser erhält, um
sie zu übersetzen. Dort können Sie steuern, welche Zeichenketten Sie
übersetzen möchten und Umwandlungen in diese vor oder nach der Übersetzung
selbst durchführen.

Sie erhält den extrahierten Text, die Referenz, von wo sie stammt und einen
Hash, der zusätzliche Informationen enthält, um zu steuern, welche
Zeichenketten zu übersetzen sind, wie sie zu übersetzen sind und um den
Kommentar zu erzeugen.

Der Inhalt dieser Optionen hängt von der Art der Zeichenkette ab (angegeben
in einem Eintrag dieses Hashs):

=over

=item type="Markierung"

Die gefundene Zeichenkette ist der Inhalt einer übersetzbaren
Markierung. Der Eintrag »tag_options« enthält die Optionszeichen am Anfang
der Markierungshierarchie in der Moduloption »tags«.

=item type="Attribut"

bedeutet, dass die gefundene Zeichenkette der Wert eines übersetzbaren
Attributs ist. Der Eintrag »Attribut« erhält den Namen des Attributs.

=back

Sie muss den Text zurückgeben, der das Original im übersetzten Dokument
ersetzt. Hier ein grundlegendes Beispiel dieser Funktion:

  sub found_string {
    my ($self,$text,$ref,$options)=@_;
    $text = $self->translate($text,$ref,"type ".$options->{'type'},
      'wrap'=>$self->{options}{'wrap'});
    return $text;
  }

Im neuen Modul Dia ist ein weiteres einfaches Beispiel, das nur einige
Zeichenketten filtert.

=head2 ÄNDERN VON KENNZEICHENTYPEN (ZU ERLEDIGEN)

Dies ist ein komplexeres Modul, das aber eine (fast) vollständige Anpassung
ermöglicht. Es basiert auf einer Liste von Hashes, von denen jeder das
Verhalten eines Markierungstyps definiert. Die Liste sollte sortiert sein,
so dass die allgemeinsten Markierungen hinter den konkretesten stehen
(zuerst nach den beginnenden und dann nach den endenden Schlüsseln
sortiert). Um eine Markierung zu definieren, müssen Sie einen Hash mit den
folgenden Schlüsseln erstellen:

=over 4

=item B<beginning>

gibt den Anfang der Markierung an, nach dem »E<lt>«

=item B<end>

gibt das Ende der Markierung an, vor dem »E<gt>«

=item B<breaking>

teilt mit, ob dies eine unterbrechende Markierungsklasse ist. Eine nicht
unterbrechende (innenliegende) Markierung ist eine, die nicht als Teil des
Inhalts einer anderen Markierung genommen werden kann. Sie kann die Werte
false (0), true (1) oder undefiniert annehmen. Falls Sie dies undefiniert
lassen, müssen Sie die Funktion f_breaking definieren, die aussagt, ob eine
bestimmte Markierung dieser Klasse eine unterbrechende Markierung ist oder
nicht.

=item B<f_breaking>

Es ist eine Funktion, die mitteilen wird, ob die nächste Markierung
unterbrechend ist oder nicht. Sie sollte definiert sein, wenn die Option
B<breaking> nicht definiert ist.

=item B<f_extract>

Falls Sie diesen Schlüssel undefiniert lassen, muss die generische
Extrahierfunktion die Markierung selbst extrahieren. Das ist nützlich für
Markierungen, die andere Markierungen oder besondere Strukturen beinhalten
können, so dass der Haupt-Parser nicht durchdreht. Diese Funktion bekommt
einen logischen Wert, der aussagt, ob die Markierung aus dem
Eingabedatenstrom entfernt werden soll oder nicht.

=item B<f_translate>

Diese Funktion erhält die Markierung (im Format get_string_until()) und gibt
die übersetzte Markierung (übersetzte Attribute oder alle nötigen
Umbildungen) als eine einzelne Zeichenkette zurück.

=back

=head1 INTERNE FUNKTIONEN, die zum Schreiben abgeleiteter Parser verwendet werden

=head2 ARBEITEN MIT KENNZEICHEN

=over 4

=item get_path()

Diese Funktion gibt den Pfad zur aktuellen Markierung von der Wurzel des
Dokuments in der Form E<lt>htmlE<gt>E<lt>bodyE<gt>E<lt>pE<gt> zurück.

Ein zusätzliches Feld von Markierungen (ohne Klammern) kann als Argument
übergeben werden. Diese Pfadelemente werden am Ende des aktuellen Pfades
hinzugefügt.

=item tag_type()

Diese Funktion gibt den Index der Liste tag_types zurück, die zur nächsten
Markierung des Eingabedatenstroms passt oder -1, falls es am Ende der
Eingabedatei liegt.

Hier hat die Markierung eine Struktur, die mit E<lt> beginnt und E<gt> endet
und mehrere Zeilen enthalten kann.

Dies funktioniert auf dem Feld C<< @{$self->{TT}{doc_in}} >>, das
Eingabedokumentdaten und indirekt mittels C<< $self->shiftline() >> und C<<
$self->unshiftline($$) >> Referenzen enthält.

=item extract_tag($$)

Diese Funktion gibt die nächste Markierung des Eingabedatenstroms ohne
Anfang und Ende in Form eines Feldes zurück, um die Referenzen der
Eingabedatei zu verwalten. Sie hat zwei Parameter: den Typ der Markierung
(wie er von tag_type zurückgegeben wird) und einen logischen Wert, der
angibt, ob die Markierung aus dem Eingabedatenstrom entfernt werden soll.

Dies funktioniert auf dem Feld C<< @{$self->{TT}{doc_in}} >>, das
Eingabedokumentdaten und indirekt mittels C<< $self->shiftline() >> und C<<
$self->unshiftline($$) >> Referenzen enthält.

=item get_tag_name(@)

Diese Funktion gibt den Namen der als Argument übergebenen Markierung in der
Form eines durch extract_tag zurückgegebenen Feldes zurück.

=item breaking_tag()

Diese Funktion gibt einen logischen Wert zurück, der angibt, ob die nächste
Markierung im Eingabedatenstrom eine unterbrechende Markierung ist oder
nicht (innenliegende Markierung). Sie läßt den Eingabedatenstrom intakt.

=item treat_tag()

Diese Funktion übersetzt die nächste Markierung des
Eingabedatenstroms. Dabei benutzt sie die angepassten Übersetzungsfunktionen
jedes Markierungstyps.

Dies funktioniert auf dem Feld C<< @{$self->{TT}{doc_in}} >>, das
Eingabedokumentdaten und indirekt mittels C<< $self->shiftline() >> und C<<
$self->unshiftline($$) >> Referenzen enthält.

=item tag_in_list($@)

Diese Funktion gibt eine Zeichenkette zurück, die angibt, ob das erste
Argument (eine Markierungshierarchie) zu einem der Markierungen des zweiten
Arguments passt (eine Liste von Markierungen oder
Markierungshierarchien). Falls es nicht passt, gibt sie 0 zurück. Ansonsten
gibt sie die Optionen der passenden Markierung zurück (die Zeichen an Anfang
der Markierung) oder 1 (falls die Markierung keine Optionen hat).

=back

=head2 MIT ATTRIBUTEN ARBEITEN

=over 4

=item treat_attributes(@)

Diese Funktion handhabt die Übersetzung der Attribute von Markierungen. Sie
erhält die Markierung ohne die Anfangs-/Endmarkierungen, sucht dann die
Attribute und übersetzt die, die übersetzbar sind (angegeben durch die
Moduloption B<attributes>). Dies gibt eine einfache Zeichenkette mit der
übersetzten Markierung zurück.

=back

=head2 ARBEITEN MIT MARKIERTEN INHALTEN

=over 4

=item treat_content()

Diese Funktion erhält Text aus dem Eingabedatenstrom bis zur nächsten
unterbrechenden Markierung (nicht innenliegende). Übersetzen Sie ihn mittels
der angepassten Übersetzungsfunktionen jedes Markierungstyps.

Dies funktioniert auf dem Feld C<< @{$self->{TT}{doc_in}} >>, das
Eingabedokumentdaten und indirekt mittels C<< $self->shiftline() >> und C<<
$self->unshiftline($$) >> Referenzen enthält.

=back

=head2 MIT DEN MODULOPTIONEN ARBEITEN

=over 4

=item treat_options()

Diese Funktion füllt die internen Strukturen, die die Markierung, Attribute
und innenliegenden Daten enthalten, mit den Optionen des Moduls (angegeben
auf der Befehlszeile oder in der Initialisierungsfunktion).

=back

=head2 TEXT AUS DEM EINGABEDOKUMENT ERHALTEN

=over

=item get_string_until($%)

Diese Funktion gibt ein Feld mit den Zeilen (und Referenzen) vom
Eingabedokument zurück, bis es das erste Argument findet. Das zweite
Argument ist ein Options-Hash. Der Wert 0 bedeutet »deaktiviert« (die
Vorgabe) und 1 »aktiviert«.

Die gültigen Optionen sind:

=over 4

=item B<include>

Dies sorgt dafür, dass das zurückgegebene Feld den gesuchten Text erhält.

=item B<remove>

Dies entfernt den zurückgegebenen Datenstrom aus der Eingabe.

=item B<unquoted>

Dies stellt sicher, dass der gesuchte Text außerhalb irgendwelcher
Anführungszeichen steht.

=item B<RegAus>

Dies zeigt an, dass das erste Argument ein regulärer Ausdruck statt einer
einfachen Zeichenkette ist.

=back

=item skip_spaces(\@)

Diese Funktion erhält als Argument die Referenz eines Absatzes (im Format,
das von get_string_until zurückgegeben wird), überspringt dessen führende
Leerzeichen und gibt sie als einfache Zeichenkette zurück.

=item join_lines(@)

Diese Funktion liefert eine einfache Zeichenkette mit dem Text aus dem
Argument-Feld (die Referenzen werden weggelassen).

=back

=head1 STATUS DIESES MODULS

Dieses Modul kann Markierungen und Attribute übersetzen.

=head1 TODO-LISTE

DOKUMENTENART (ENTITÄTEN)

Es gibt dort eine minimale Unterstützung für die Übersetzung vom
Instanzen. Sie werden als Ganzes übersetzt und Markierungen werden nicht
berücksichtigt. Mehrzeilige Entitäten werden nicht unterstützt und Entitäten
werden während der Übersetzung immer neu umgebrochen.

KENNZEICHENTYPEN VON GEERBTEN MODULEN (die Struktur tag_types innerhalb des
Hashs $self verschieben?)

=head1 SIEHE AUCH

L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>,
L<po4a(7)|po4a.7>

=head1 AUTOREN

 Jordi Vilalta <jvprat@gmail.com>
 Nicolas François <nicolas.francois@centraliens.net>

=head1 URHEBERRECHT UND LIZENZ

 Copyright © 2004 Jordi Vilalta  <jvprat@gmail.com>
 Copyright © 2008-2009 Nicolas François <nicolas.francois@centraliens.net>

Dieses Programm ist freie Software; Sie können es unter den Bedingungen der
GPL v2.0 oder neuer (siehe die Datei COPYING) vertreiben und/oder verändern.
