NAME

App::Greple::xlate - greple için çeviri desteği modülü

SYNOPSIS

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

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

VERSION

Version 0.41

DESCRIPTION

Greple xlate modülü istenilen metin bloklarını bulur ve bunları çevrilmiş metinle değiştirir. Şu anda DeepL (deepl.pm) ve ChatGPT (gpt3.pm) modülleri arka uç motor olarak uygulanmıştır. Ayrıca gpt-4 ve gpt-4o için deneysel destek de bulunmaktadır.

Eğer Perl'in pod stiliyle yazılmış bir belgedeki normal metin bloklarını çevirmek istiyorsanız, şu şekilde greple komutunu xlate::deepl ve perl modülü ile kullanın:

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

Bu komutta, desen dizesi ^([\w\pP].*\n)+ alfa-nümerik ve noktalama işareti harfi ile başlayan ardışık satırları ifade eder. Bu komut, çevrilecek alanı vurgular.

Ardından seçilen alanı çevirmek için --xlate seçeneğini ekleyin. Ardından, istenen bölümleri bulacak ve bunları deepl komutunun çıktısıyla değiştirecektir.

Varsayılan olarak, orijinal ve çevrilmiş metin git(1) ile uyumlu "çatışma işaretçisi" formatında yazdırılır. ifdef formatını kullanarak, istediğiniz bölümü unifdef(1) komutuyla kolayca alabilirsiniz. Çıktı formatı --xlate-format seçeneğiyle belirtilebilir.

Tüm metni çevirmek isterseniz, --match-all seçeneğini kullanın. Bu, tüm metni eşleştiren (?s).+ desenini belirtmek için bir kısayoldur.

Çatışma işaretçisi biçim veri, -V seçeneği ile sdif komutuyla yan yana stilinde görüntülenebilir. Satır bazında karşılaştırma yapmanın anlamsız olduğu için --no-cdif seçeneği önerilir. Metni renklendirmeniz gerekmiyorsa, --no-textcolor (veya --no-tc) belirtin.

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

NORMALIZATION

İşleme belirtilen birimlerde yapılır, ancak birden fazla satırın ardışık olarak işlenmesi durumunda, bunlar birlikte tek bir satıra dönüştürülür. Bu işlem şu şekilde gerçekleştirilir:

  • Her satırın başında ve sonundaki boşlukları kaldırın.

  • Eğer bir satır tam genişlikte bir noktalama işareti karakteri ile biterse, bir sonraki satırla birleştirin.

  • Bir satır tam genişlikli bir karakterle biterse ve bir sonraki satır tam genişlikli bir karakterle başlarsa, satırları birleştirin.

  • Bir satırın sonu veya başı tam genişlikli bir karakter değilse, aralarına bir boşluk karakteri ekleyerek birleştirin.

Önbellek verileri, normalize edilmiş metne dayalı olarak yönetilir, bu nedenle normalleştirme sonuçlarını etkilemeyen değişiklikler yapılsa bile, önbelleğe alınan çeviri verileri hala etkilidir.

Bu normalleştirme işlemi sadece ilk (0'ıncı) ve çift numaralı desen için gerçekleştirilir. Dolayısıyla, iki desen şu şekilde belirlenmişse, ilk desene uyan metin normalleştirmenin ardından işlenecek ve ikinci desene uyan metin üzerinde herhangi bir normalleştirme işlemi gerçekleştirilmeyecektir.

greple -Mxlate -E normalized -E not-normalized

Bu nedenle, birden fazla satırı tek bir satıra birleştirerek işlenecek metin için ilk deseni kullanın ve önceden biçimlendirilmiş metin için ikinci deseni kullanın. İlk desende eşleşecek metin yoksa, hiçbir şeyi eşleştirmeyen bir desen kullanın, örneğin (?!).

MASKING

Ara sıra, çevrilmesini istemediğiniz metin parçaları olabilir. Örneğin, markdown dosyalarındaki etiketler. DeepL, bu tür durumlarda çevrilmemesi gereken metin parçasının dışlanacak kısmının XML etiketlerine dönüştürülmesini, çevirilmesini ve ardından çeviri işlemi tamamlandıktan sonra geri yüklenmesini önerir. Bunu desteklemek için çeviriden saklanacak kısımların belirtilebilmesi mümkündür.

--xlate-setopt maskfile=MASKPATTERN

Bu, `MASKPATTERN` dosyasının her satırını bir düzenli ifade olarak yorumlayacak, eşleşen dizeleri çevirecek ve işlem sonrasında geri dönecektir. # ile başlayan satırlar görmezden gelinir.

Karmaşık desen, ters eğik çizgi ile kaçış karakteri kullanılarak birden fazla satıra yazılabilir.

Metnin maskeleme ile nasıl dönüştürüldüğü, --xlate-mask seçeneği ile görülebilir.

Bu arayüz deneyseldir ve gelecekte değişebilir.

OPTIONS

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

Her eşleşen alan için çeviri sürecini başlatın.

Bu seçenek olmadan, greple normal bir arama komutu gibi davranır. Bu nedenle, gerçek çalışmayı başlatmadan önce dosyanın hangi bölümünün çeviri konusu olacağını kontrol edebilirsiniz.

Komut sonucu standart çıktıya gider, bu nedenle gerekiyorsa dosyaya yönlendirin veya App::Greple::update modülünü kullanmayı düşünün.

--xlate seçeneği --xlate-color seçeneğini --color=never seçeneğiyle çağırır.

--xlate-fold seçeneğiyle dönüştürülen metin belirtilen genişlikte katlanır. Varsayılan genişlik 70'tir ve --xlate-fold-width seçeneğiyle ayarlanabilir. Dört sütun, çalıştırma işlemi için ayrılmıştır, bu nedenle her satır en fazla 74 karakter tutabilir.

--xlate-engine=engine

Kullanılacak çeviri motorunu belirtir. -Mxlate::deepl gibi doğrudan motor modülünü belirtirseniz, bu seçeneği kullanmanıza gerek yoktur.

Şu anda, aşağıdaki motorlar mevcuttur

  • deepl: DeepL API

  • gpt3: gpt-3.5-turbo

  • gpt4: gpt-4-turbo

  • gpt4o: gpt-4o-mini

    gpt-4o'nun arayüzü şu anda kararlı değildir ve doğru çalışacağı garanti edilemez.

--xlate-labor
--xlabor

Çeviri motorunu çağırmak yerine, sizin çalışmanız beklenmektedir. Çevrilecek metni hazırladıktan sonra, metin panosuna kopyalanır. Metni forma yapıştırmanız, sonucu metin panosuna kopyalamanız ve enter tuşuna basmanız beklenmektedir.

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

Hedef dilini belirtin. DeepL motorunu kullanırken deepl languages komutuyla mevcut dilleri alabilirsiniz.

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

Orijinal ve çevrilmiş metin için çıktı formatını belirtin.

xtxt dışındaki aşağıdaki formatlar, çevrilecek kısmın bir dizi satır olduğunu varsayar. Aslında, bir satırın sadece bir kısmını çevirmek mümkündür ve xtxt dışındaki bir format belirtmek anlamlı sonuçlar üretmeyecektir.

conflict, cm

Orjinal ve çevrilmiş metin git(1) çakışma işaretçisi formatında yazdırılır.

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

Orijinal dosyayı aşağıdaki sed(1) komutuyla geri alabilirsiniz.

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

```markdown

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

Bu şu demektir:

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

Varsayılan olarak iki nokta üst üste sayısı 7'dir. Eğer ::::: gibi iki nokta üst üste dizisi belirtirseniz, bu 7 iki nokta üst üste yerine kullanılır.

ifdef

Orjinal ve çevrilmiş metin cpp(1) #ifdef formatında yazdırılır.

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

unifdef komutuyla yalnızca Japonca metni alabilirsiniz:

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

Hello, how can I help you today?

xtxt

Format xtxt (çevrilmiş metin) veya bilinmeyen ise, yalnızca çevrilmiş metin yazdırılır.

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

Aşağıdaki metni Türkçe'ye satır satır çevirin.

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

API'ye aynı anda gönderilecek maksimum satır sayısını belirtin.

Eğer bir seferde sadece bir satır çevirmek istiyorsanız, bu değeri 1 olarak ayarlayın. Bu seçenek, --xlate-maxlen seçeneğinden önceliklidir.

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

STDERR çıktısında gerçek zamanlı çeviri sonucunu görün.

--xlate-stripe

Tüm metni üretmek için seçenek --all kullanılır.

Eşleşen kısmı zebra şeritli bir moda göre göstermek için App::Greple::stripe modülü kullanılır. Bu, eşleşen kısımlar birbiri ardına bağlı olduğunda faydalıdır.

--xlate-mask

Maskeleme işlemini gerçekleştirin ve dönüştürülmüş metni geri yükleme olmadan görüntüleyin.

--match-all

Dosyanın tüm metnini hedef alan olarak ayarlayın.

CACHE OPTIONS

xlate modülü, her dosyanın çeviri önbelleğini saklayabilir ve sunucuya sorma işleminin üstesinden gelmek için yürütmeden önce onu okuyabilir. Varsayılan önbellek stratejisi auto ile, hedef dosya için önbellek verisi yalnızca önbellek dosyası varsa tutulur.

Önbellek yönetimini başlatmak veya mevcut tüm önbellek verilerini temizlemek için --xlate-cache=clear kullanın. Bu seçenekle birlikte çalıştırıldığında, bir önbellek dosyası mevcut değilse yeni bir dosya oluşturulacak ve ardından otomatik olarak bakımı yapılacaktır.

--xlate-cache=strategy
auto (Default)

Önbellek dosyasını varsa koruyun.

create

Boş önbellek dosyası oluşturun ve çıkın.

always, yes, 1

Hedef normal dosya olduğu sürece her durumda önbelleği sürdürün.

clear

Öncelikle önbellek verilerini temizleyin.

never, no, 0

Önbellek dosyasını varsa kullanmayın.

accumulate

Varsayılan davranışa göre, kullanılmayan veriler önbellek dosyasından kaldırılır. Onları kaldırmak istemezseniz ve dosyada tutmak isterseniz, accumulate kullanın.

--xlate-update

Bu seçenek, gerekli olmasa bile önbellek dosyasını güncellemeye zorlar.

COMMAND LINE INTERFACE

Dağıtımda bulunan xlate komutunu kullanarak bu modülü kolayca komut satırından kullanabilirsiniz. Kullanım için xlate yardım bilgilerine bakın.

xlate komutu Docker ortamı ile birlikte çalışır, bu yüzden elinizde herhangi bir şey yüklü olmasa bile Docker mevcut olduğu sürece kullanabilirsiniz. -D veya -C seçeneğini kullanın.

Ayrıca, çeşitli belge stilleri için makefile'lar sağlandığından, özel bir belirtim olmadan diğer dillere çeviri yapmak mümkündür. -M seçeneğini kullanın.

Docker ve make seçeneklerini birleştirerek make'i Docker ortamında çalıştırabilirsiniz.

xlate -GC gibi çalıştırırsanız, mevcut çalışma dizinine bağlı olan bir kabuk başlatılır.

Ayrıntılar için "DAHA FAZLASI" bölümündeki Japonca makaleyi okuyun.

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
    -x # file containing mask patterns
    -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 * docker image name or version (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, colon, space)
    *.ENGINE  translation engine (deepl, gpt3, gpt4, gpt4o)

EMACS

Emacs düzenleyicisinden xlate komutunu kullanmak için depoda bulunan xlate.el dosyasını yükleyin. xlate-region işlevi verilen bölgeyi çevirir. Varsayılan dil EN-US'dir ve dil belirtmek için ön ek argümanını kullanabilirsiniz.

ENVIRONMENT

DEEPL_AUTH_KEY

DeepL hizmeti için kimlik doğrulama anahtarınızı ayarlayın.

OPENAI_API_KEY

OpenAI kimlik doğrulama anahtarı.

INSTALL

CPANMINUS

$ cpanm App::Greple::xlate

TOOLS

DeepL ve ChatGPT için komut satırı araçlarını yüklemeniz gerekmektedir.

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

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.