App-Greple-xlate
view release on metacpan or search on metacpan
i18n/src/xlate.deepl-DE.pod view on Meta::CPAN
StandardmäÃig werden der ursprüngliche und der übersetzte Text im Format "Konfliktmarkierung" ausgegeben, das mit L<git(1)> kompatibel ist. Wenn Sie das Format C<ifdef> verwenden, können Sie den gewünschten Teil mit dem Befehl L<unifdef(1)> lei...
=for html <p>
<img width="750" src="https://raw.githubusercontent.com/kaz-utashiro/App-Greple-xlate/main/images/format-conflict.png">
</p>
Wenn Sie den gesamten Text übersetzen wollen, verwenden Sie die Option B<--match-all>. Dies ist eine Abkürzung zur Angabe des Musters C<(?s).+>, das auf den gesamten Text passt.
Daten im Konfliktmarkerformat können mit dem Befehl L<sdif|App::sdif> und der Option C<-V> nebeneinander angezeigt werden. Da es keinen Sinn macht, die Daten pro Zeichenfolge zu vergleichen, wird die Option C<--no-cdif> empfohlen. Wenn Sie den Text ...
sdif -V --no-filename --no-tc --no-cdif data_shishin.deepl-EN-US.cm
=for html <p>
<img width="750" src="https://raw.githubusercontent.com/kaz-utashiro/App-Greple-xlate/main/images/sdif-cm-view.png">
</p>
=head1 NORMALIZATION
Die Verarbeitung erfolgt in den angegebenen Einheiten, aber im Falle einer Folge von mehreren nicht leeren Textzeilen werden diese zusammen in eine einzige Zeile umgewandelt. Dieser Vorgang wird wie folgt durchgeführt:
=over 2
=item *
Am Anfang und am Ende jeder Zeile wird der Leerraum entfernt.
=item *
Wenn eine Zeile mit einem Satzzeichen in voller Breite endet, wird sie mit der nächsten Zeile verkettet.
=item *
Wenn eine Zeile mit einem Zeichen voller Breite endet und die nächste Zeile mit einem Zeichen voller Breite beginnt, werden die Zeilen verkettet.
=item *
Wenn entweder das Ende oder der Anfang einer Zeile kein Zeichen mit voller Breite ist, verketten Sie sie durch Einfügen eines Leerzeichens.
=back
Die Cache-Daten werden auf der Grundlage des normalisierten Textes verwaltet. Selbst wenn Ãnderungen vorgenommen werden, die sich nicht auf die Normalisierungsergebnisse auswirken, sind die im Cache gespeicherten Ãbersetzungsdaten weiterhin gültig...
Dieser Normalisierungsprozess wird nur für das erste (0.) und geradzahlige Muster durchgeführt. Wenn also zwei Muster wie folgt angegeben werden, wird der Text, der dem ersten Muster entspricht, nach der Normalisierung verarbeitet, und für den Tex...
greple -Mxlate -E normalized -E not-normalized
Verwenden Sie daher das erste Muster für Text, der durch die Kombination mehrerer Zeilen in einer einzigen Zeile verarbeitet werden soll, und das zweite Muster für vorformatierten Text. Wenn das erste Muster keinen Text enthält, der übereinstimmt...
=head1 MASKING
Gelegentlich gibt es Textteile, die Sie nicht übersetzt haben möchten. Zum Beispiel Tags in Markdown-Dateien. DeepL schlägt vor, in solchen Fällen den auszuschlieÃenden Teil des Textes in XML-Tags umzuwandeln, zu übersetzen und dann nach Abschl...
--xlate-setopt maskfile=MASKPATTERN
Dadurch wird jede Zeile der Datei C<MASKPATTERN> als regulärer Ausdruck interpretiert, übereinstimmende Zeichenfolgen werden übersetzt und nach der Verarbeitung wieder zurückgesetzt. Zeilen, die mit C<#> beginnen, werden ignoriert.
Komplexe Muster können über mehrere Zeilen hinweg geschrieben werden, wobei Zeilenumbrüche mit einem Backslash maskiert werden.
Wie der Text durch die Maskierung umgewandelt wird, können Sie mit der Option B<--xlate-mask> sehen.
Platzhalter sind wohlgeformte, selbstschlieÃende XML-Tags wie z. B. C<< <m id="1" /> >>. JSON-basierte LLM-Engines erhalten die Tags in ihren Eingabe-Arrays. Bei DeepL wird eine Anfrage, die Marker-Tags enthält, mit Escape-Zeichen versehen und in e...
Durch Maskierung wird das Markup vor der Ãbersetzung geschützt. Um sensible Zeichenfolgen vor dem Ãbersetzungsdienst selbst zu verbergen, siehe L</ANONYMIZATION AND TEMPLATES>; beide Funktionen können zusammen verwendet werden.
Diese Schnittstelle ist experimentell und kann sich in Zukunft noch ändern.
=head1 ANONYMIZATION AND TEMPLATES
Sensible Zeichenfolgen können vor dem Versand an die Ãbersetzungs-API ausgeblendet und in der Ausgabe wiederhergestellt werden. Es stehen drei Quellen für Anonymisierungsregeln zur Verfügung: eine Wörterbuchdatei (B<--xlate-anonymize>), Inline-M...
Bei Formulardokumenten (Quartalsberichte und Ãhnliches) definieren Sie die Akteure im Vorfeld und verweisen im Hauptteil darauf:
---
å ±åè
: å±±ç°å¤ªé
çºæ³¨ä¼ç¤¾: ã¢ã¯ã¡æ ªå¼ä¼ç¤¾
---
æ¬ä»¶ã«ã¤ã㦠{{ å ±åè
}} ã調æ»ãè¡ã£ãã
Ãbersetzen Sie die Vorlage einmal pro Sprache mit C<--xlate-template> (und C<--xlate-frontmatter>, wenn die Werte in der Datei gespeichert werden), und rendern Sie dann jeden Fall im eigenständigen Modus mit B<pandoc-embedz> â Werte unter C<globa...
greple -Mxlate --xlate --xlate-engine=gpt5 --xlate-to=EN-US \
--xlate-template= --xlate-format=xtxt \
--match-paragraph --all --need=0 \
report-template.md > report-template.EN.md
pandoc-embedz --standalone report-template.EN.md \
-c case-123.yaml -o report-123.EN.md < /dev/null
Bei Inline-Markierungen sorgt die Bereitstellung einer Makrodefinitionskonfiguration dafür, dass dieselbe übersetzte Vorlage entweder die tatsächlichen Namen oder eine geschwärzte Version rendert:
# macros.yaml # macros-redacted.yaml
preamble: | preamble: |
{% macro person(name) %}{{ name }}{% endmacro %}
{% macro person(name) %}(é¢ä¿è
){% endmacro %}
SchlieÃen Sie âembedzâ-Blöcke von der Ãbersetzung aus, wenn ein Dokument diese enthält:
--exclude '^```embedz\n(?s:.*?)^```\n'
=head1 OPTIONS
=over 7
=item B<--xlate>
=item B<--xlate-color>
=item B<--xlate-fold>
=item B<--xlate-fold-width>=I<n> (Default: 70)
Rufen Sie den Ãbersetzungsprozess für jeden übereinstimmenden Bereich auf.
Ohne diese Option verhält sich B<greple> wie ein normaler Suchbefehl. Sie können also überprüfen, welcher Teil der Datei Gegenstand der Ãbersetzung sein wird, bevor Sie die eigentliche Arbeit aufrufen.
Das Ergebnis des Befehls wird im Standard-Output ausgegeben, also leiten Sie es bei Bedarf in eine Datei um oder verwenden Sie das Modul L<App::Greple::update>.
Die Option B<--xlate> ruft die Option B<--xlate-color> mit der Option B<--color=never> auf.
Mit der Option B<--xlate-fold> wird der konvertierte Text um die angegebene Breite gefaltet. Die Standardbreite ist 70 und kann mit der Option B<--xlate-fold-width> eingestellt werden. Vier Spalten sind für den Einlaufvorgang reserviert, so dass jed...
=item B<--xlate-engine>=I<engine>
i18n/src/xlate.deepl-DE.pod view on Meta::CPAN
Der ursprüngliche und der übersetzte Text werden in einem benutzerdefinierten Container-Stil von Markdown ausgegeben.
::::::: ORIGINAL
original text
:::::::
::::::: JA
translated Japanese text
:::::::
Der obige Text wird in HTML wie folgt übersetzt.
<div class="ORIGINAL">
original text
</div>
<div class="JA">
translated Japanese text
</div>
Die Anzahl der Doppelpunkte ist standardmäÃig 7. Wenn Sie eine Doppelpunktfolge wie C<:::::> angeben, wird diese anstelle von 7 Doppelpunkten verwendet.
=item B<ifdef>
Original und konvertierter Text werden im Format L<cpp(1)> C<#ifdef> ausgedruckt.
#ifdef ORIGINAL
original text
#endif
#ifdef JA
translated Japanese text
#endif
Mit dem Befehl B<unifdef> können Sie nur japanischen Text wiederherstellen:
unifdef -UORIGINAL -DJA foo.ja.pm
=item B<space>
=item B<space+>
Original und konvertierter Text werden durch eine einzelne Leerzeile getrennt ausgegeben. Bei C<Leerzeichen+> wird nach dem konvertierten Text auch ein Zeilenumbruch ausgegeben.
=item B<xtxt>
Wenn das Format C<xtxt> (übersetzter Text) oder unbekannt ist, wird nur der übersetzte Text gedruckt.
=back
=item B<--xlate-maxlen>=I<chars> (Default: 0)
Geben Sie die maximale Länge des Textes an, der auf einmal an die API gesendet werden soll. Der Standardwert 0 entspricht der engine-eigenen Begrenzung: Für den kostenlosen DeepL-Account-Dienst beträgt diese 128K für die API (B<--xlate>) und 5000...
=item B<--xlate-maxline>=I<n> (Default: 0)
Geben Sie die maximale Anzahl von Textzeilen an, die auf einmal an die API gesendet werden sollen.
Setzen Sie diesen Wert auf 1, wenn Sie jeweils nur eine Zeile übersetzen wollen. Diese Option hat Vorrang vor der Option C<--xlate-maxlen>.
=item B<--xlate-prompt>=I<text>
Geben Sie eine benutzerdefinierte Eingabe an, die an die Ãbersetzungs-Engine gesendet werden soll. Diese Option ist für die LLM-Engines (C<gpt3>, C<gpt4o>, C<gpt5>) verfügbar, nicht jedoch für DeepL. Sie können das Ãbersetzungsverhalten anpasse...
=item B<--xlate-context>=I<text>
Geben Sie zusätzliche Kontextinformationen an, die an die Ãbersetzungsmaschine gesendet werden sollen. Diese Option kann mehrfach verwendet werden, um mehrere Kontextstrings anzugeben. Die Kontextinformationen helfen der Ãbersetzungsmaschine, den ...
=item B<--xlate-context-window>=I<n>
(Context-aware engines only, e.g. C<gpt5> on the llm backend)
Anzahl der umgebenden übersetzten Blöcke, die bei der Neuübersetzung geänderter Blöcke als Referenzkontext übergeben werden (Standardwert 2). Der Kontext umfasst auch den rohen Quelltext rund um den geänderten Bereich (Ãberschriften, Listenst...
=item B<--xlate-cache-seed>=I<file>
Initialisieren Sie den Cache eines neuen Dokuments anhand der Cache-Datei eines anderen Dokuments. Nützlich für periodische Berichte: Füllen Sie den Cache der neuen Ausgabe mit dem der vorherigen Ausgabe, damit unveränderte Absätze nicht erneut ...
=item B<--xlate-anonymize>=I<file>
Anonymisieren Sie sensible Zeichenfolgen, bevor sie an die Ãbersetzungs-API gesendet werden, und stellen Sie sie in der Ausgabe wieder her. Die Wörterbuchdatei enthält einen Eintrag pro Element: im JSON-Format (kanonisch, maschinell generierbar)
[ { "category": "person", "text": "å±±ç°å¤ªé" },
{ "category": "company", "regex": "ã¢ã¯ã¡(æ ªå¼ä¼ç¤¾)?" } ]
oder in einem einfachen Zeilenformat (C<category pattern>, fürC</.../> reguläre Ausdrücke). Jedes Element wird durch ein Kategorie-Tag wie ersetztC<< <person id="1" /> >>; dieselbe Zeichenfolge erhält immer dasselbe Tag, sodass das Modell den Ã...
Ein Wörterbuch kann von einem externen Tool generiert werden â zum Beispiel von einem lokalen Modell, das sensible Entitäten extrahiert:
llm -m <local-model> \
-s 'Extract sensitive entities as a JSON array of objects
with "category" and "text" fields.' \
< report.md > report.anon.json
greple -Mxlate --xlate-anonymize=report.anon.json ...
Ein UTF-8-BOM in der Datei wird toleriert. Werte im Front-Matter-Zeilenformat dürfen einen abschlieÃenden Kommentar nur in einer eigenen Zeile enthalten, nicht nach dem Wert.
=item B<--xlate-anonymize-mark>[=I<regex>]
Sammeln Sie Anonymisierungseinträge aus Inline-Markierungen im Dokument selbst. Markieren Sie das erste Vorkommen wie C<{{ person("å±±ç°å¤ªé") }}>, und jedes Vorkommen der Zeichenfolge im gesamten Dokument wird anonymisiert. Die Markierung selbst...
Beachten Sie, dass bei einer Option mit optionalem Wert wie dieser ein nachfolgendes Dateiargument als Wert übernommen würde: Schreiben Sie C<--xlate-anonymize-mark=> (mit einem nachgestellten C<=>), wenn Sie die Standardnotation verwenden.
Alternative Notationen können konfiguriert werden, zum Beispiel C<< --xlate-anonymize-mark='@@(?<category>[a-z][a-z0-9_]*):(?<text>[^\n]+?)@@' >> für Markierungen im C<@@person:NAME@@>-Stil oder eine HTML-Kommentarform, die im gerenderten Markdown ...
=item B<--xlate-template>[=I<regex>]
Behandeln Sie Vorlagenausdrücke (Standard: Jinja2 C<{{ ... }}>, C<{% ... %}>, C<{# ... #}>) als undurchsichtige Platzhalter: Weisen Sie das Modell an, diese unverändert zu kopieren und pro Block zu überprüfen, ob die Antwort genau dieselben Ausdr...
Beachten Sie, dass bei einer Option mit optionalem Wert wie dieser ein nachfolgendes Dateiargument als Wert übernommen würde: Schreiben Sie C<--xlate-template=> (mit einem nachgestellten C<=>), wenn Sie die Standardnotation verwenden.
=item B<--xlate-frontmatter>
Behandeln Sie einen vorangestellten C<---> ... C<--->-Block als YAML-Frontmatter: SchlieÃe ihn von der Ãbersetzung und den Phasen-2-Kontext-Slices aus und füge seine flachen C<key: value>-Werte als Sicherheitsnetz zu den Anonymisierungsregeln (Kat...
Lassen Sie nach dem schlieÃenden C<---> immer eine Leerzeile. Bei einem Ãbereinstimmungsmuster im Absatzstil bildet Front Matter, das direkt in den FlieÃtext übergeht, einen übergreifenden Block, den der Ausschluss nicht unterdrücken kann (in d...
=item B<--xlate-glossary>=I<glossary>
Geben Sie eine Glossarkennung an, die für die Ãbersetzung verwendet werden soll. Diese Option ist nur bei Verwendung der DeepL Engine verfügbar. Die Glossar-ID sollte von Ihrem DeepL Konto bezogen werden und gewährleistet eine konsistente Ãberse...
=item B<--xlate-dryrun>
Rufen Sie die Ãbersetzungs-API nicht auf; zeigen Sie stattdessen über die Fortschrittsanzeige jede Nutzlast genau so an, wie sie übertragen würde (nach Anonymisierung und Maskierung). Dies ist nützlich, um zu überprüfen, was den Rechner verlä...
=item B<-->[B<no->]B<xlate-progress> (Default: True)
Sehen Sie sich das Ãbersetzungsergebnis in Echtzeit in der STDERR-Ausgabe an. Die C<From>-Nutzlast wird so angezeigt, wie sie nach Anonymisierung und Maskierung übertragen wurde.
=item B<--xlate-review>
Bei einem eins-zu-eins geänderten Block wird der kleinste zusammenhängende geänderte Abschnitt in der alten und neuen Quelle angezeigt, gefolgt vom entsprechenden Abschnitt in der alten und neuen Ãbersetzung. Der Bericht wird an STDERR geschriebe...
=item B<--xlate-stripe>
Verwenden Sie das Modul L<App::Greple::stripe>, um den übereinstimmenden Teil in Form eines Zebrastreifens anzuzeigen. Dies ist nützlich, wenn die übereinstimmenden Teile Rücken an Rücken verbunden sind.
Die Farbpalette wird entsprechend der Hintergrundfarbe des Terminals umgeschaltet. Wenn Sie dies explizit angeben wollen, können Sie B<--xlate-stripe-light> oder B<--xlate-stripe-dark> verwenden.
=item B<--xlate-mask>
Führen Sie die Maskierungsfunktion aus und zeigen Sie den umgewandelten Text so an, wie er ist, ohne ihn wiederherzustellen.
=item B<--match-all>
Legen Sie den gesamten Text der Datei als Zielbereich fest.
=item B<--lineify-cm>
=item B<--lineify-colon>
Im Falle der Formate C<cm> und C<colon> wird die Ausgabe zeilenweise aufgeteilt und formatiert. Wenn also nur ein Teil einer Zeile übersetzt werden soll, kann das erwartete Ergebnis nicht erzielt werden. Diese Filter korrigieren die Ausgabe, die dur...
Werden in der derzeitigen Implementierung mehrere Teile einer Zeile übersetzt, werden sie als unabhängige Zeilen ausgegeben.
=back
=head1 CACHE OPTIONS
Das Modul B<xlate> kann den Text der Ãbersetzung für jede Datei im Cache speichern und vor der Ausführung lesen, um den Overhead durch die Anfrage an den Server zu vermeiden. Bei der Standard-Cache-Strategie C<auto> werden die Cache-Daten nur dann...
Verwenden Sie B<--xlate-cache=clear>, um die Cache-Verwaltung zu starten oder um alle vorhandenen Cache-Daten zu löschen. Nach der Ausführung dieser Option wird eine neue Cache-Datei erstellt, falls noch keine vorhanden ist, und anschlieÃend autom...
=over 7
=item --xlate-cache=I<strategy>
=over 4
=item C<auto> (Default)
Cache-Datei beibehalten, wenn sie vorhanden ist.
=item C<create>
Leere Cachedatei erstellen und beenden.
=item C<always>, C<yes>, C<1>
Cache trotzdem beibehalten, sofern das Ziel eine normale Datei ist.
=item C<clear>
Löschen Sie zuerst die Cache-Daten.
=item C<never>, C<no>, C<0>
Niemals die Cache-Datei verwenden, selbst wenn sie vorhanden ist.
=item C<accumulate>
StandardmäÃig werden nicht verwendete Daten aus der Cache-Datei entfernt. Wenn Sie sie nicht entfernen und in der Datei behalten wollen, verwenden Sie C<accumulate>.
=back
=item B<--xlate-update>
Diese Option erzwingt die Aktualisierung der Cache-Datei, auch wenn dies nicht erforderlich ist.
=back
=head1 COMMAND LINE INTERFACE
Sie können dieses Modul einfach von der Kommandozeile aus verwenden, indem Sie den in der Distribution enthaltenen Befehl C<xlate> verwenden. Siehe die Manpage C<xlate> zur Verwendung.
Der Befehl C<xlate> unterstützt lange Optionen im GNU-Stil wie C<--to-lang>, C<--from-lang>, C<--engine> und C<--file>. Verwenden Sie C<xlate -h>, um alle verfügbaren Optionen zu sehen.
Der Befehl C<xlate> arbeitet mit der Docker-Umgebung zusammen, d. h. selbst wenn Sie nichts installiert haben, können Sie ihn verwenden, solange Docker verfügbar ist. Verwenden Sie die Option C<-D> oder C<-C>.
Docker-Operationen werden über L<App::dozo> abgewickelt, das auch als eigenständiger Befehl verwendet werden kann. Der Befehl C<dozo> unterstützt die Konfigurationsdatei C<.dozorc> für dauerhafte Container-Einstellungen.
Da Makefiles für verschiedene Dokumentstile zur Verfügung gestellt werden, ist auch eine Ãbersetzung in andere Sprachen ohne besondere Angaben möglich. Verwenden Sie die Option C<-M>.
Sie können auch die Optionen Docker und C<make> kombinieren, so dass Sie C<make> in einer Docker-Umgebung ausführen können.
Wenn Sie C<xlate -C> ausführen, wird eine Shell gestartet, in der das aktuelle Git-Repository eingebunden ist.
Lesen Sie den japanischen Artikel im Abschnitt L</SEE ALSO> für weitere Details.
=head1 EMACS
( run in 1.265 second using v1.01-cache-2.11-cpan-b16cb0d3907 )