The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

App::Greple::xlate - greple的翻译支持模块

SYNOPSIS

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

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

VERSION

Version 0.9908

DESCRIPTION

Greple xlate 模块查找所需的文本块,并用翻译文本替换它们。目前,DeepL (deepl.pm) 和 ChatGPT (gpt3.pm) 模块被用作后端引擎。此外,还包括对 gpt-4 和 gpt-4o 的实验性支持。

如果要翻译以 Perl 的 pod 风格编写的文档中的普通文本块,请使用 greple 命令,并像这样使用 xlate::deeplperl 模块:

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

在该命令中,模式字符串 ^([\w\pP].*\n)+ 表示以字母和标点符号开头的连续行。该命令高亮显示要翻译的区域。选项 --all 用于生成整个文本。

然后添加 --xlate 选项来翻译选定区域。然后,它会找到所需的部分,并用 deepl 命令输出将其替换。

默认情况下,原文和译文以与 git(1) 兼容的 "冲突标记 "格式打印。使用 ifdef 格式,可以通过 unifdef(1) 命令轻松获得所需的部分。输出格式可以通过 --xlate-format 选项指定。

如果要翻译整个文本,请使用 --match-all 选项。这是指定匹配整个文本的模式 (?s).+ 的快捷方式。

冲突标记格式数据可以通过带有 -V 选项的 sdif 命令并排查看。由于按字符串进行比较毫无意义,因此建议使用 --no-cdif 选项。如果不需要给文本着色,可指定 --no-textcolor(或 --no-tc)。

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

NORMALIZATION

处理是以指定单位进行的,但如果是多行非空文本序列,则会一起转换为单行。具体操作如下

缓存数据是根据规范化文本进行管理的,因此即使进行了不影响规范化结果的修改,缓存的翻译数据仍然有效。

此规范化处理只针对第一个(第 0 个)和偶数模式。因此,如果指定了以下两个模式,则匹配第一个模式的文本将在规范化后处理,而不对匹配第二个模式的文本执行规范化处理。

greple -Mxlate -E normalized -E not-normalized

因此,第一种模式适用于将多行合并为一行进行处理的文本,第二种模式适用于预格式化文本。如果第一个模式中没有要匹配的文本,则使用不匹配任何内容的模式,如 (?!)

MASKING

有时,您不希望翻译文本中的某些部分。例如,markdown 文件中的标记。DeepL 建议在这种情况下,将不需要翻译的文本部分转换为 XML 标记,然后进行翻译,翻译完成后再还原。为了支持这一点,可以指定要屏蔽翻译的部分。

--xlate-setopt maskfile=MASKPATTERN

这将把文件 `MASKPATTERN` 的每一行都解释为正则表达式,翻译与之匹配的字符串,并在处理后还原。以 # 开头的行将被忽略。

复杂的模式可以用反斜线换行写成多行。

通过 --xlate-mask 选项可以看到屏蔽后文本的转换效果。

此接口为试验性接口,将来可能会更改。

OPTIONS

CACHE OPTIONS

xlate模块可以存储每个文件的翻译缓存文本,并在执行前读取它,以消除向服务器请求的开销。在默认的缓存策略auto下,它只在目标文件的缓存文件存在时才维护缓存数据。

使用 --xlate-cache=clear 启动缓存管理或清理所有现有缓存数据。使用该选项后,如果缓存文件不存在,就会创建一个新的缓存文件,然后自动维护。

COMMAND LINE INTERFACE

你可以使用发行版中的 xlate 命令,在命令行中轻松使用该模块。有关用法,请参阅 xlate man 页。

xlate 命令与 Docker 环境协同工作,因此即使你手头没有安装任何东西,只要 Docker 可用,你就可以使用它。使用 -D-C 选项。

此外,由于提供了各种文档样式的 makefile,因此无需特别说明即可翻译成其他语言。使用 -M 选项。

你还可以把 Docker 和 make 选项结合起来,这样就能在 Docker 环境中运行 make

xlate -C 这样运行,会启动一个挂载了当前工作 git 仓库的 shell。

详情请阅读 "SEE ALSO" 部分的日文文章。

EMACS

加载存储库中的xlate.el文件,从Emacs编辑器中使用xlate命令。xlate-region函数翻译给定的区域。默认的语言是EN-US,你可以用前缀参数指定调用语言。

ENVIRONMENT

INSTALL

CPANMINUS

$ cpanm App::Greple::xlate

TOOLS

您必须安装 DeepL 和 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::gpt3

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.