NAME

App::Greple::xlate - vertalingsondersteuningsmodule voor greple

SYNOPSIS

greple -Mxlate -e ENGINE --xlate pattern target-file

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

VERSION

Version 0.3401

DESCRIPTION

Greple xlate module vindt de gewenste tekstblokken en vervangt deze door de vertaalde tekst. Momenteel zijn de DeepL (deepl.pm) en ChatGPT (gpt3.pm) modules geïmplementeerd als een back-end engine. Experimentele ondersteuning voor gpt-4 en gpt-4o is ook inbegrepen.

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.*\n)+' --all foo.pm

In dit commando betekent patroonstring ^(\w.*\n)+ opeenvolgende regels die beginnen met een alfanumeriek teken. Dit commando toont het gebied dat vertaald moet worden gemarkeerd. Optie --all wordt gebruikt om de gehele tekst te produceren.

Voeg dan de --xlate optie toe om het geselecteerde gebied te vertalen. Dan zal het de gewenste secties vinden en deze vervangen door de uitvoer van het deepl commando.

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

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

Gegevens in conflict marker formaat kunnen zij aan zij worden bekeken met het sdif commando met de -V optie. Aangezien het geen zin heeft om op basis van elke string te vergelijken, wordt de --no-cdif optie aanbevolen. Als je de tekst niet wilt kleuren, specificeer dan --no-textcolor (of --no-tc).

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

NORMALIZATION

Verwerking gebeurt in gespecificeerde eenheden, maar in het geval van een reeks van meerdere regels met niet-lege tekst, worden ze samen omgezet in een enkele regel. Deze bewerking wordt als volgt uitgevoerd:

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

  • Als een regel eindigt met een full-width leesteken, concateneer dan met de volgende regel.

  • Als een regel eindigt met een full-width teken en de volgende regel begint met een full-width teken, concateneer de regels.

  • Als het einde of het begin van een regel geen full-width teken is, concateneer ze door een spatie in te voegen.

Cachegegevens worden beheerd op basis van de genormaliseerde tekst, dus zelfs als er wijzigingen worden aangebracht die de normalisatie resultaten niet beïnvloeden, blijft de gecachte vertaaldata effectief.

Dit normalisatieproces wordt alleen uitgevoerd voor het eerste (0e) en even genummerde patroon. Dus, als twee patronen als volgt zijn gespecificeerd, zal de tekst die overeenkomt met het eerste patroon worden verwerkt na normalisatie, en zal er geen normalisatieproces worden 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 een enkele regel, en gebruik het tweede patroon voor vooraf geformatteerde tekst. Als er geen tekst is om te matchen in het eerste patroon, gebruik dan een patroon dat niets matcht, zoals (?!).

MASKING

Af en toe zijn er delen van tekst die je niet wilt laten vertalen. Bijvoorbeeld, tags in markdown-bestanden. DeepL stelt voor dat in dergelijke gevallen het deel van de tekst dat uitgesloten moet worden, wordt omgezet in XML-tags, vertaald en vervolgens hersteld nadat de vertaling is voltooid. Om dit te ondersteunen, is het mogelijk om de delen die van vertaling moeten worden gemaskeerd, op te geven.

--xlate-setopt maskfile=MASKPATTERN

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

Deze interface is experimenteel en kan in de toekomst veranderen.

OPTIONS

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

Roep het vertaalproces aan voor elk gematcht gebied.

Zonder deze optie gedraagt greple zich als een normale zoekopdracht. Dus je kunt controleren welk deel van het bestand onderwerp van de vertaling zal zijn voordat je daadwerkelijk aan het werk gaat.

De uitvoer van het commando gaat naar de standaarduitvoer, dus omleiden naar een bestand indien nodig, of overweeg om de App::Greple::update module te gebruiken.

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

Met de --xlate-fold optie wordt de geconverteerde tekst gevouwen volgens de opgegeven breedte. De standaardbreedte is 70 en kan worden ingesteld met de --xlate-fold-width optie. Vier kolommen zijn gereserveerd voor de doorlopende bewerking, zodat elke regel maximaal 74 tekens kan bevatten.

--xlate-engine=engine

Geeft de te gebruiken vertaalengine op. Als je de engine-module direct opgeeft, zoals -Mxlate::deepl, heb je deze optie niet nodig.

Op dit moment zijn de volgende engines beschikbaar

  • deepl: DeepL API

  • gpt3: gpt-3.5-turbo

  • gpt4: gpt-4-turbo

  • gpt4o: gpt-4o-mini

    gpt-4o's interface is onbetrouwbaar en kan momenteel niet correct functioneren.

--xlate-labor
--xlabor

In plaats van de vertaalengine aan te roepen, wordt van je verwacht dat je ervoor werkt. Na het voorbereiden van de te vertalen tekst, worden ze naar het klembord gekopieerd. Je wordt verwacht ze in het formulier te plakken, het resultaat naar het klembord te kopiëren en op enter te drukken.

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

Geef de doeltaal op. Je kunt beschikbare talen krijgen met het deepl languages commando wanneer je de DeepL engine gebruikt.

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

Geef het uitvoerformaat op voor de originele en vertaalde tekst.

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

conflict, cm

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

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

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

sed -e '/^<<<<<<< /d' -e '/^=======$/,/^>>>>>>> /d'
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

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

xtxt

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

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

Geef de maximale lengte van de tekst op die in één keer naar de API moet worden verzonden. De standaardwaarde is ingesteld zoals voor de gratis DeepL-accountservice: 128K voor de API (--xlate) en 5000 voor de klembordinterface (--xlate-labor). Je kunt deze waarden mogelijk wijzigen als je de Pro-service gebruikt.

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

Geef het maximale aantal regels tekst op dat in één keer naar de API moet worden verzonden.

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

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

Zie het vertaalresultaat in realtime in de STDERR-uitvoer.

--match-all

Stel de hele tekst van het bestand in als een doelgebied.

CACHE OPTIONS

De xlate module kan gecachte vertaaltekst voor elk bestand opslaan en deze lezen voordat de uitvoering plaatsvindt om de overhead van het vragen aan de server te elimineren. Met de standaard cache-strategie auto onderhoudt het cachegegevens alleen wanneer het cachebestand bestaat voor het doelbestand.

--cache-clear

De --cache-clear optie kan worden gebruikt om cachebeheer te initiëren of om alle bestaande cachegegevens te vernieuwen. Zodra deze optie is uitgevoerd, wordt er een nieuw cachebestand aangemaakt als er nog geen bestaat en wordt het daarna automatisch onderhouden.

--xlate-cache=strategy
auto (Default)

Onderhoud het cachebestand als het bestaat.

create

Maak een leeg cachebestand aan en sluit af.

always, yes, 1

Onderhoud de cache hoe dan ook zolang het doel een normaal bestand is.

clear

Wis eerst de cachegegevens.

never, no, 0

Gebruik nooit het cachebestand, zelfs als het bestaat.

accumulate

Bij standaardgedrag worden ongebruikte gegevens uit het cachebestand verwijderd. Als je ze niet wilt verwijderen en in het bestand wilt houden, gebruik dan accumulate.

COMMAND LINE INTERFACE

Je kunt deze module eenvoudig vanaf de opdrachtregel gebruiken door de xlate opdracht te gebruiken die in de distributie is opgenomen. Zie de xlate helpinformatie voor gebruik.

De xlate opdracht werkt samen met de Docker-omgeving, dus zelfs als je niets geïnstalleerd hebt, kun je het gebruiken zolang Docker beschikbaar is. Gebruik de -D of -C optie.

Ook, aangezien makefiles voor verschillende documentstijlen worden geleverd, is vertaling naar andere talen mogelijk zonder speciale specificatie. Gebruik de -M optie.

Je kunt ook de Docker- en make-opties combineren zodat je make in een Docker-omgeving kunt uitvoeren.

Uitvoeren zoals xlate -GC zal een shell starten met de huidige werkende git-repository gemonteerd.

Lees het Japanse artikel in de "SEE ALSO" sectie voor details.

    xlate [ options ] -t lang file [ greple options ]
	-h   help
	-v   show version
	-d   debug
	-n   dry-run
	-a   use API
	-c   just check translation area
	-r   refresh cache
	-s   silent mode
	-e # translation engine (default "deepl")
	-p # pattern to determine translation area
	-w # wrap line by # width
	-o # output format (default "xtxt", or "cm", "ifdef")
	-f # from lang (ignored)
	-t # to lang (required, no default)
	-m # max length per API call
	-l # show library files (XLATE.mk, xlate.el)
        --   terminate option parsing
    Make options
	-M   run make
	-n   dry-run
    Docker options
	-G   mount git top-level directory
	-B   run in non-interactive (batch) mode
	-R   mount read-only
	-E * specify environment variable to be inherited
	-I * specify altanative docker image (default: tecolicom/xlate:version)
	-D * run xlate on the container with the rest parameters
	-C * run following command on the container, or run shell

    Control Files:
	*.LANG    translation languates
	*.FORMAT  translation foramt (xtxt, cm, ifdef)
	*.ENGINE  translation engine (deepl or gpt3)

EMACS

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

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 opdrachtregeltools 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::gpt3

https://hub.docker.com/r/tecolicom/xlate

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

DeepL Python-bibliotheek en CLI-opdracht.

https://github.com/openai/openai-python

OpenAI Python-bibliotheek

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

OpenAI-opdrachtregelinterface

App::Greple

Zie de greple handleiding voor details over het doeltekstpatroon. Gebruik --inside, --outside, --include, --exclude opties om het overeenkomende gebied te beperken.

App::Greple::update

Je kunt de -Mupdate module gebruiken om bestanden te wijzigen op basis van het resultaat van de greple opdracht.

App::sdif

Gebruik sdif om het conflictmarkeerformaat naast de -V optie weer te geven.

ARTICLES

AUTHOR

Kazumasa Utashiro

LICENSE

Copyright © 2023-2024 Kazumasa Utashiro.

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