There is an ongoing outage on the primary CPAN mirror. It is possible to work around the issue by using MetaCPAN as a mirror.

NAME

App::Greple::xlate - modul dukungan terjemahan untuk 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 modul menemukan blok teks yang diinginkan dan menggantinya dengan teks terjemahan. Saat ini modul DeepL (deepl.pm), ChatGPT 4.1 (gpt4.pm), dan GPT-5 (gpt5.pm) diimplementasikan sebagai mesin back-end.

Jika Anda ingin menerjemahkan blok teks normal dalam sebuah dokumen yang ditulis dalam gaya pod Perl, gunakan perintah greple dengan modul xlate::deepl dan perl seperti ini:

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

Dalam perintah ini, string pola ^([\w\pP].*\n)+ berarti baris-baris berurutan yang dimulai dengan huruf angka dan tanda baca. Perintah ini menampilkan area yang akan diterjemahkan dengan sorotan. Opsi --all digunakan untuk menghasilkan seluruh teks.

Lalu tambahkan opsi --xlate untuk menerjemahkan area yang dipilih. Kemudian, ini akan menemukan bagian yang diinginkan dan menggantinya dengan keluaran perintah deepl.

Secara bawaan, teks asli dan terjemahan dicetak dalam format "penanda konflik" yang kompatibel dengan git(1). Dengan menggunakan format ifdef, Anda dapat mengambil bagian yang diinginkan dengan perintah unifdef(1) dengan mudah. Format keluaran dapat ditentukan dengan opsi --xlate-format.

Jika Anda ingin menerjemahkan seluruh teks, gunakan opsi --match-all. Ini adalah jalan pintas untuk menentukan pola (?s).+ yang mencocokkan seluruh teks.

Data format penanda konflik dapat dilihat dalam gaya berdampingan dengan perintah sdif bersama opsi -V. Karena tidak masuk akal untuk membandingkan per string, opsi --no-cdif direkomendasikan. Jika Anda tidak perlu mewarnai teks, tentukan --no-textcolor (atau --no-tc).

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

NORMALIZATION

Pemrosesan dilakukan dalam unit yang ditentukan, tetapi dalam kasus rangkaian beberapa baris teks yang tidak kosong, teks tersebut digabungkan menjadi satu baris. Operasi ini dilakukan sebagai berikut:

  • Hapus spasi putih di awal dan akhir setiap baris.

  • Jika sebuah baris diakhiri dengan karakter tanda baca lebar penuh, gabungkan dengan baris berikutnya.

  • Jika sebuah baris diakhiri dengan karakter lebar penuh dan baris berikutnya dimulai dengan karakter lebar penuh, gabungkan baris-baris tersebut.

  • Jika salah satu dari akhir atau awal baris bukan karakter lebar penuh, gabungkan dengan menyisipkan satu karakter spasi.

Data cache dikelola berdasarkan teks yang dinormalisasi, sehingga meskipun dilakukan modifikasi yang tidak mempengaruhi hasil normalisasi, data terjemahan yang di-cache tetap efektif.

Proses normalisasi ini dilakukan hanya untuk pola pertama (ke-0) dan bernomor genap. Dengan demikian, jika dua pola ditentukan seperti berikut, teks yang cocok dengan pola pertama akan diproses setelah normalisasi, dan tidak ada proses normalisasi yang dilakukan pada teks yang cocok dengan pola kedua.

greple -Mxlate -E normalized -E not-normalized

Oleh karena itu, gunakan pola pertama untuk teks yang akan diproses dengan menggabungkan beberapa baris menjadi satu baris, dan gunakan pola kedua untuk teks pra-format. Jika tidak ada teks yang cocok pada pola pertama, gunakan pola yang tidak mencocokkan apa pun, seperti (?!).

MASKING

Terkadang, ada bagian teks yang tidak ingin Anda terjemahkan. Misalnya, tag dalam berkas markdown. DeepL menyarankan bahwa dalam kasus seperti itu, bagian teks yang dikecualikan diubah menjadi tag XML, diterjemahkan, lalu dipulihkan setelah terjemahan selesai. Untuk mendukung ini, dimungkinkan untuk menentukan bagian yang akan dimask dari terjemahan.

--xlate-setopt maskfile=MASKPATTERN

Ini akan menafsirkan setiap baris dari berkas `MASKPATTERN` sebagai ekspresi reguler, menerjemahkan string yang cocok dengannya, dan mengembalikan setelah pemrosesan. Baris yang dimulai dengan # diabaikan.

Pola kompleks dapat ditulis dalam beberapa baris dengan baris baru yang di-escape dengan backslash.

Bagaimana teks diubah oleh masking dapat dilihat dengan opsi --xlate-mask.

Antarmuka ini bersifat eksperimental dan dapat berubah di masa mendatang.

OPTIONS

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

Panggil proses terjemahan untuk setiap area yang cocok.

Tanpa opsi ini, greple berperilaku sebagai perintah pencarian normal. Jadi Anda dapat memeriksa bagian mana dari berkas yang akan menjadi subjek terjemahan sebelum menjalankan pekerjaan yang sebenarnya.

Hasil perintah masuk ke standar keluaran, jadi arahkan ke berkas jika perlu, atau pertimbangkan untuk menggunakan modul App::Greple::update.

Opsi --xlate memanggil opsi --xlate-color dengan opsi --color=never.

Dengan opsi --xlate-fold, teks yang dikonversi dilipat berdasarkan lebar yang ditentukan. Lebar default adalah 70 dan dapat diatur oleh opsi --xlate-fold-width. Empat kolom dicadangkan untuk operasi run-in, jadi setiap baris dapat memuat paling banyak 74 karakter.

--xlate-engine=engine

Menentukan mesin terjemahan yang akan digunakan. Jika Anda menentukan modul mesin secara langsung, seperti -Mxlate::deepl, Anda tidak perlu menggunakan opsi ini.

Saat ini, mesin berikut tersedia

  • deepl: DeepL API

  • gpt3: gpt-3.5-turbo

  • gpt4: gpt-4.1

  • gpt4o: gpt-4o-mini

    Antarmuka gpt-4o tidak stabil dan tidak dapat dijamin berfungsi dengan benar saat ini.

  • gpt5: gpt-5

--xlate-labor
--xlabor

Alih-alih memanggil mesin terjemahan, Anda diharapkan bekerja secara manual. Setelah menyiapkan teks yang akan diterjemahkan, teks tersebut disalin ke papan klip. Anda diharapkan menempelkannya ke formulir, menyalin hasilnya ke papan klip, dan menekan return.

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

Tentukan bahasa target. Anda bisa mendapatkan bahasa yang tersedia dengan perintah deepl languages saat menggunakan mesin DeepL.

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

Tentukan format keluaran untuk teks asli dan terjemahan.

Format berikut selain xtxt mengasumsikan bahwa bagian yang akan diterjemahkan adalah kumpulan baris. Sebenarnya, memungkinkan untuk menerjemahkan hanya sebagian dari sebuah baris, tetapi menentukan format selain xtxt tidak akan menghasilkan hasil yang bermakna.

conflict, cm

Teks asli dan yang telah dikonversi dicetak dalam format penanda konflik git(1).

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

Anda dapat memulihkan berkas asli dengan perintah sed(1) berikutnya.

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

Teks asli dan terjemahan dikeluarkan dalam gaya container kustom markdown.

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

Teks di atas akan diterjemahkan menjadi berikut ini dalam HTML.

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

Jumlah tanda titik dua adalah 7 secara default. Jika Anda menentukan urutan tanda titik dua seperti :::::, itu digunakan sebagai pengganti 7 tanda titik dua.

ifdef

Teks asli dan yang telah dikonversi dicetak dalam format cpp(1) #ifdef.

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

Anda dapat mengambil hanya teks bahasa Jepang dengan perintah unifdef:

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

Teks asli dan teks yang dikonversi dicetak dipisahkan oleh satu baris kosong. Untuk space+, juga mengeluarkan baris baru setelah teks yang dikonversi.

xtxt

Jika formatnya xtxt (teks terjemahan) atau tidak dikenal, hanya teks terjemahan yang dicetak.

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

Tentukan panjang maksimum teks yang akan dikirim ke API sekaligus. Nilai default ditetapkan seperti untuk layanan akun DeepL gratis: 128K untuk API (--xlate) dan 5000 untuk antarmuka papan klip (--xlate-labor). Anda mungkin dapat mengubah nilai-nilai ini jika menggunakan layanan Pro.

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

Tentukan jumlah maksimum baris teks yang akan dikirim ke API sekaligus.

Setel nilai ini ke 1 jika Anda ingin menerjemahkan satu baris setiap kali. Opsi ini memiliki prioritas lebih tinggi daripada opsi --xlate-maxlen.

--xlate-prompt=text

Tentukan prompt kustom yang akan dikirim ke mesin terjemahan. Opsi ini hanya tersedia saat menggunakan mesin ChatGPT (gpt3, gpt4, gpt4o). Anda dapat menyesuaikan perilaku terjemahan dengan memberikan instruksi khusus kepada model AI. Jika prompt berisi %s, itu akan diganti dengan nama bahasa target.

--xlate-context=text

Tentukan informasi konteks tambahan yang akan dikirim ke mesin terjemahan. Opsi ini dapat digunakan beberapa kali untuk menyediakan beberapa string konteks. Informasi konteks membantu mesin terjemahan memahami latar belakang dan menghasilkan terjemahan yang lebih akurat.

--xlate-glossary=glossary

Tentukan ID glosarium yang akan digunakan untuk terjemahan. Opsi ini hanya tersedia saat menggunakan mesin DeepL. ID glosarium harus diperoleh dari akun DeepL Anda dan memastikan terjemahan yang konsisten untuk istilah-istilah tertentu.

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

Lihat hasil terjemahan secara waktu nyata di keluaran STDERR.

--xlate-stripe

Gunakan modul App::Greple::stripe untuk menampilkan bagian yang cocok dengan pola strip zebra. Ini berguna ketika bagian yang cocok tersambung berurutan.

Palet warna dialihkan sesuai dengan warna latar belakang terminal. Jika Anda ingin menentukan secara eksplisit, Anda dapat menggunakan --xlate-stripe-light atau --xlate-stripe-dark.

--xlate-mask

Lakukan fungsi masking dan tampilkan teks yang dikonversi apa adanya tanpa pemulihan.

--match-all

Tetapkan seluruh teks file sebagai area target.

--lineify-cm
--lineify-colon

Dalam kasus format cm dan colon, keluaran dipecah dan diformat baris demi baris. Oleh karena itu, jika hanya sebagian dari suatu baris yang akan diterjemahkan, hasil yang diharapkan tidak dapat diperoleh. Filter ini memperbaiki keluaran yang rusak karena menerjemahkan sebagian baris menjadi keluaran normal baris demi baris.

Dalam implementasi saat ini, jika beberapa bagian dari suatu baris diterjemahkan, bagian-bagian tersebut dikeluarkan sebagai baris independen.

CACHE OPTIONS

Modul xlate dapat menyimpan teks terjemahan yang di-cache untuk setiap file dan membacanya sebelum eksekusi untuk menghilangkan overhead permintaan ke server. Dengan strategi cache default auto, ia mempertahankan data cache hanya ketika file cache ada untuk file target.

Gunakan --xlate-cache=clear untuk memulai manajemen cache atau membersihkan semua data cache yang ada. Setelah dijalankan dengan opsi ini, file cache baru akan dibuat jika belum ada dan kemudian secara otomatis dipelihara setelahnya.

--xlate-cache=strategy
auto (Default)

Pertahankan file cache jika ada.

create

Buat file cache kosong dan keluar.

always, yes, 1

Pertahankan cache bagaimanapun juga selama target adalah file normal.

clear

Bersihkan data cache terlebih dahulu.

never, no, 0

Jangan pernah gunakan file cache meskipun ada.

accumulate

Secara default, data yang tidak digunakan dihapus dari file cache. Jika Anda tidak ingin menghapusnya dan tetap menyimpannya di file, gunakan accumulate.

--xlate-update

Opsi ini memaksa pembaruan file cache meskipun tidak diperlukan.

COMMAND LINE INTERFACE

Anda dapat dengan mudah menggunakan modul ini dari baris perintah dengan menggunakan perintah xlate yang disertakan dalam distribusi. Lihat halaman manual xlate untuk penggunaan.

Perintah xlate bekerja selaras dengan lingkungan Docker, jadi meskipun Anda tidak memasang apa pun secara lokal, Anda dapat menggunakannya selama Docker tersedia. Gunakan opsi -D atau -C.

Selain itu, karena makefile untuk berbagai gaya dokumen disediakan, penerjemahan ke bahasa lain dimungkinkan tanpa spesifikasi khusus. Gunakan opsi -M.

Anda juga dapat menggabungkan opsi Docker dan make sehingga Anda dapat menjalankan make di lingkungan Docker.

Menjalankan seperti xlate -C akan meluncurkan shell dengan repositori git working directory saat ini di-mount.

Baca artikel berbahasa Jepang di bagian "SEE ALSO" untuk detailnya.

EMACS

Muat file xlate.el yang disertakan dalam repositori untuk menggunakan perintah xlate dari editor Emacs. Fungsi xlate-region menerjemahkan region yang diberikan. Bahasa default adalah EN-US dan Anda dapat menentukan bahasa dengan memanggilnya menggunakan argumen prefix.

ENVIRONMENT

DEEPL_AUTH_KEY

Atur kunci autentikasi Anda untuk layanan DeepL.

OPENAI_API_KEY

Kunci autentikasi OpenAI.

INSTALL

CPANMINUS

$ cpanm App::Greple::xlate

TOOLS

Anda harus memasang alat baris perintah untuk DeepL dan ChatGPT.

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

App::Greple::xlate::gpt5

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.