NAME

App::Greple::xlate - Übersetzungsunterstützungsmodul für greple

SYNOPSIS

greple -Mxlate --xlate-engine gpt5 --xlate pattern target-file

greple -Mxlate --xlate-engine deepl --xlate pattern target-file

VERSION

Version 2.00

DESCRIPTION

Greple xlate-Modul findet gewünschte Textblöcke und ersetzt sie durch den übersetzten Text. Die primäre Engine ist GPT-5.5 (llm/gpt5.pm), die den Befehl llm aufruft; DeepL (deepl.pm) und ältere auf gpty basierende Engines sind ebenfalls enthalten.

Übersetzungen werden pro Datei zwischengespeichert, sodass das erneute Ausführen eines Befehls für unveränderten Text nichts kostet. Wenn ein Dokument bearbeitet wird, werden nur die geänderten Absätze erneut an die API gesendet; eine kontextbewusste Engine erhält außerdem die umgebenden Übersetzungen, den rohen Quelltext um die Änderung herum und die vorherige Version des bearbeiteten Absatzes, sodass die neue Übersetzung die etablierte Wortwahl beibehält (siehe --xlate-context-window). Vertrauliche Zeichenketten können vor der Übertragung verborgen werden (siehe "ANONYMIZATION AND TEMPLATES").

Wenn Sie normale Textblöcke in einem Dokument übersetzen möchten, das im Perl-Pod-Stil geschrieben ist, verwenden Sie den Befehl greple mit --xlate-engine gpt5 und dem Modul perl wie folgt:

greple -Mxlate --xlate-engine gpt5 -Mperl --pod --re '^([\w\pP].*\n)+' --all foo.pm

In diesem Befehl bedeutet die Zeichenkette ^([\w\pP].*\n)+ aufeinanderfolgende Zeilen, die mit alphanumerischen und Interpunktionszeichen beginnen. Dieser Befehl zeigt den zu übersetzenden Bereich hervorgehoben an. Die Option --all wird verwendet, um den gesamten Text auszugeben.

Fügen Sie dann die Option --xlate hinzu, um den ausgewählten Bereich zu übersetzen. Dann werden die gewünschten Abschnitte gefunden und durch die Ausgabe der Übersetzungs-Engine ersetzt.

Standardmäßig werden Original- und übersetzter Text im „Konfliktmarker“-Format ausgegeben, das mit git(1) kompatibel ist. Mit dem Format ifdef können Sie den gewünschten Teil einfach mit dem Befehl unifdef(1) erhalten. Das Ausgabeformat kann mit der Option --xlate-format angegeben werden.

Wenn Sie den gesamten Text übersetzen möchten, verwenden Sie die Option --match-all. Dies ist eine Abkürzung, um das Muster (?s).+ anzugeben, das den gesamten Text erfasst.

Daten im Konfliktmarker-Format können im Side-by-Side-Stil mit dem Befehl sdif und der Option -V angezeigt werden. Da ein Vergleich pro Zeichenkette keinen Sinn ergibt, wird die Option --no-cdif empfohlen. Wenn Sie den Text nicht einfärben müssen, geben Sie --no-textcolor (oder --no-tc) an.

sdif -V --no-filename --no-tc --no-cdif data_shishin.deepl-EN-US.cm

NORMALIZATION

Die Verarbeitung erfolgt in angegebenen Einheiten, aber bei einer Folge mehrerer Zeilen nichtleeren Textes werden diese zusammen in eine einzelne Zeile konvertiert. Dieser Vorgang wird wie folgt durchgeführt:

  • Entfernen Sie Leerzeichen am Anfang und Ende jeder Zeile.

  • Wenn eine Zeile mit einem vollbreiten Satzzeichen endet, mit der nächsten Zeile verketten.

  • Wenn eine Zeile mit einem vollbreiten Zeichen endet und die nächste Zeile mit einem vollbreiten Zeichen beginnt, die Zeilen verketten.

  • Wenn entweder das Ende oder der Anfang einer Zeile kein vollbreites Zeichen ist, sie durch Einfügen eines Leerzeichens verketten.

Cache-Daten werden auf Basis des normalisierten Textes verwaltet, sodass zwischengespeicherte Übersetzungsdaten weiterhin wirksam sind, selbst wenn Änderungen vorgenommen werden, die das Normalisierungsergebnis nicht beeinflussen.

Dieser Normalisierungsprozess wird nur für das erste (0.) und die geradzahligen 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 Text, der dem zweiten Muster entspricht, wird kein Normalisierungsprozess durchgeführt.

greple -Mxlate -E normalized -E not-normalized

Verwenden Sie daher das erste Muster für Text, der durch das Kombinieren mehrerer Zeilen zu einer einzelnen Zeile verarbeitet werden soll, und das zweite Muster für vorformatierten Text. Wenn es keinen Text gibt, der auf das erste Muster passt, verwenden Sie ein Muster, das nichts trifft, wie (?!).

MASKING

Gelegentlich gibt es Textteile, die nicht übersetzt werden sollen. Zum Beispiel Tags in Markdown-Dateien. DeepL schlägt in solchen Fällen vor, den auszuschließenden Teil des Textes in XML-Tags umzuwandeln, zu übersetzen und nach Abschluss der Übersetzung wiederherzustellen. Um dies zu unterstützen, ist es möglich, die Teile zu spezifizieren, die von der Übersetzung maskiert werden sollen.

--xlate-setopt maskfile=MASKPATTERN

Dies interpretiert jede Zeile der Datei MASKPATTERN als regulären Ausdruck, übersetzt Zeichenfolgen, die damit übereinstimmen, und stellt nach der Verarbeitung den ursprünglichen Zustand wieder her. Zeilen, die mit # beginnen, werden ignoriert.

Komplexe Muster können mit einem durch Backslash maskierten Zeilenumbruch über mehrere Zeilen geschrieben werden.

Wie der Text durch Maskierung transformiert wird, kann mit der Option --xlate-mask gesehen werden.

Maskierung schützt Markup davor, übersetzt zu werden. Um sensible Zeichenfolgen vor dem Übersetzungsdienst selbst zu verbergen, siehe "ANONYMIZATION AND TEMPLATES"; beides kann zusammen verwendet werden.

Diese Schnittstelle ist experimentell und kann sich in Zukunft ändern.

ANONYMIZATION AND TEMPLATES

Sensible Zeichenketten können verborgen werden, bevor sie an die Übersetzungs-API gesendet werden, und in der Ausgabe wiederhergestellt werden. Drei Quellen für Anonymisierungsregeln stehen zur Verfügung: eine Wörterbuchdatei (--xlate-anonymize), Inline-Markierungen im Dokument selbst (--xlate-anonymize-mark) und YAML-Front-Matter-Werte (--xlate-frontmatter). Jede Zeichenkette wird während der Übertragung durch ein Kategorie-Tag wie <person id=1 /> ersetzt. Das Ziel der Verschleierung ist nur die API-Übertragung: lokale Cache-Dateien speichern wiederhergestellten Klartext. Verwenden Sie --xlate-dryrun, um genau zu prüfen, was übertragen würde.

Definieren Sie bei Formulardokumenten (Quartalsberichte und dergleichen) die Akteure im Voraus und verweisen Sie im Haupttext auf sie:

---
報告者: 山田太郎
発注会社: アクメ株式会社
---
本件について {{ 報告者 }} が調査を行った。

Übersetzen Sie die Vorlage einmal pro Sprache mit --xlate-template (und --xlate-frontmatter, wenn die Werte in der Datei verbleiben), und rendern Sie dann jeden Fall im eigenständigen Modus pandoc-embedz -- Werte unter global: in einer externen Konfiguration erreichen die Übersetzungs-API überhaupt nicht:

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

Für Inline-Markierungen sorgt eine Konfiguration für Makrodefinitionen dafür, dass dieselbe übersetzte Vorlage entweder die echten Namen oder eine redigierte 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 sie enthält:

--exclude '^```embedz\n(?s:.*?)^```\n'

OPTIONS

--xlate
--xlate-color
--xlate-fold
--xlate-fold-width=n (Default: 70)

Rufen Sie den Übersetzungsprozess für jeden übereinstimmenden Bereich auf.

Ohne diese Option verhält sich greple wie ein normaler Suchbefehl. So können Sie prüfen, welcher Teil der Datei Gegenstand der Übersetzung wird, bevor die eigentliche Arbeit gestartet wird.

Das Kommandoergebnis geht an die Standardausgabe; leiten Sie es bei Bedarf in eine Datei um oder erwägen Sie die Verwendung des Moduls App::Greple::update.

Option --xlate ruft die Option --xlate-color mit der Option --color=never auf.

Mit der Option --xlate-fold wird der konvertierte Text auf die angegebene Breite umgebrochen. Die Standardbreite beträgt 70 und kann mit der Option --xlate-fold-width gesetzt werden. Vier Spalten sind für die Einlaufoperation reserviert, sodass jede Zeile höchstens 74 Zeichen aufnehmen kann.

--xlate-engine=engine

Gibt die zu verwendende Übersetzungs-Engine an.

Derzeit sind die folgenden Engines verfügbar

  • gpt5: gpt-5.5 (via the llm command)

  • deepl: DeepL API (via the deepl command)

  • gpt3: gpt-3.5-turbo (legacy, via the gpty command)

  • gpt4o: gpt-4o-mini (legacy, via the gpty command)

Engine-Module werden zuerst in Backend-Namespaces gesucht (llm, dann gpty), anschließend direkt unter App::Greple::xlate. Daher lädt gpt5 App::Greple::xlate::llm::gpt5, das den Befehl llm aufruft, während gpt4o auf App::Greple::xlate::gpty::gpt4o zurückfällt. Verwenden Sie --xlate-setopt backend=gpty, um ein bestimmtes Backend zu erzwingen.

--xlate-labor
--xlabor

Anstatt die Übersetzungs-Engine aufzurufen, wird erwartet, dass Sie die Arbeit übernehmen. Nachdem der zu übersetzende Text vorbereitet wurde, wird er in die Zwischenablage kopiert. Sie sollen ihn in das Formular einfügen, das Ergebnis in die Zwischenablage kopieren und die Eingabetaste drücken.

--xlate-to (Default: EN-US)

Geben Sie die Zielsprache an. LLM-Engines akzeptieren jeden Sprachnamen oder -code, den das Modell versteht; er wird in den Übersetzungs-Prompt interpoliert. Verfügbare Sprachen erhalten Sie mit dem Befehl deepl languages, wenn Sie die Engine DeepL verwenden.

--xlate-from (Default: ORIGINAL)

Bezeichnung, die für den Originaltext in den Ausgabeformaten conflict, colon und ifdef verwendet wird. Bei der Engine DeepL wird ein vom Standard abweichender Wert auch als Ausgangssprache übergeben.

--xlate-format=format (Default: conflict)

Geben Sie das Ausgabeformat für Original- und übersetzten Text an.

Die folgenden Formate außer xtxt setzen voraus, dass der zu übersetzende Teil eine Sammlung von Zeilen ist. Tatsächlich ist es möglich, nur einen Teil einer Zeile zu übersetzen, aber die Angabe eines anderen Formats als xtxt führt nicht zu sinnvollen Ergebnissen.

conflict, cm

Original- und konvertierter Text werden im Konfliktmarker-Format von git(1) ausgegeben.

<<<<<<< ORIGINAL
original text
=======
translated Japanese text
>>>>>>> JA

Sie können die Originaldatei mit dem nächsten Befehl sed(1) wiederherstellen.

sed -e '/^<<<<<<< /d' -e '/^=======$/,/^>>>>>>> /d'
colon, :::::::

Der Original- und der übersetzte Text werden in einem benutzerdefinierten Containerstil von Markdown ausgegeben.

::::::: ORIGINAL
original text
:::::::
::::::: JA
translated Japanese text
:::::::

Der obige Text wird im HTML in Folgendes übersetzt.

<div class="ORIGINAL">
original text
</div>
<div class="JA">
translated Japanese text
</div>

Die Anzahl der Doppelpunkte beträgt standardmäßig 7. Wenn Sie eine Doppelpunktsfolge wie ::::: angeben, wird diese anstelle von 7 Doppelpunkten verwendet.

ifdef

Original- und konvertierter Text werden im Format cpp(1) #ifdef ausgegeben.

#ifdef ORIGINAL
original text
#endif
#ifdef JA
translated Japanese text
#endif

Sie können nur den japanischen Text mit dem Befehl unifdef abrufen:

unifdef -UORIGINAL -DJA foo.ja.pm
space
space+

Original- und konvertierter Text werden durch eine einzelne Leerzeile getrennt ausgegeben. Für space+ wird nach dem konvertierten Text zusätzlich ein Zeilenumbruch ausgegeben.

xtxt

Wenn das Format xtxt (übersetzter Text) oder unbekannt ist, wird nur der übersetzte Text ausgegeben.

--xlate-maxlen=chars (Default: 0)

Geben Sie die maximale Textlänge an, die auf einmal an die API gesendet wird. Der Standardwert 0 bedeutet das eigene Limit der Engine: Für den kostenlosen DeepL-Konto-Dienst sind das 128K für die API (--xlate) und 5000 für die Zwischenablage-Schnittstelle (--xlate-labor). Wenn Sie den Pro-Dienst verwenden, können Sie diese Werte möglicherweise ändern.

--xlate-maxline=n (Default: 0)

Geben Sie die maximale Anzahl von Textzeilen an, die auf einmal an die API gesendet werden.

Setzen Sie diesen Wert auf 1, wenn Sie eine Zeile nach der anderen übersetzen möchten. Diese Option hat Vorrang vor der Option --xlate-maxlen.

--xlate-prompt=text

Geben Sie einen benutzerdefinierten Prompt an, der an die Übersetzungs-Engine gesendet werden soll. Diese Option ist für die LLM-Engines (gpt3, gpt4o, gpt5) verfügbar, jedoch nicht für DeepL. Sie können das Übersetzungsverhalten anpassen, indem Sie dem KI-Modell spezifische Anweisungen geben. Wenn der Prompt %s enthält, wird er durch den Namen der Zielsprache ersetzt.

--xlate-context=text

Geben Sie zusätzliche Kontextinformationen an, die an die Übersetzungs-Engine gesendet werden. Diese Option kann mehrfach verwendet werden, um mehrere Kontextzeichenfolgen bereitzustellen. Die Kontextinformationen helfen der Übersetzungs-Engine, den Hintergrund zu verstehen und genauere Übersetzungen zu liefern.

--xlate-context-window=n

(Context-aware engines only, e.g. gpt5 on the llm backend) Anzahl der umgebenden übersetzten Blöcke, die beim erneuten Übersetzen geänderter Blöcke als Referenzkontext übergeben werden (Standard: 2). Der Kontext umfasst außerdem den unverarbeiteten Quelltext um den geänderten Bereich (Überschriften, Listenstruktur, Beschriftungen) und, sofern verfügbar, die aus dem Cache wiederhergestellte vorherige Version des geänderten Textes, sodass unveränderte Formulierungen erhalten bleiben. Setzen Sie den Wert auf 0, um kontextbewusste Übersetzung vollständig zu deaktivieren. Beachten Sie, dass jeder geänderte Bereich in einem eigenen API-Aufruf übersetzt wird und der Kontext bis zu etwa 8000 Zeichen zum System-Prompt hinzufügen kann; kontextbewusste Übersetzung tauscht daher etwas zusätzliche Kosten gegen Konsistenz ein.

--xlate-cache-seed=file

Initialisieren Sie den Cache eines neuen Dokuments aus der Cache-Datei eines anderen Dokuments. Nützlich für periodische Berichte: Befüllen Sie den Cache der neuen Ausgabe mit dem der vorherigen Ausgabe, sodass unveränderte Absätze nicht erneut übersetzt werden und bearbeitete Absätze die Formulierung der vorherigen Ausgabe beibehalten. Der Seed wird nur verwendet, wenn der Ziel-Cache leer ist; andernfalls wird er mit einer Warnung ignoriert. Mit der Standardeinstellung --xlate-cache=auto impliziert die Angabe eines Seeds auch das Erstellen der Cache-Datei des neuen Dokuments.

--xlate-anonymize=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: in JSON (kanonisch, maschinell generierbar)

[ { "category": "person",  "text": "山田太郎" },
  { "category": "company", "regex": "アクメ(株式会社)?" } ]

oder in einem einfachen Zeilenformat (category pattern, /.../ für Regex). Jedes Element wird durch ein Kategorie-Tag wie <person id=1 /> ersetzt; dieselbe Zeichenfolge erhält immer dasselbe Tag, sodass das Modell nachverfolgen kann, wer wer ist. Unbekannte JSON-Felder werden ignoriert, sodass Generatoren (z. B. ein lokales LLM, das Entitäten extrahiert) eigene Annotationen hinzufügen können. Kategorie lit ist reserviert. Lokale Cache-Dateien speichern weiterhin wiederhergestellten Klartext: Das Ziel der Verschleierung ist ausschließlich die API-Übertragung.

Ein Wörterbuch kann von einem externen Tool erzeugt 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 ...

Eine UTF-8-BOM in der Datei wird toleriert. Werte im Front-Matter-Zeilenformat dürfen einen nachgestellten Kommentar nur in einer eigenen Zeile enthalten, nicht nach dem Wert.

--xlate-anonymize-mark[=regex]

Sammeln Sie Anonymisierungseinträge aus Inline-Markierungen im Dokument selbst. Markieren Sie das erste Vorkommen wie {{ person("山田太郎") }}, und jedes Vorkommen der Zeichenfolge im gesamten Dokument wird anonymisiert. Die Markierung selbst bleibt in der Quelle und in der Übersetzung erhalten, sodass ein Dokument auch von einem Makroprozessor im Jinja2-Stil verarbeitet werden kann (definieren Sie das Makro person, um den Namen auszugeben oder zu schwärzen). Ein benutzerdefiniertes regex muss die benannten Captures (?<category>...) und (?<text>...) enthalten.

Beachten Sie, dass bei einer Option mit optionalem Wert wie dieser ein folgendes Dateiargument als Wert interpretiert würde: Schreiben Sie --xlate-anonymize-mark= (mit nachgestelltem =), wenn Sie die Standardnotation verwenden.

Alternative Notationen können konfiguriert werden, zum Beispiel --xlate-anonymize-mark='@@(?<category>[a-z][a-z0-9_]*):(?<text>[^\n]+?)@@' für Markierungen im Stil von @@person:NAME@@ oder eine HTML-Kommentarform, die in gerendertem Markdown unsichtbar bleibt. Markierungsregeln werden pro Dokument gesammelt: Eine in einer Eingabedatei markierte Zeichenfolge wird in einer anderen Datei desselben Laufs nicht verschleiert (im Gegensatz zu Front-Matter-Werten, die sich über Dateien hinweg ansammeln).

--xlate-template[=regex]

Behandeln Sie Template-Ausdrücke (Standard: Jinja2 {{ ... }}, {% ... %}, {# ... #}) als undurchsichtige Platzhalter: Weisen Sie das Modell an, sie unverändert zu kopieren, und überprüfen Sie pro Block, dass die Antwort genau dieselben Ausdrücke enthält, jeden in derselben Anzahl. Ihre Reihenfolge kann sich ändern, da die Übersetzung sie berechtigterweise neu anordnet, um der Wortstellung der Zielsprache zu folgen. Ein beschädigter Ausdruck bricht den Lauf ab; der Cache wird per Checkpoint gesichert und eingefroren, sodass nichts Bezahltes verloren geht.

Beachten Sie, dass bei einer Option mit optionalem Wert wie dieser ein folgendes Dateiargument als Wert genommen würde: Schreiben Sie --xlate-template= (mit einem nachgestellten =), wenn Sie die Standardnotation verwenden.

--xlate-frontmatter

Behandeln Sie einen führenden --- ... ----Block als YAML-Front-Matter: Schließen Sie ihn von der Übersetzung und von den Kontext-Slices der Phase 2 aus, und fügen Sie seine flachen key: value-Werte den Anonymisierungsregeln (Kategorie var) als Sicherheitsnetz hinzu. Bei mehreren Eingabedateien sammeln sich die erfassten Werte an (im Zweifel zugunsten der Verschleierung).

Lassen Sie immer eine Leerzeile nach dem abschließenden ---. Bei einem Absatzstil-Match-Pattern bildet Front-Matter, die direkt in den Fließtext übergeht, einen überspannenden Block, den der Ausschluss nicht unterdrücken kann (in diesem Fall wird eine Warnung ausgegeben); die Werte werden weiterhin anonymisiert, aber die Front-Matter selbst würde zur Übersetzung gesendet.

--xlate-glossary=glossary

Geben Sie eine Glossar-ID an, die für die Übersetzung verwendet werden soll. Diese Option ist nur bei Verwendung der DeepL-Engine verfügbar. Die Glossar-ID sollte aus Ihrem DeepL-Konto stammen und sorgt für eine konsistente Übersetzung spezifischer Begriffe.

--xlate-dryrun

Rufen Sie die Übersetzungs-API nicht auf; zeigen Sie stattdessen über die Fortschrittsanzeige jede Payload genau so an, wie sie übertragen würde (nach Anonymisierung und Maskierung). Nützlich, um zu prüfen, was die Maschine verlässt, und um die Kosten eines Laufs abzuschätzen.

--[no-]xlate-progress (Default: True)

Sehen Sie das Übersetzungsergebnis in Echtzeit in der STDERR-Ausgabe. Die From-Payload wird so angezeigt, wie sie nach Anonymisierung und Maskierung übertragen wurde.

--xlate-stripe

Verwenden Sie das Modul App::Greple::stripe, um den übereinstimmenden Teil im Zebra-Streifen-Stil anzuzeigen. Dies ist nützlich, wenn die übereinstimmenden Teile nahtlos aneinandergrenzen.

Die Farbpalette wird entsprechend der Hintergrundfarbe des Terminals umgeschaltet. Wenn Sie dies explizit angeben möchten, können Sie --xlate-stripe-light oder --xlate-stripe-dark verwenden.

--xlate-mask

Führen Sie die Maskierungsfunktion aus und zeigen Sie den konvertierten Text unverändert ohne Wiederherstellung an.

--match-all

Setzen Sie den gesamten Text der Datei als Zielbereich.

--lineify-cm
--lineify-colon

Bei den Formaten cm und colon wird die Ausgabe zeilenweise aufgeteilt und formatiert. Wenn daher nur ein Teil einer Zeile übersetzt werden soll, kann das erwartete Ergebnis nicht erzielt werden. Diese Filter korrigieren Ausgaben, die durch das Übersetzen eines Zeilenteils beschädigt wurden, zu einer normalen zeilenweisen Ausgabe.

In der aktuellen Implementierung werden mehrere übersetzte Teile einer Zeile als unabhängige Zeilen ausgegeben.

CACHE OPTIONS

Das Modul xlate kann für jede Datei zwischengespeicherten Übersetzungstext speichern und ihn vor der Ausführung einlesen, um den Overhead von Serveranfragen zu vermeiden. Mit der Standard-Cache-Strategie auto werden Cache-Daten nur beibehalten, wenn die Cache-Datei für die Zieldatei existiert.

Verwenden Sie --xlate-cache=clear, um die Cache-Verwaltung zu starten oder alle vorhandenen Cache-Daten zu bereinigen. Wenn diese Option einmal ausgeführt wurde, wird eine neue Cache-Datei erstellt, falls keine vorhanden ist, und anschließend automatisch gepflegt.

--xlate-cache=strategy
auto (Default)

Pflegen Sie die Cache-Datei, falls sie existiert.

create

Leere Cache-Datei erstellen und beenden.

always, yes, 1

Den Cache dennoch beibehalten, solange das Ziel eine normale Datei ist.

clear

Zuerst die Cache-Daten löschen.

never, no, 0

Cache-Datei niemals verwenden, selbst wenn sie existiert.

accumulate

Standardmäßig werden ungenutzte Daten aus der Cache-Datei entfernt. Wenn Sie sie nicht entfernen und in der Datei behalten möchten, verwenden Sie accumulate.

--xlate-update

Diese Option erzwingt das Aktualisieren der Cache-Datei, auch wenn es nicht notwendig ist.

COMMAND LINE INTERFACE

Sie können dieses Modul einfach über die Kommandozeile verwenden, indem Sie den in der Distribution enthaltenen Befehl xlate verwenden. Siehe die xlate-Manpage zur Verwendung.

Der xlate-Befehl unterstützt GNU-ähnliche Long-Optionen wie --to-lang, --from-lang, --engine und --file. Verwenden Sie xlate -h, um alle verfügbaren Optionen anzuzeigen.

Der Befehl xlate arbeitet mit der Docker-Umgebung zusammen. Selbst wenn Sie lokal nichts installiert haben, können Sie ihn verwenden, solange Docker verfügbar ist. Verwenden Sie die Option -D oder -C.

Docker-Operationen werden von App::dozo gehandhabt, das auch als eigenständiger Befehl verwendet werden kann. Der Befehl dozo unterstützt die Konfigurationsdatei .dozorc für persistente Container-Einstellungen.

Da Makefiles für verschiedene Dokumentstile bereitgestellt werden, ist die Übersetzung in andere Sprachen ohne besondere Spezifikation möglich. Verwenden Sie die Option -M.

Sie können die Optionen Docker und make auch kombinieren, sodass Sie make in einer Docker-Umgebung ausführen können.

Das Ausführen wie xlate -C startet eine Shell mit dem aktuell eingehängten Git-Repository als Arbeitsverzeichnis.

Lesen Sie den japanischen Artikel im Abschnitt "SEE ALSO" für Details.

EMACS

Laden Sie die im Repository enthaltene Datei xlate.el, um den Befehl xlate aus dem Emacs-Editor zu verwenden. Die Funktion xlate-region übersetzt den angegebenen Bereich. Die Standardsprache ist EN-US, und Sie können die Sprache angeben, indem Sie sie mit Präfix-Argument aufrufen.

ENVIRONMENT

DEEPL_AUTH_KEY

Legen Sie Ihren Authentifizierungsschlüssel für den DeepL-Dienst fest.

OPENAI_API_KEY

OpenAI-Authentifizierungsschlüssel, der von den alten gpty-Engines verwendet wird. Die auf llm basierende gpt5-Engine liest diese Variable ebenfalls, aber mit llm keys set openai gespeicherte Schlüssel funktionieren ebenfalls.

GREPLE_XLATE_CACHE

Legen Sie die Standard-Cache-Strategie fest (siehe "CACHE OPTIONS").

INSTALL

CPANMINUS

$ cpanm App::Greple::xlate

TOOLS

Installieren Sie das Kommandozeilentool für die von Ihnen verwendete Engine: llm für die gpt5-Engine, deepl für DeepL, gpty für die alten GPT-Engines.

https://llm.datasette.io/

https://github.com/DeepLcom/deepl-python

https://github.com/tecolicom/App-gpty

SEE ALSO

MODULES

App::Greple::xlate::llm, App::Greple::xlate::deepl

App::dozo - Generischer Docker-Runner, der von xlate für Container-Operationen verwendet wird

  • App::Greple

    Siehe das Handbuch greple für Details zum Zieltextmuster. Verwenden Sie die Optionen --inside, --outside, --include, --exclude, um den Abgleichsbereich einzuschränken.

  • App::Greple::update

    Sie können das Modul -Mupdate verwenden, um Dateien anhand des Ergebnisses des Befehls greple zu ändern.

  • App::sdif

    Verwenden Sie sdif, um das Konfliktmarker-Format nebeneinander mit der Option -V anzuzeigen.

  • App::Greple::stripe

    Greple-Modul stripe wird mit der Option --xlate-stripe verwendet.

RESOURCES

ARTICLES

AUTHOR

Kazumasa Utashiro

LICENSE

Copyright © 2023-2026 Kazumasa Utashiro.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.