NAME

App::Greple::xlate - vertaalondersteuningsmodule voor greple

SYNOPSIS

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

greple -Mxlate::gpt4 --xlate pattern target-file

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

VERSION

Version 0.9912

DESCRIPTION

Greple xlate module vindt gewenste tekstblokken en vervangt deze door de vertaalde tekst. Momenteel zijn DeepL (deepl.pm) en ChatGPT 4.1 (gpt4.pm) module geïmplementeerd als back-end engine.

Als je normale tekstblokken in een document geschreven in de Perl's pod-stijl wilt vertalen, gebruik dan het greple commando met xlate::deepl en perl module zoals dit:

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

In dit commando betekent de patroonstring ^([\w\pP].*\n)+ opeenvolgende regels die beginnen met een alfanumeriek teken of leesteken. Dit commando toont het te vertalen gebied gemarkeerd. Optie --all wordt gebruikt om de volledige tekst te produceren.

Voeg vervolgens de --xlate optie toe om het geselecteerde gebied te vertalen. Dan worden de gewenste secties gevonden en vervangen door de uitvoer van het deepl commando.

Standaard worden originele en vertaalde tekst afgedrukt in het "conflict marker" formaat dat compatibel is met git(1). Met het ifdef formaat kun je het gewenste deel eenvoudig verkrijgen met het unifdef(1) commando. Het uitvoerformaat kan worden gespecificeerd met de --xlate-format optie.

Als je de volledige tekst wilt vertalen, gebruik dan de --match-all optie. Dit is een snelkoppeling om het patroon (?s).+ te specificeren dat overeenkomt met de volledige tekst.

Conflictmarkeringformaatgegevens kunnen in zij-aan-zij stijl worden bekeken met het sdif commando met de -V optie. Aangezien het geen zin heeft om per tekenreeks te vergelijken, wordt de --no-cdif optie aanbevolen. Als u de tekst niet hoeft te kleuren, geef dan --no-textcolor (of --no-tc) op.

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

NORMALIZATION

De verwerking gebeurt in opgegeven eenheden, maar in het geval van een reeks van meerdere regels niet-lege tekst, worden deze samen omgezet in één regel. Deze bewerking wordt als volgt uitgevoerd:

  • Verwijder witruimte aan het begin en einde van elke regel.

  • Als een regel eindigt met een volbreedte leesteken, voeg samen met de volgende regel.

  • Als een regel eindigt met een volbreedte teken en de volgende regel begint met een volbreedte teken, voeg de regels samen.

  • Als het einde of het begin van een regel geen volbreedte teken is, voeg ze dan samen door een spatie toe te voegen.

Cachegegevens worden beheerd op basis van de genormaliseerde tekst, dus zelfs als er wijzigingen worden aangebracht die geen invloed hebben op het normalisatieresultaat, blijft de vertaalde cachegegevens effectief.

Dit normalisatieproces wordt alleen uitgevoerd voor het eerste (0e) en even genummerde patroon. Dus als twee patronen als volgt worden opgegeven, wordt de tekst die overeenkomt met het eerste patroon verwerkt na normalisatie, en wordt er geen normalisatie uitgevoerd op de tekst die overeenkomt met het tweede patroon.

greple -Mxlate -E normalized -E not-normalized

Gebruik daarom het eerste patroon voor tekst die moet worden verwerkt door meerdere regels samen te voegen tot één regel, en gebruik het tweede patroon voor vooraf opgemaakte tekst. Als er geen tekst is die overeenkomt met het eerste patroon, gebruik dan een patroon dat nergens mee overeenkomt, zoals (?!).

MASKING

Af en toe zijn er delen van tekst die je niet wilt vertalen. Bijvoorbeeld, tags in markdown-bestanden. DeepL stelt voor om in zulke gevallen het te vertalen deel om te zetten naar XML-tags, te vertalen, en daarna na de vertaling te herstellen. Om dit te ondersteunen, is het mogelijk om de delen die van vertaling uitgesloten moeten worden, te specificeren.

--xlate-setopt maskfile=MASKPATTERN

Dit zal elke regel van het bestand `MASKPATTERN` interpreteren als een reguliere expressie, strings die hiermee overeenkomen vertalen, en na verwerking terugzetten. Regels die beginnen met # worden genegeerd.

Complexe patronen kunnen over meerdere regels worden geschreven met een backslash-escaped nieuwe regel.

Hoe de tekst wordt getransformeerd door maskering kan worden bekeken met de --xlate-mask optie.

Deze interface is experimenteel en kan in de toekomst veranderen.

OPTIONS

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

Start het vertaalproces voor elk overeenkomend gebied.

Zonder deze optie gedraagt greple zich als een normale zoekopdracht. Zo kun je controleren welk deel van het bestand onderwerp van vertaling zal zijn voordat je het daadwerkelijke werk uitvoert.

Het resultaat van het commando gaat naar standaarduitvoer, dus omleiden naar een bestand indien nodig, of overweeg het gebruik van de App::Greple::update module.

Optie --xlate roept de --xlate-color optie aan met de --color=never optie.

Met de --xlate-fold optie wordt de geconverteerde tekst opgevouwen tot de opgegeven breedte. De standaardbreedte is 70 en kan worden ingesteld met de --xlate-fold-width optie. Vier kolommen zijn gereserveerd voor run-in-operatie, dus elke regel kan maximaal 74 tekens bevatten.

--xlate-engine=engine

Specificeert de te gebruiken vertaalmachine. Als je het engine-module direct specificeert, zoals -Mxlate::deepl, hoef je deze optie niet te gebruiken.

Op dit moment zijn de volgende engines beschikbaar

  • deepl: DeepL API

  • gpt3: gpt-3.5-turbo

  • gpt4: gpt-4.1

  • gpt4o: gpt-4o-mini

    gpt-4o's interface is instabiel en kan momenteel niet gegarandeerd correct werken.

--xlate-labor
--xlabor

In plaats van de vertaalmachine aan te roepen, wordt van je verwacht dat je het werk uitvoert. Nadat de te vertalen tekst is voorbereid, worden ze naar het klembord gekopieerd. Je wordt geacht ze in het formulier te plakken, het resultaat naar het klembord te kopiëren en op enter te drukken.

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

Specificeer de doeltaal. Je kunt beschikbare talen opvragen met het deepl languages commando wanneer je de DeepL engine gebruikt.

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

Specificeer het uitvoerformaat voor originele en vertaalde tekst.

De volgende formaten anders dan xtxt gaan ervan uit dat het te vertalen deel een verzameling regels is. In feite is het mogelijk om slechts een deel van een regel te vertalen, maar het specificeren van een ander formaat dan xtxt zal geen zinvolle resultaten opleveren.

conflict, cm

Originele en geconverteerde tekst worden afgedrukt in git(1) conflictmarkeringsformaat.

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

Je kunt het originele bestand herstellen met het volgende sed(1) commando.

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

De originele en vertaalde tekst worden weergegeven in een aangepaste containerstijl van markdown.

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

Bovenstaande tekst wordt als volgt vertaald naar HTML.

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

Het aantal dubbele punten is standaard 7. Als je een dubbelepuntreeks opgeeft zoals :::::, wordt deze gebruikt in plaats van 7 dubbele punten.

ifdef

Originele en geconverteerde tekst worden afgedrukt in cpp(1) #ifdef formaat.

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

Je kunt alleen Japanse tekst ophalen met het unifdef commando:

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

Originele en geconverteerde tekst worden afgedrukt, gescheiden door een enkele lege regel.

xtxt

Voor space+ wordt er ook een nieuwe regel na de geconverteerde tekst toegevoegd.

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

Als het formaat xtxt (vertaalde tekst) of onbekend is, wordt alleen de vertaalde tekst afgedrukt.

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

Specificeer de maximale lengte van de tekst die in één keer naar de API mag worden gestuurd. De standaardwaarde is ingesteld zoals voor de gratis DeepL-accountservice: 128K voor de API (--xlate) en 5000 voor de klembordinterface (--xlate-labor). Mogelijk kunt u deze waarde wijzigen als u de Pro-service gebruikt.

Specificeer het maximaal aantal regels tekst dat in één keer naar de API mag worden gestuurd.

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

Stel deze waarde in op 1 als u één regel tegelijk wilt vertalen. Deze optie heeft voorrang op de --xlate-maxlen-optie.

--xlate-stripe

Bekijk het vertaalresultaat in realtime in de STDERR-uitvoer.

Gebruik de App::Greple::stripe-module om het overeenkomende gedeelte in zebra-streepjesstijl weer te geven. Dit is handig wanneer de overeenkomende delen direct aan elkaar zijn gekoppeld.

--xlate-mask

Het kleurenpalet wordt aangepast aan de achtergrondkleur van de terminal. Als u dit expliciet wilt opgeven, kunt u --xlate-stripe-light of --xlate-stripe-dark gebruiken.

--match-all

Voer de maskeringsfunctie uit en toon de geconverteerde tekst zoals deze is, zonder herstel.

--lineify-cm
--lineify-colon

In het geval van de cm- en colon-formaten wordt de uitvoer regel voor regel gesplitst en opgemaakt. Daarom kan het verwachte resultaat niet worden verkregen als slechts een deel van een regel wordt vertaald. Deze filters herstellen uitvoer die is beschadigd door een deel van een regel te vertalen naar normale regel-voor-regel uitvoer.

In de huidige implementatie worden meerdere vertaalde delen van een regel als onafhankelijke regels weergegeven.

CACHE OPTIONS

Stel de volledige tekst van het bestand in als doelgebied.

De xlate-module kan gecachte vertaalde tekst per bestand opslaan en deze vóór uitvoering lezen om de overhead van het opvragen bij de server te elimineren. Met de standaard cache-strategie auto wordt cachedata alleen onderhouden als het cachebestand voor het doelbestand bestaat.

--xlate-cache=strategy
auto (Default)

Gebruik --xlate-cache=clear om cachebeheer te starten of om alle bestaande cachedata op te schonen. Na uitvoering met deze optie wordt een nieuw cachebestand aangemaakt als er nog geen bestaat en daarna automatisch onderhouden.

create

Onderhoud het cachebestand als het bestaat.

always, yes, 1

Maak een leeg cachebestand aan en sluit af.

clear

Onderhoud de cache in ieder geval zolang het doel een normaal bestand is.

never, no, 0

Wis eerst de cachedata.

accumulate

Gebruik nooit een cachebestand, zelfs niet als het bestaat.

--xlate-update

Standaard wordt ongebruikte data uit het cachebestand verwijderd. Als u deze niet wilt verwijderen en in het bestand wilt houden, gebruik dan accumulate.

COMMAND LINE INTERFACE

Met deze optie wordt het cachebestand geforceerd bijgewerkt, zelfs als dit niet nodig is.

U kunt deze module eenvoudig vanaf de opdrachtregel gebruiken met het xlate-commando dat bij de distributie is inbegrepen. Zie de xlate-manpagina voor gebruik.

Het xlate-commando werkt samen met de Docker-omgeving, dus zelfs als u niets hebt geïnstalleerd, kunt u het gebruiken zolang Docker beschikbaar is. Gebruik de -D- of -C-optie.

Omdat er ook makefiles voor verschillende documentstijlen worden meegeleverd, is vertaling naar andere talen mogelijk zonder speciale specificatie. Gebruik de -M-optie.

U kunt ook de Docker- en make-opties combineren, zodat u make in een Docker-omgeving kunt uitvoeren.

Uitvoeren zoals xlate -C start een shell met de huidige werkende git-repository aangekoppeld.

EMACS

Laad het xlate.el bestand dat in de repository is opgenomen om het xlate commando vanuit de Emacs-editor te gebruiken. xlate-region functie vertaalt het opgegeven gebied. De standaardtaal is EN-US en je kunt de taal specificeren door het met een prefix-argument aan te roepen.

ENVIRONMENT

DEEPL_AUTH_KEY

Stel je authenticatiesleutel voor de DeepL-service in.

OPENAI_API_KEY

OpenAI authenticatiesleutel.

INSTALL

CPANMINUS

$ cpanm App::Greple::xlate

TOOLS

Je moet de commandoregeltools voor DeepL en ChatGPT installeren.

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

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

SEE ALSO

App::Greple::xlate

App::Greple::xlate::deepl

App::Greple::xlate::gpt4

ARTICLES

AUTHOR

Kazumasa Utashiro

LICENSE

Copyright © 2023-2025 Kazumasa Utashiro.

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