NAME
App::Greple::xlate - μονάδα υποστήριξης μετάφρασης για το greple
SYNOPSIS
greple -Mxlate::deepl --xlate pattern target-file
greple -Mxlate::gpt4 --xlate pattern target-file
greple -Mxlate::gpt5 --xlate pattern target-file
greple -Mxlate --xlate-engine gpt5 --xlate pattern target-file
VERSION
Version 0.9914
DESCRIPTION
Greple xlate η μονάδα εντοπίζει τα επιθυμητά τμήματα κειμένου και τα αντικαθιστά με το μεταφρασμένο κείμενο. Προς το παρόν, οι μονάδες DeepL (deepl.pm), ChatGPT 4.1 (gpt4.pm) και GPT-5 (gpt5.pm) έχουν υλοποιηθεί ως μηχανές παρασκηνίου.
Αν θέλετε να μεταφράσετε κανονικά τμήματα κειμένου σε ένα έγγραφο γραμμένο στο στυλ pod της Perl, χρησιμοποιήστε την εντολή greple με τα modules xlate::deepl
και perl
όπως παρακάτω:
greple -Mxlate::deepl -Mperl --pod --re '^([\w\pP].*\n)+' --all foo.pm
Σε αυτή την εντολή, η συμβολοσειρά μοτίβου ^([\w\pP].*\n)+
σημαίνει διαδοχικές γραμμές που αρχίζουν με αλφαριθμητικό και σημείο στίξης. Αυτή η εντολή εμφανίζει την περιοχή προς μετάφραση με επισήμανση. Η επιλογή --all χρησιμοποιείται για την παραγωγή ολόκληρου του κειμένου.
Έπειτα προσθέστε την επιλογή --xlate
για να μεταφράσετε την επιλεγμένη περιοχή. Τότε, θα βρει τα επιθυμητά τμήματα και θα τα αντικαταστήσει με την έξοδο της εντολής deepl.
Από προεπιλογή, το αρχικό και το μεταφρασμένο κείμενο εκτυπώνεται σε μορφή "conflict marker" συμβατή με το git(1). Χρησιμοποιώντας τη μορφή ifdef
, μπορείτε να λάβετε το επιθυμητό μέρος εύκολα με την εντολή unifdef(1). Η μορφή εξόδου μπορεί να καθοριστεί με την επιλογή --xlate-format.
Αν θέλετε να μεταφράσετε ολόκληρο το κείμενο, χρησιμοποιήστε την επιλογή --match-all. Αυτό είναι μια συντόμευση για να καθορίσετε το μοτίβο (?s).+
που ταιριάζει σε ολόκληρο το κείμενο.
Τα δεδομένα σε μορφή conflict marker μπορούν να προβληθούν σε διάταξη δίπλα-δίπλα με την εντολή sdif και την επιλογή -V
. Εφόσον δεν έχει νόημα η σύγκριση σε βάση ανά-συμβολοσειρά, συνιστάται η επιλογή --no-cdif
. Αν δεν χρειάζεται να χρωματίσετε το κείμενο, καθορίστε --no-textcolor
(ή --no-tc
).
sdif -V --no-filename --no-tc --no-cdif data_shishin.deepl-EN-US.cm
NORMALIZATION
Η επεξεργασία γίνεται σε καθορισμένες μονάδες, αλλά στην περίπτωση ακολουθίας πολλαπλών γραμμών μη κενoύ κειμένου, αυτές μετατρέπονται μαζί σε μία μόνο γραμμή. Η λειτουργία εκτελείται ως εξής:
Αφαιρέστε τα κενά στην αρχή και στο τέλος κάθε γραμμής.
Αν μια γραμμή τελειώνει με χαρακτήρα σημείου στίξης πλήρους πλάτους, συγκολλήστε με την επόμενη γραμμή.
Αν μια γραμμή τελειώνει με χαρακτήρα πλήρους πλάτους και η επόμενη γραμμή αρχίζει με χαρακτήρα πλήρους πλάτους, συγκολλήστε τις γραμμές.
Αν είτε το τέλος είτε η αρχή μιας γραμμής δεν είναι χαρακτήρας πλήρους πλάτους, συγκολλήστε τις εισάγοντας έναν χαρακτήρα κενού.
Τα δεδομένα cache διαχειρίζονται βάσει του κανονικοποιημένου κειμένου, επομένως ακόμη κι αν γίνουν τροποποιήσεις που δεν επηρεάζουν τα αποτελέσματα κανονικοποίησης, τα αποθηκευμένα δεδομένα μετάφρασης θα παραμείνουν αποτελεσματικά.
Αυτή η διαδικασία κανονικοποίησης εκτελείται μόνο για το πρώτο (0ό) και τα ζυγά μοτίβα. Έτσι, αν καθοριστούν δύο μοτίβα ως εξής, το κείμενο που ταιριάζει με το πρώτο μοτίβο θα υποβληθεί σε επεξεργασία μετά την κανονικοποίηση, και δεν θα εκτελεστεί διαδικασία κανονικοποίησης στο κείμενο που ταιριάζει με το δεύτερο μοτίβο.
greple -Mxlate -E normalized -E not-normalized
Επομένως, χρησιμοποιήστε το πρώτο μοτίβο για κείμενο που πρόκειται να υποβληθεί σε επεξεργασία συνδυάζοντας πολλές γραμμές σε μία μόνο γραμμή, και χρησιμοποιήστε το δεύτερο μοτίβο για προ-μορφοποιημένο κείμενο. Αν δεν υπάρχει κείμενο που να ταιριάζει στο πρώτο μοτίβο, χρησιμοποιήστε ένα μοτίβο που δεν ταιριάζει με τίποτα, όπως το (?!)
.
MASKING
Περιστασιακά, υπάρχουν τμήματα κειμένου που δεν θέλετε να μεταφραστούν. Για παράδειγμα, ετικέτες σε αρχεία markdown. Η DeepL προτείνει ότι σε τέτοιες περιπτώσεις, το τμήμα του κειμένου που θα αποκλειστεί να μετατραπεί σε ετικέτες XML, να μεταφραστεί και στη συνέχεια να αποκατασταθεί μετά την ολοκλήρωση της μετάφρασης. Για να υποστηριχθεί αυτό, είναι δυνατό να καθοριστούν τα τμήματα που θα καλυφθούν (masked) από τη μετάφραση.
--xlate-setopt maskfile=MASKPATTERN
Αυτό θα ερμηνεύσει κάθε γραμμή του αρχείου `MASKPATTERN` ως κανονική έκφραση, θα μεταφράσει τις συμβολοσειρές που ταιριάζουν και θα τις επαναφέρει μετά την επεξεργασία. Γραμμές που αρχίζουν με #
αγνοούνται.
Μπορεί να γραφτεί σύνθετο μοτίβο σε πολλές γραμμές με newline διαφυγμένο με ανάστροφη κάθετο.
Το πώς μετασχηματίζεται το κείμενο μέσω masking μπορεί να φανεί με την επιλογή --xlate-mask.
Αυτό το περιβάλλον διεπαφής είναι πειραματικό και ενδέχεται να αλλάξει στο μέλλον.
OPTIONS
- --xlate
- --xlate-color
- --xlate-fold
- --xlate-fold-width=n (Default: 70)
-
Εκκινεί τη διαδικασία μετάφρασης για κάθε ταιριασμένη περιοχή.
Χωρίς αυτήν την επιλογή, το greple συμπεριφέρεται ως κανονική εντολή αναζήτησης. Έτσι μπορείτε να ελέγξετε ποιο μέρος του αρχείου θα αποτελέσει αντικείμενο μετάφρασης πριν εκκινήσετε την πραγματική εργασία.
Το αποτέλεσμα της εντολής πηγαίνει στο standard out, οπότε κάντε ανακατεύθυνση σε αρχείο αν χρειάζεται, ή σκεφτείτε να χρησιμοποιήσετε το module App::Greple::update.
Η επιλογή --xlate καλεί την επιλογή --xlate-color με την επιλογή --color=never.
Με την επιλογή --xlate-fold, το μετατρεπόμενο κείμενο διπλώνεται στο καθορισμένο πλάτος. Το προεπιλεγμένο πλάτος είναι 70 και μπορεί να οριστεί με την επιλογή --xlate-fold-width. Τέσσερις στήλες δεσμεύονται για λειτουργία run-in, οπότε κάθε γραμμή μπορεί να χωρέσει το πολύ 74 χαρακτήρες.
- --xlate-engine=engine
-
Καθορίζει τη μηχανή μετάφρασης που θα χρησιμοποιηθεί. Αν καθορίσετε απευθείας το module της μηχανής, όπως
-Mxlate::deepl
, δεν χρειάζεται να χρησιμοποιήσετε αυτήν την επιλογή.Αυτή τη στιγμή, οι ακόλουθες μηχανές είναι διαθέσιμες
deepl: DeepL API
gpt3: gpt-3.5-turbo
gpt4: gpt-4.1
gpt4o: gpt-4o-mini
Η διεπαφή του gpt-4o είναι ασταθής και δεν μπορεί να εγγυηθεί ότι θα λειτουργεί σωστά προς το παρόν.
gpt5: gpt-5
- --xlate-labor
- --xlabor
-
Αντί να καλέσετε μηχανή μετάφρασης, αναμένεται να εργαστείτε χειροκίνητα. Αφού προετοιμάσετε το κείμενο προς μετάφραση, αντιγράφεται στο πρόχειρο. Αναμένεται να το επικολλήσετε στη φόρμα, να αντιγράψετε το αποτέλεσμα στο πρόχειρο και να πατήσετε return.
- --xlate-to (Default:
EN-US
) -
Καθορίστε τη γλώσσα-στόχο. Μπορείτε να λάβετε τις διαθέσιμες γλώσσες με την εντολή
deepl languages
όταν χρησιμοποιείτε τη μηχανή DeepL. - --xlate-format=format (Default:
conflict
) -
Καθορίστε τη μορφή εξόδου για το αρχικό και το μεταφρασμένο κείμενο.
Οι ακόλουθες μορφές εκτός από το
xtxt
υποθέτουν ότι το τμήμα προς μετάφραση είναι μια συλλογή γραμμών. Στην πράξη, είναι δυνατό να μεταφραστεί μόνο ένα μέρος μιας γραμμής, αλλά ο καθορισμός μορφής διαφορετικής από τοxtxt
δεν θα παράγει ουσιαστικά αποτελέσματα.- conflict, cm
-
Το αρχικό και το μετατρεπόμενο κείμενο εκτυπώνονται σε μορφή conflict marker του git(1).
<<<<<<< ORIGINAL original text ======= translated Japanese text >>>>>>> JA
Μπορείτε να ανακτήσετε το αρχικό αρχείο με την επόμενη εντολή sed(1).
sed -e '/^<<<<<<< /d' -e '/^=======$/,/^>>>>>>> /d'
- colon, :::::::
-
Το αρχικό και το μεταφρασμένο κείμενο εξάγονται σε στυλ custom container του markdown.
::::::: ORIGINAL original text ::::::: ::::::: JA translated Japanese text :::::::
Το παραπάνω κείμενο θα μετατραπεί ως εξής σε HTML.
<div class="ORIGINAL"> original text </div> <div class="JA"> translated Japanese text </div>
Ο αριθμός των άνω και κάτω τελειών είναι 7 από προεπιλογή. Αν καθορίσετε ακολουθία άνω και κάτω τελειών όπως
:::::
, αυτή χρησιμοποιείται αντί για 7 άνω και κάτω τελείες. - ifdef
-
Το αρχικό και το μετατρεπόμενο κείμενο εκτυπώνονται σε μορφή cpp(1)
#ifdef
.#ifdef ORIGINAL original text #endif #ifdef JA translated Japanese text #endif
Μπορείτε να ανακτήσετε μόνο το ιαπωνικό κείμενο με την εντολή unifdef:
unifdef -UORIGINAL -DJA foo.ja.pm
- space
- space+
-
Το αρχικό και το μετατρεπόμενο κείμενο εκτυπώνονται χωρισμένα από μια κενή γραμμή. Για το
space+
, εξάγει επίσης μια αλλαγή γραμμής μετά το μετατρεπόμενο κείμενο. - xtxt
-
Αν η μορφή είναι
xtxt
(μεταφρασμένο κείμενο) ή άγνωστη, εκτυπώνεται μόνο το μεταφρασμένο κείμενο.
- --xlate-maxlen=chars (Default: 0)
-
Καθορίστε το μέγιστο μήκος κειμένου που θα αποστέλλεται στο API κάθε φορά. Η προεπιλεγμένη τιμή έχει οριστεί για τον δωρεάν λογαριασμό DeepL: 128K για το API (--xlate) και 5000 για τη διεπαφή προχείρου (--xlate-labor). Ίσως μπορείτε να αλλάξετε αυτές τις τιμές αν χρησιμοποιείτε την υπηρεσία Pro.
- --xlate-maxline=n (Default: 0)
-
Καθορίστε το μέγιστο πλήθος γραμμών κειμένου που θα αποστέλλεται στο API κάθε φορά.
Ορίστε αυτήν την τιμή σε 1 αν θέλετε να μεταφράζετε μία γραμμή κάθε φορά. Αυτή η επιλογή υπερισχύει της επιλογής
--xlate-maxlen
. - --xlate-prompt=text
-
Καθορίστε ένα προσαρμοσμένο prompt που θα σταλεί στη μηχανή μετάφρασης. Αυτή η επιλογή είναι διαθέσιμη μόνο όταν χρησιμοποιούνται μηχανές ChatGPT (gpt3, gpt4, gpt4o). Μπορείτε να προσαρμόσετε τη συμπεριφορά της μετάφρασης παρέχοντας συγκεκριμένες οδηγίες στο μοντέλο AI. Αν το prompt περιέχει
%s
, θα αντικατασταθεί με το όνομα της γλώσσας-στόχου. - --xlate-context=text
-
Καθορίστε πρόσθετες πληροφορίες συμφραζομένων που θα σταλούν στη μηχανή μετάφρασης. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί πολλές φορές για να δοθούν πολλαπλές συμβολοσειρές συμφραζομένων. Οι πληροφορίες συμφραζομένων βοηθούν τη μηχανή μετάφρασης να κατανοήσει το υπόβαθρο και να παράγει πιο ακριβείς μεταφράσεις.
- --xlate-glossary=glossary
-
Καθορίστε ένα αναγνωριστικό γλωσσαρίου που θα χρησιμοποιηθεί για τη μετάφραση. Αυτή η επιλογή είναι διαθέσιμη μόνο όταν χρησιμοποιείται η μηχανή DeepL. Το αναγνωριστικό γλωσσαρίου πρέπει να ληφθεί από τον λογαριασμό σας στο DeepL και εξασφαλίζει συνεπή μετάφραση συγκεκριμένων όρων.
- --[no-]xlate-progress (Default: True)
-
Δείτε το αποτέλεσμα της μετάφρασης σε πραγματικό χρόνο στην έξοδο STDERR.
- --xlate-stripe
-
Χρησιμοποιήστε τη μονάδα App::Greple::stripe για να προβάλετε το ταιριαστό τμήμα με τρόπο ζέβρας. Αυτό είναι χρήσιμο όταν τα ταιριαστά τμήματα είναι ενωμένα διαδοχικά.
Η παλέτα χρωμάτων αλλάζει ανάλογα με το χρώμα φόντου του τερματικού. Αν θέλετε να το ορίσετε ρητά, μπορείτε να χρησιμοποιήσετε --xlate-stripe-light ή --xlate-stripe-dark.
- --xlate-mask
-
Εκτελέστε τη λειτουργία masking και εμφανίστε το μετατρεπόμενο κείμενο όπως είναι χωρίς αποκατάσταση.
- --match-all
-
Ορίστε ολόκληρο το κείμενο του αρχείου ως περιοχή στόχο.
- --lineify-cm
- --lineify-colon
-
Στις μορφές
cm
καιcolon
, η έξοδος χωρίζεται και μορφοποιείται γραμμή προς γραμμή. Επομένως, αν πρόκειται να μεταφραστεί μόνο μέρος μιας γραμμής, δεν μπορεί να ληφθεί το αναμενόμενο αποτέλεσμα. Αυτά τα φίλτρα διορθώνουν έξοδο που έχει καταστραφεί μεταφράζοντας μέρος μιας γραμμής σε κανονική έξοδο ανά γραμμή.Στην τρέχουσα υλοποίηση, αν μεταφραστούν πολλαπλά τμήματα μιας γραμμής, εξάγονται ως ανεξάρτητες γραμμές.
CACHE OPTIONS
Η μονάδα xlate μπορεί να αποθηκεύει προσωρινά μεταφρασμένο κείμενο για κάθε αρχείο και να το διαβάζει πριν την εκτέλεση για να εξαλείψει το κόστος ερωτήσεων προς τον διακομιστή. Με την προεπιλεγμένη στρατηγική cache auto
, διατηρεί δεδομένα cache μόνο όταν υπάρχει αρχείο cache για το αρχείο-στόχο.
Χρησιμοποιήστε το --xlate-cache=clear για να εκκινήσετε τη διαχείριση της προσωρινής μνήμης ή για να καθαρίσετε όλα τα υπάρχοντα δεδομένα cache. Μόλις εκτελεστεί με αυτήν την επιλογή, θα δημιουργηθεί νέο αρχείο cache αν δεν υπάρχει και στη συνέχεια θα συντηρείται αυτόματα.
- --xlate-cache=strategy
-
auto
(Default)-
Διατηρήστε το αρχείο cache αν υπάρχει.
create
-
Δημιουργήστε κενό αρχείο cache και έξοδος.
always
,yes
,1
-
Διατήρηση της προσωρινής μνήμης (cache) εφόσον ο προορισμός είναι κανονικό αρχείο.
clear
-
Καθαρίστε πρώτα τα δεδομένα της προσωρινής μνήμης.
never
,no
,0
-
Να μην χρησιμοποιείται ποτέ αρχείο cache, ακόμα κι αν υπάρχει.
accumulate
-
Σύμφωνα με την προεπιλεγμένη συμπεριφορά, τα μη χρησιμοποιούμενα δεδομένα αφαιρούνται από το αρχείο cache. Αν δεν θέλετε να τα αφαιρέσετε και να τα διατηρήσετε στο αρχείο, χρησιμοποιήστε το
accumulate
.
- --xlate-update
-
Αυτή η επιλογή επιβάλλει την ενημέρωση του αρχείου cache ακόμα κι αν δεν είναι απαραίτητο.
COMMAND LINE INTERFACE
Μπορείτε εύκολα να χρησιμοποιήσετε αυτό το module από τη γραμμή εντολών χρησιμοποιώντας την εντολή xlate
που περιλαμβάνεται στη διανομή. Δείτε τη σελίδα man xlate
για χρήση.
Η εντολή xlate
λειτουργεί σε συνδυασμό με το περιβάλλον Docker, οπότε ακόμα κι αν δεν έχετε τίποτα εγκατεστημένο τοπικά, μπορείτε να τη χρησιμοποιήσετε όσο είναι διαθέσιμο το Docker. Χρησιμοποιήστε την επιλογή -D
ή -C
.
Επίσης, επειδή παρέχονται makefiles για διάφορα στυλ εγγράφων, είναι δυνατή η μετάφραση σε άλλες γλώσσες χωρίς ειδικές ρυθμίσεις. Χρησιμοποιήστε την επιλογή -M
.
Μπορείτε επίσης να συνδυάσετε τις επιλογές Docker και make
ώστε να εκτελείτε το make
σε περιβάλλον Docker.
Εκτέλεση όπως xlate -C
θα εκκινήσει ένα κέλυφος με το τρέχον αποθετήριο git του χώρου εργασίας προσαρτημένο.
Διαβάστε το ιαπωνικό άρθρο στην ενότητα "SEE ALSO" για λεπτομέρειες.
EMACS
Φορτώστε το αρχείο xlate.el που περιλαμβάνεται στο αποθετήριο για να χρησιμοποιήσετε την εντολή xlate
από τον επεξεργαστή Emacs. Η συνάρτηση xlate-region
μεταφράζει την επιλεγμένη περιοχή. Η προεπιλεγμένη γλώσσα είναι EN-US
και μπορείτε να καθορίσετε γλώσσα καλώντας τη με prefix argument.
ENVIRONMENT
- DEEPL_AUTH_KEY
-
Ορίστε το κλειδί ταυτοποίησης για την υπηρεσία DeepL.
- OPENAI_API_KEY
-
Κλειδί ταυτοποίησης OpenAI.
INSTALL
CPANMINUS
$ cpanm App::Greple::xlate
TOOLS
Πρέπει να εγκαταστήσετε εργαλεία γραμμής εντολών για DeepL και ChatGPT.
https://github.com/DeepLcom/deepl-python
https://github.com/tecolicom/App-gpty
SEE ALSO
https://hub.docker.com/r/tecolicom/xlate
Εικόνα κοντέινερ Docker.
https://github.com/DeepLcom/deepl-python
Βιβλιοθήκη Python και εντολή CLI του DeepL.
https://github.com/openai/openai-python
Βιβλιοθήκη Python της OpenAI
https://github.com/tecolicom/App-gpty
Διεπαφή γραμμής εντολών OpenAI
-
Δείτε το εγχειρίδιο greple για λεπτομέρειες σχετικά με το μοτίβο στόχου κειμένου. Χρησιμοποιήστε τις επιλογές --inside, --outside, --include, --exclude για να περιορίσετε την περιοχή αντιστοίχισης.
-
Μπορείτε να χρησιμοποιήσετε το module
-Mupdate
για να τροποποιήσετε αρχεία με το αποτέλεσμα της εντολής greple. -
Χρησιμοποιήστε το sdif για να εμφανίσετε τη μορφή δεικτών σύγκρουσης σε παράθεση με την επιλογή -V.
-
Το module Greple stripe χρησιμοποιείται με την επιλογή --xlate-stripe.
ARTICLES
https://qiita.com/kaz-utashiro/items/1c1a51a4591922e18250
Greple module για μετάφραση και αντικατάσταση μόνο των απαραίτητων τμημάτων με το DeepL API (στα Ιαπωνικά)
https://qiita.com/kaz-utashiro/items/a5e19736416ca183ecf6
Δημιουργία εγγράφων σε 15 γλώσσες με το module DeepL API (στα Ιαπωνικά)
https://qiita.com/kaz-utashiro/items/1b9e155d6ae0620ab4dd
Περιβάλλον Docker αυτόματης μετάφρασης με το DeepL API (στα Ιαπωνικά)
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.