App-Greple-xlate

 view release on metacpan or  search on metacpan

i18n/src/xlate.gpt5-RO.pod  view on Meta::CPAN

Datele în format conflict marker pot fi vizualizate în stil side-by-side cu comanda L<sdif|App::sdif> și opțiunea C<-V>. Deoarece nu are sens să comparați pe bază de șir, se recomandă opțiunea C<--no-cdif>. Dacă nu aveți nevoie să colora...

    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

Procesarea se face în unitățile specificate, dar în cazul unei secvențe de mai multe linii de text ne-gol, acestea sunt convertite împreună într-o singură linie. Această operație se efectuează după cum urmează:

=over 2

=item *

Eliminați spațiile albe de la începutul și sfârșitul fiecărei linii.

=item *

Dacă o linie se termină cu un caracter de punctuație full-width, concatenați cu linia următoare.

=item *

Dacă o linie se termină cu un caracter full-width și linia următoare începe cu un caracter full-width, concatenați liniile.

=item *

Dacă fie sfârșitul, fie începutul unei linii nu este un caracter full-width, concatenați-le inserând un caracter spațiu.

=back

Datele din cache sunt gestionate pe baza textului normalizat, astfel încât, chiar dacă se fac modificări care nu afectează rezultatele normalizării, datele de traducere din cache vor rămâne valabile.

Acest proces de normalizare se efectuează numai pentru modelul (tiparul) primul (al 0-lea) și pentru cele cu număr par. Astfel, dacă sunt specificate două tipare ca mai jos, textul care se potrivește primului tipar va fi procesat după normaliz...

    greple -Mxlate -E normalized -E not-normalized

Prin urmare, folosiți primul tipar pentru textul care urmează să fie procesat prin combinarea mai multor linii într-o singură linie și folosiți al doilea tipar pentru text preformatat. Dacă nu există text care să se potrivească primului ti...

=head1 MASKING

Ocazional, există părți din text pe care nu doriți să le traduceți. De exemplu, etichete în fișiere markdown. DeepL sugerează ca, în astfel de cazuri, partea de text care trebuie exclusă să fie convertită în etichete XML, tradusă, apoi...

    --xlate-setopt maskfile=MASKPATTERN

Aceasta va interpreta fiecare linie a fișierului C<MASKPATTERN> ca o expresie regulată, va traduce șirurile care se potrivesc cu aceasta și va reveni după procesare. Liniile care încep cu C<#> sunt ignorate.

Un tipar complex poate fi scris pe mai multe linii cu newline scăpat prin backslash.

Modul în care textul este transformat prin mascarea poate fi văzut prin opțiunea B<--xlate-mask>.

Substituenții de mască sunt etichete XML autoînchise, bine formate, precum C<< <m id="1" /> >>. Motoarele LLM bazate pe JSON primesc etichetele în tablourile lor de intrare. Pentru DeepL, o cerere care conține etichete marcatoare este scăpată ...

Mascarea protejează marcajul împotriva traducerii. Pentru a ascunde șirurile sensibile de serviciul de traducere însuși, consultați L</ANONYMIZATION AND TEMPLATES>; ambele pot fi utilizate împreună.

Această interfață este experimentală și poate suferi modificări în viitor.

=head1 ANONYMIZATION AND TEMPLATES

Șirurile sensibile pot fi ascunse înainte de a fi trimise către API-ul de traducere și restaurate în ieșire. Sunt disponibile trei surse de reguli de anonimizare: un fișier dicționar (B<--xlate-anonymize>), marcaje inline în documentul însu...

Pentru documente de tip formular (rapoarte trimestriale și altele asemenea), definiți actorii în avans și faceți referire la ei în corp:

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

Traduceți șablonul o singură dată pentru fiecare limbă cu C<--xlate-template> (și C<--xlate-frontmatter> când valorile sunt păstrate în fișier), apoi redați fiecare caz cu modul autonom B<pandoc-embedz> -- valorile de sub C<global:> dintr-...

    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

Pentru marcaje inline, furnizarea unei configurații de definiție a macrocomenzilor face ca același șablon tradus să redea fie numele reale, fie o versiune redactată:

    # macros.yaml           # macros-redacted.yaml
    preamble: |             preamble: |
      {% macro person(name) %}{{ name }}{% endmacro %}
                              {% macro person(name) %}(関係者){% endmacro %}

Excludeți blocurile embedz de la traducere atunci când un document le conține:

    --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)

Pornește procesul de traducere pentru fiecare zonă potrivită.

Fără această opțiune, B<greple> se comportă ca o comandă de căutare normală. Astfel puteți verifica ce parte a fișierului va face obiectul traducerii înainte de a porni munca efectivă.

Rezultatul comenzii merge la ieșirea standard, deci redirecționați către fișier dacă este necesar sau luați în considerare folosirea modulului L<App::Greple::update>.

Opțiunea B<--xlate> apelează opțiunea B<--xlate-color> cu opțiunea B<--color=never>.

Cu opțiunea B<--xlate-fold>, textul convertit este împărțit la lățimea specificată. Lățimea implicită este 70 și poate fi setată prin opțiunea B<--xlate-fold-width>. Patru coloane sunt rezervate pentru operația run-in, astfel încât fi...

=item B<--xlate-engine>=I<engine>

Specifică motorul de traducere care va fi utilizat.

În acest moment, sunt disponibile următoarele motoare

=over 2

=item * B<gpt5>: gpt-5.6-terra (via the C<llm> command)

i18n/src/xlate.gpt5-RO.pod  view on Meta::CPAN


Textul original și cel convertit sunt tipărite în formatul L<cpp(1)> C<#ifdef>.

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

Puteți prelua doar textul japonez cu comanda B<unifdef>:

    unifdef -UORIGINAL -DJA foo.ja.pm

=item B<space>

=item B<space+>

Textul original și cel convertit sunt tipărite separate de o linie goală. Pentru C<space+>, se afișează și un rând nou după textul convertit.

=item B<xtxt>

Dacă formatul este C<xtxt> (text tradus) sau necunoscut, se tipărește doar textul tradus.

=back

=item B<--xlate-maxlen>=I<chars> (Default: 0)

Specificați lungimea maximă a textului care va fi trimis la API dintr-o singură dată. Valoarea implicită 0 înseamnă limita proprie a motorului: pentru serviciul contului DeepL gratuit, aceasta este 128K pentru API (B<--xlate>) și 5000 pentru ...

=item B<--xlate-maxline>=I<n> (Default: 0)

Specificați numărul maxim de linii de text care vor fi trimise la API dintr-o singură dată.

Setați această valoare la 1 dacă doriți să traduceți câte o linie pe rând. Această opțiune are prioritate față de opțiunea C<--xlate-maxlen>.

=item B<--xlate-prompt>=I<text>

Specificați un prompt personalizat care să fie trimis motorului de traducere. Această opțiune este disponibilă pentru motoarele LLM (C<gpt3>, C<gpt4o>, C<gpt5>), dar nu pentru DeepL. Puteți personaliza comportamentul traducerii furnizând instr...

=item B<--xlate-context>=I<text>

Specificați informații contextuale suplimentare care să fie trimise motorului de traducere. Această opțiune poate fi utilizată de mai multe ori pentru a furniza multiple șiruri de context. Informațiile de context ajută motorul de traducere s...

=item B<--xlate-context-window>=I<n>

(Context-aware engines only, e.g. C<gpt5> on the llm backend)
Numărul de blocuri traduse înconjurătoare transmise ca context de referință la retraducerea blocurilor modificate (implicit 2). Contextul include È™i textul sursă brut din jurul regiunii modificate (titluri, structura listelor, legende) È™i, cÃ...

=item B<--xlate-cache-seed>=I<file>

Inițializați cache-ul unui document nou din fișierul cache al altui document. Util pentru rapoarte periodice: inițializați cache-ul noului număr cu cel al numărului anterior, astfel încât paragrafele neschimbate să nu fie retraduse și para...

=item B<--xlate-anonymize>=I<file>

Anonimizați șirurile sensibile înainte ca acestea să fie trimise către API-ul de traducere și restaurați-le în ieșire. Fișierul dicționar oferă câte o intrare pentru fiecare element: în JSON (canonic, generabil de mașină)

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

sau într-un format simplu pe linii (C<category pattern>, C</.../> pentru regex). Fiecare element este înlocuit cu o etichetă de categorie precum C<< <person id="1" /> >>; același șir primește întotdeauna aceeași etichetă, astfel încât mode...

Un dicționar poate fi generat de un instrument extern -- de exemplu un model local care extrage entități sensibile:

    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 ...

Un BOM UTF-8 în fișier este tolerat. Valorile din formatul de linie front matter pot avea un comentariu final numai pe propria lor linie, nu după valoare.

=item B<--xlate-anonymize-mark>[=I<regex>]

ColectaÈ›i intrări de anonimizare din marcaje inline în documentul însuÈ™i. MarcaÈ›i prima apariÈ›ie ca C<{{ person("山田太郎") }}> È™i fiecare apariÈ›ie a È™irului în întregul document este anonimizată. Marcajul însuÈ™i rămâne în sursÄ...

Rețineți că, pentru o opțiune cu valoare opțională ca aceasta, un argument de fișier următor ar fi luat drept valoare: scrieți C<--xlate-anonymize-mark=> (cu un C<=> final) când folosiți notația implicită.

Notații alternative pot fi configurate, de exemplu C<< --xlate-anonymize-mark='@@(?<category>[a-z][a-z0-9_]*):(?<text>[^\n]+?)@@' >> pentru marcaje în stil C<@@person:NAME@@>, sau o formă de comentariu HTML care rămâne invizibilă în Markdown r...

=item B<--xlate-template>[=I<regex>]

Tratați expresiile de șablon (implicit: Jinja2 C<{{ ... }}>, C<{% ... %}>, C<{# ... #}>) ca substituenți opaci: instruiți modelul să le copieze neschimbate și verificați, pentru fiecare bloc, că răspunsul conține exact aceleași expresii, f...

Rețineți că, în cazul unei opțiuni cu valoare opțională ca aceasta, un argument de fișier care urmează ar fi luat drept valoare: scrieți C<--xlate-template=> (cu un C<=> la sfârșit) când utilizați notația implicită.

=item B<--xlate-frontmatter>

Tratați un bloc inițial C<---> ... C<---> ca front matter YAML: excludeți-l de la traducere și din feliile de context din faza 2 și adăugați valorile sale plate C<key: value> la regulile de anonimizare (categoria C<var>) ca plasă de siguranț...

Lăsați întotdeauna o linie goală după C<---> de închidere. Cu un tipar de potrivire de tip paragraf, front matter-ul care intră direct în textul corpului formează un singur bloc suprapus pe care excluderea nu îl poate suprima (în acest caz...

=item B<--xlate-glossary>=I<glossary>

Specificați un ID de glosar care să fie utilizat pentru traducere. Această opțiune este disponibilă doar atunci când se folosește motorul DeepL. ID-ul glosarului trebuie obținut din contul dvs. DeepL și asigură traducerea consecventă a ter...

=item B<--xlate-dryrun>

Nu apelați API-ul de traducere; în schimb, afișați prin afișajul de progres fiecare payload exact așa cum ar fi transmis (după anonimizare și mascare). Util pentru a verifica ce părăsește mașina și pentru a estima costul unei rulări.

=item B<-->[B<no->]B<xlate-progress> (Default: True)

Vedeți rezultatul traducerii în timp real în ieșirea STDERR. Payload-ul C<From> este afișat așa cum a fost transmis, după anonimizare și mascare.

=item B<--xlate-review>

Pentru un bloc modificat unu-la-unu, afișați cel mai mic segment contiguu modificat din sursa veche și cea nouă, urmat de segmentul corespunzător din traducerea veche și cea nouă. Raportul este scris în STDERR, nu efectuează niciun apel API ...

=item B<--xlate-stripe>

Folosiți modulul L<App::Greple::stripe> pentru a afișa partea potrivită în stil zebra striping. Acest lucru este util atunci când părțile potrivite sunt conectate consecutiv.

Paleta de culori este comutată în funcție de culoarea fundalului terminalului. Dacă doriți să specificați explicit, puteți folosi B<--xlate-stripe-light> sau B<--xlate-stripe-dark>.

=item B<--xlate-mask>

Efectuați funcția de mascarea și afișați textul convertit așa cum este, fără restaurare.

=item B<--match-all>

Setați întregul text al fișierului ca zonă țintă.



( run in 0.916 second using v1.01-cache-2.11-cpan-b16cb0d3907 )