App-Greple-xlate

 view release on metacpan or  search on metacpan

README.deepl-JA.md  view on Meta::CPAN

# NAME

App::Greple::xlate - greple 用の翻訳サポートモジュール

# SYNOPSIS

    greple -Mxlate --xlate-engine gpt5 --xlate pattern target-file

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

# VERSION

Version 2.02

# DESCRIPTION

**Greple** **xlate** モジュールを使用して、対象のテキストブロックを検索し、翻訳文に置き換えてください。 メインのエンジンは GPT-5.6 Terra (`llm/gpt5.pm`) で、[llm](https://llm.datasette.io/) コマãƒ...

翻訳結果はファイルごとにキャッシュされるため、変更のないテキストに対してコマンドを再実行してもコストはかかりません。 ドキュメントが編集された場合、変更された段落のみが...

Perlのpodスタイルで記述されたドキュメント内の通常のテキストブロックを翻訳したい場合は、**greple**コマンドを`--xlate-engine gpt5`および`perl`モジュールと組み合わせて、次のように使用ã...

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

このコマンドのパターン文字列`^([ \wpP].*n)+` は、英数字と句読点で始まる連続した行を意味します。このコマンドは、翻訳される領域が強調表示されます。オプション**--all**はテキストå…...

<div>
    <p>
    <img width="750" src="https://raw.githubusercontent.com/kaz-utashiro/App-Greple-xlate/main/images/select-area.png">
    </p>
</div>

その後、`--xlate` オプションを追加して、選択した領域を翻訳します。これにより、対象のセクションが検出され、翻訳エンジンの出力に置き換えられます。

デフォルトでは、原文と訳文は [git(1)](http://man.he.net/man1/git) と互換性のある "conflict marker" フォーマットで出力されます。`ifdef`形式を使えば、[unifdef(1)](http://man.he.net/man1/unifdef)コマンドでç...

<div>
    <p>
    <img width="750" src="https://raw.githubusercontent.com/kaz-utashiro/App-Greple-xlate/main/images/format-conflict.png">
    </p>
</div>

テキスト全体を翻訳したい場合は、**--match-all**オプションを使います。これはテキスト全体にマッチするパターン`(?s).+`を指定するショートカットです。

[sdif](https://metacpan.org/pod/App%3A%3Asdif)コマンドに`-V`オプションをつけると、競合マーカーフォーマットのデータを並べて表示することができます。文字列ごとに比較するのは意味がないのã...

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

<div>
    <p>
    <img width="750" src="https://raw.githubusercontent.com/kaz-utashiro/App-Greple-xlate/main/images/sdif-cm-view.png">
    </p>
</div>

# NORMALIZATION

処理は指定された単位で行われるが、空でないテキストが複数行連続している場合は、それらをまとめて1行に変換します。この処理は次のように行われる:

- 各行の先頭と末尾の空白を取り除く。
- 行末が全角句読点の場合は、次の行と連結します。
- ある行が全角文字で終わり、次の行が全角文字で始まる場合、その行を連結します。
- 行末または行頭が全角文字でない場合は、スペース文字を挿入して連結します。

キャッシュデータは正規化されたテキストに基づいて管理されるため、正規化結果に影響を与えない範囲で修正を加えても、キャッシュされた翻訳データは有効です。

この正規化処理は、最初の(0 番目の)偶数パターンに対してのみ行われます。したがって、以下のように2つのパターンを指定した場合、1つ目のパターンにマッチするテキストは正規化...

    greple -Mxlate -E normalized -E not-normalized

したがって、複数行を1行にまとめて処理するテキストには最初のパターンを使い、整形済みテキストには2番目のパターンを使う。最初のパターンにマッチするテキストがない場合は、`(...

# MASKING

時々、翻訳してほしくないテキストの部分があります。例えば、マークダウン・ファイルのタグなどです。DeepL では、このような場合、除外するテキストの部分を XML タグに変換して翻è¨...

    --xlate-setopt maskfile=MASKPATTERN

ファイル`MASKPATTERN`の各行を正規表現として解釈し、一致する文字列を翻訳後、処理後に元に戻します。`#`で始まる行は無視されます。

複雑なパターンは、バックスラッシュでエスケープした改行を含めて複数行で記述できます。

マスキングによってテキストがどのように変換されるかは、**--xlate-mask**オプションで見ることができます。

マスクプレースホルダーは、のような、構文的に正しい自己閉じ型XMLタグです`<m id="1" />`。JSONベースのLLMエンジンは、入力配列としてこれらのタグを受け取ります。DeepLの場合、マーカãƒ...

マスキングにより、マークアップが翻訳されるのを防ぐことができます。翻訳サービス自体から機密性の高い文字列を隠すには、["ANONYMIZATION AND TEMPLATES"](#anonymization-and-templates)を参照して...

このインターフェースは実験的なものであり、将来変更される可能性があります。

# ANONYMIZATION AND TEMPLATES

機密性の高い文字列は、翻訳APIに送信する前に隠蔽し、出力時に復元することができます。匿名化ルールには、辞書ファイル(**--xlate-anonymize**)、ドキュメント自体内のインラインマーã...

定型文書(四半期報告書など)の場合は、事前にアクターを定義し、本文内でそれらを参照します:

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

`--xlate-template` を使用して、テンプレートを言語ごとに一度翻訳し (値がファイル内に保持されている場合は `--xlate-frontmatter` を使用)、その後、**pandoc-embedz** を使用して各ケースをレン...

    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

インラインマークの場合、マクロ定義設定を指定することで、同じ翻訳済みテンプレートから実名または伏せ字版のいずれかをレンダリングできます:

README.deepl-JA.md  view on Meta::CPAN

    現在の実装では、行の複数の部分が翻訳された場合、それらは独立した行として出力されます。

# CACHE OPTIONS

**xlate**モジュールは、各ファイルの翻訳テキストをキャッシュしておき、実行前に読み込むことで、サーバーに問い合わせるオーバーヘッドをなくすことができます。デフォルトのキャã...

**--xlate-cache=clear**を使用して、キャッシュ管理を開始するか、既存のキャッシュデータをすべてクリーンアップします。このオプションを実行すると、キャッシュファイルが存在しないå ...

- --xlate-cache=_strategy_
    - `auto` (Default)

        キャッシュ・ファイルが存在すれば、それを維持します。

    - `create`

        空のキャッシュ・ファイルを作成して終了します。

    - `always`, `yes`, `1`

        対象が通常ファイルである限り、とにかくキャッシュを維持します。

    - `clear`

        最初にキャッシュデータをクリアします。

    - `never`, `no`, `0`

        キャッシュファイルが存在しても使用しないです。

    - `accumulate`

        デフォルトの動作では、未使用のデータはキャッシュ・ファイルから削除されます。削除せず、ファイルに残しておきたい場合は、`accumulate`を使ってください。
- **--xlate-update**

    このオプションは、キャッシュ・ファイルを更新する必要がない場合でも、強制的に更新します。

# COMMAND LINE INTERFACE

配布物に含まれている `xlate` コマンドを使えば、コマンドラインから簡単にこのモジュールを使うことができます。使い方は `xlate` のマニュアルページを参照してください。

`xlate`コマンドは`--to-lang`, `--from-lang`, `--engine`, `--file`のようなGNUスタイルの長いオプションをサポートしています。`xlate -h`を使うと利用可能な全てのオプションが表示されます。

`xlate`コマンドはDocker環境と協調して動作するため、手元に何もインストールされていなくても、Dockerが利用可能であれば使用することができます。`-D`または`-C`オプションを使用してくã...

Dockerの操作は[App::dozo](https://metacpan.org/pod/App%3A%3Adozo)で処理され、スタンドアロンコマンドとしても使用できます。`dozo`コマンドは、永続的なコンテナ設定のための`.dozorc`設定ファイルをã...

また、様々なドキュメントスタイルに対応したmakefileが提供されているので、特別な指定なしに他言語への翻訳が可能です。`-M`オプションを使用してください。

Docker と `make` オプションを組み合わせて、Docker 環境で `make` を実行することもできます。

`xlate -C` のように実行すると、現在作業中の git リポジトリがマウントされたシェルが起動します。

詳しくは["SEE ALSO"](#see-also)セクションの日本語記事を読んでください。

# EMACS

Emacsエディタから`xlate`コマンドを使うには、リポジトリに含まれる`xlate.el`ファイルを読み込みます。`xlate-region`関数は指定された領域を翻訳します。デフォルトの言語は`EN-US`で、prefix引...

<div>
    <p>
    <img width="750" src="https://raw.githubusercontent.com/kaz-utashiro/App-Greple-xlate/main/images/emacs.png">
    </p>
</div>

# ENVIRONMENT

- DEEPL\_AUTH\_KEY

    DeepLサービスの認証キーを設定します。

- OPENAI\_API\_KEY

    レガシーな**gpty**エンジンで使用されるOpenAI認証キー。 `llm`ベースの**gpt5**エンジンもこの変数を読み取りますが、`llm keys set openai`で保存されたキーも機能します。

- GREPLE\_XLATE\_CACHE

    デフォルトのキャッシュ戦略を設定します(["CACHE OPTIONS"](#cache-options)を参照)。

# INSTALL

## CPANMINUS

    $ cpanm App::Greple::xlate

## TOOLS

使用しているエンジン用のコマンドラインツールをインストールします:`llm`(**gpt5**エンジン用)、`deepl`(DeepL用)、`gpty`(レガシーGPTエンジン用)。

[https://llm.datasette.io/](https://llm.datasette.io/)

[https://github.com/DeepLcom/deepl-python](https://github.com/DeepLcom/deepl-python)

[https://github.com/tecolicom/App-gpty](https://github.com/tecolicom/App-gpty)

# SEE ALSO

## MODULES

[App::Greple::xlate::llm](https://metacpan.org/pod/App%3A%3AGreple%3A%3Axlate%3A%3Allm)、[App::Greple::xlate::deepl](https://metacpan.org/pod/App%3A%3AGreple%3A%3Axlate%3A%3Adeepl)

[App::dozo](https://metacpan.org/pod/App%3A%3Adozo) - xlateがコンテナ操作に使用する汎用Dockerランナー。

## RELATED MODULES

- [App::Greple](https://metacpan.org/pod/App%3A%3AGreple)

    ターゲット・テキスト・パターンの詳細については、**greple** のマニュアルを参照してください。**--inside**、**--outside**、**--include**、**--exclude**オプションを使用して、マッチング範囲ã...

- [App::Greple::update](https://metacpan.org/pod/App%3A%3AGreple%3A%3Aupdate)

    `-Mupdate` モジュールを使って、**greple** コマンドの結果によってファイルを変更することができます。

- [App::sdif](https://metacpan.org/pod/App%3A%3Asdif)

    **sdif**を使うと、**-V**オプションでコンフリクトマーカの書式を並べて表示することができます。

- [App::Greple::stripe](https://metacpan.org/pod/App%3A%3AGreple%3A%3Astripe)

    **--xlate-stripe**オプションで**stripe**モジュールを使用します。

## RESOURCES



( run in 1.488 second using v1.01-cache-2.11-cpan-364913b4093 )