App-Greple-xlate
view release on metacpan or search on metacpan
Revision history for Perl extension App-Greple-xlate
2.02 2026-09-03T11:44:49Z
- Update the llm-backed gpt5 engine to use gpt-5.6-terra with low
reasoning effort by default. The engine name and existing cache file
names remain unchanged.
- Strengthen translation response validation: require exact element
counts and string elements from LLM engines, and verify the complete
masked-placeholder multiset before restoring translated text.
- Make one-to-one source revisions explicit in the translation context,
and add --xlate-review / --review to show minimal source and target
revision spans without another API call.
- Keep fixed translation policy in the system prompt and send source,
previous translations, and surrounding references as structured,
explicitly untrusted document data in the JSON user request.
- Emit well-formed XML-style mask tags with quoted IDs and enable
DeepL XML tag handling for masked payloads, so numbered placeholders
retain their tag names and IDs during translation.
2.01 2026-07-09T05:59:30Z
- Renew the `xlate` command-line front-end for the 2.0 module.
Incompatible changes in the `xlate` command (the -Mxlate module
interface is unchanged):
* The default engine changes from deepl to gpt5. Cache file
names include the engine name, so run with `-e deepl` to keep
using DeepL for existing documents.
* API translation is now the default. The clipboard-based
manual translation mode is now `--no-api` (`-a`/`--api`
remains valid as an explicit default).
* `-n` is now a counting flag: once prints the composed greple
command as before, twice (`-nn`) runs it with --xlate-dryrun
to preview the transmission payload without calling the API.
- Add first-class `xlate` options for the 2.0 module features:
--anonymize, --mark, --template, --frontmatter, --seed and
--context, mapping to the corresponding --xlate-* options.
- share/XLATE.mk defaults to gpt5 and carries the new options via
XLATE_ANONYMIZE, XLATE_MARK, XLATE_TEMPLATE, XLATE_FRONTMATTER,
XLATE_SEED and XLATE_CONTEXT_WINDOW; a per-file FILE.ANONYMIZE
control file is used as that file's anonymization dictionary.
- Fix: --xlate-dryrun no longer prints "!!! TRANSLATION ERROR !!!"
for cache misses with a substituting output format.
- Fix: --xlate-dryrun combined with --xlate-cache=clear no longer
truncates the on-disk cache file.
- Fix a stray masking tag left in the Korean DeepL documentation.
2.00 2026-07-06T19:58:24Z
- New llm backend: the gpt5 engine now calls the general-purpose
llm command (https://llm.datasette.io/) instead of gpty. The
gpty-based engines (gpt3, gpt4, gpt4o) are retained under the
gpty namespace; engine names are resolved backend-first (llm,
then gpty, then bare). Use --xlate-setopt backend=gpty to force
a specific backend.
- Context-aware differential translation: when a cached document
is edited, each changed region is translated in its own API call
together with the surrounding translated pairs, the raw source
text around the change, and the previous translation of the
edited part, so unchanged wording is preserved. Controlled by
--xlate-context-window (default 2, set 0 to disable).
- Anonymization: conceal sensitive strings from the translation
API with --xlate-anonymize (JSON or line-format dictionary) or
--xlate-anonymize-mark (inline first-occurrence marks). Strings
are replaced by category tags like <person id=1 /> during
transmission and restored in the output; local cache files keep
restored plain text.
- Template support: --xlate-template protects Jinja2-style
expressions as opaque placeholders and verifies that they
survive translation; --xlate-frontmatter excludes YAML front
matter from translation and anonymizes its values. Designed to
work with macro processors such as pandoc-embedz.
- Add --xlate-cache-seed to initialize a new document's cache from
another document's cache file (useful for periodic reports).
- improve dozo help message formatting (consistent spacing and argument notation)
- add docker run execution info display in dozo (image, env count, container, command)
- implement debug mode in dozo (-d shows full docker command, unaffected by -q)
- separate trace option: dozo uses -x, xlate uses --trace only (keep -t for --to-lang)
- add debug() function for debug output independent of quiet mode
0.9921 2025-12-15T00:16:56Z
- fix -D option to override -I from .dozorc (use hook)
0.9920 2025-12-14T10:42:27Z
- fix dist_dir to not load App::Greple::xlate module
(avoids Text::ANSI::Fold dependency error in CPAN test)
- simplify dockopt array construction in dozo
- use prove -b in GitHub Actions for CPAN-like test environment
0.9919 2025-12-14T07:00:34Z
- rename xrun to dozo (Docker Zone)
- fix .dozorc parsing to handle quoted arguments using xargs
- use POD for dozo help output
- add USAGE section with practical examples
0.9918 2025-12-14T02:43:25Z
- add --version option to xrun
- add -D/--default option and XRUN_DEFAULT_IMAGE env for default image
- improve test isolation from .xrunrc files
0.9917 2025-12-13T15:04:34Z
- use native ARM64 runner for faster Docker image builds
- add concurrency control to Docker workflow
- add xrun to release hook for automatic version updates
- move API and Docker tests to xt/author to prevent
unintended API calls and image downloads during cpanm install
0.9916 2025-12-13T13:24:26Z
- implement GNU-style long options using getoptlong.sh library
- all options now have both short and long forms
(e.g., -t/--to-lang, -e/--engine, -f/--file)
- extract xrun as standalone Docker runner script
- xrun supports .xrunrc for default container settings
0.9915 2025-11-14T01:11:02Z
- add Arabic document
- add llm-openrouter in docker image
0.9914 2025-10-08T11:10:18Z
- add GPT-5 engine support to documentation
- add llm version display to Docker build
- include gpt5 translations in docs
0.9913 2025-10-07T08:29:37Z
- introduce --xlate-context option
- update gpt5 module to include contexts in system prompt
- update gpt5.pm documentation with latest API specifications
- improve script/xlate documentation clarity
0.9912 2025-05-07T06:49:43Z
- fix mask/unmask behabior
- use JSON format for translation interface
- udpate examples/Makefile
- use deepl and gpt4 (gpt-4.1) for example translations
- update examples/README
0.9911 2025-05-06T10:45:43Z
- module dies when the masking tag is missing in the output
- require greple@9.23 to fix the behavior of --of filter
- remove trailing spaces from the XLATE output
- improve gpt-4.1 prompt
0.9910 2025-05-03T11:09:27Z
- use gpt4.1 as gpt4 engine
- update prompt for ChatGPT to improve translation quality
- introduce -Mxlate::Filter module
- requires perl v5.26
0.9909 2025-04-16T08:51:03Z
- make sure to use GNU Make
- fix .xlaterc read bug
- introduce experimental "xlate -J" option
0.9908 2025-03-17T00:40:36Z
- install App::Greple::L
- read ~/.xlaterc
- introduce -B option for batch mode
0.9907 2025-03-16T09:02:13Z
- trial implementation of reading .xlaterc
0.9906 2025-02-28T13:05:13Z
- add paused container handling
- remove -S option
0.9905 2025-01-14T12:38:56Z
- fix bug of script/xlate
- introduce App::Greple::xlate::Text
- add optex setup in Docker image
- deprecate xlate -A option
0.9904 2025-01-10T07:26:52Z
- update script/xlate options
* -f -> -b : base language
* -z -> -f : pattern file
0.9903 2025-01-10T05:39:50Z
- always create result file including engine name
- update script/xlate
* add -z option to specify pattern file
* introduce -L option to manage live container
* -f option set --xlate-from option
0.9902 2025-01-01T02:24:46Z
- execute "docker run" with "--init" option
- update xlate options
* make -G option as default and remove from usage
* add -W option to mount current directory
0.9901 2024-11-23T13:19:05Z
- update "xlate" command options
* rename -Q -> -K
* rename -K -> -L
* create -S
0.99 2024-11-22T15:36:57Z
- introduce xlate -x option
0.40 2024-10-09T11:03:07Z
- introduce --xlate-mask
0.39 2024-10-08T07:10:21Z
- introduce --xlate-stripe option
0.38 2024-10-05T07:45:54Z
- maintain cache data in ordered list format rather than hash
- introduce --xlate-update option to force update cache data
- undocument --cache-clear option (use --xlate-cache=clear)
0.37 2024-10-04T06:39:51Z
- introduce --xlate-format colon parameter
0.36 2024-09-29T04:03:54Z
- update pod translation area to include line start with punct char
0.35 2024-09-26T15:30:33Z
- introduce output format "space+"
0.3401 2024-09-20T03:49:59Z
- update gpt4o module
- include documents translated by gpt4o
0.34 2024-09-02T13:24:56Z
- introduce gpt4o engine
0.33 2024-08-22T01:38:55Z
- introduce experimental data masking capability
0.3202 2024-08-13T12:24:41Z
- fix a bug of --xlate-labor option not to work
0.3201 2024-08-09T23:44:53Z
- requires perl v5.18.2
0.32 2024-08-09T09:17:36Z
- introduce different patterns for normalized and non-normalized text
0.3101 2024-03-21T03:43:52Z
- fix bug in xlate.el
- include sdif output in README
0.31 2024-03-01T10:33:50Z
- introduce --prompt option
- implement EN -> EN-US alias in xlate.el
0.30 2024-02-12T07:19:06Z
- ad hoc support for ChatGPT-4
0.29 2024-01-22T04:34:48Z
- produce files without engine-name when single engine used
0.28 2023-11-10T06:32:41Z
- update cache management strategy
- make -t option and XLATE_LANG required
- make -n works for normal execution
- make .stxt file for .docx and such
- do not process -G option on docker
- add xlate -v option
- add --xlate-debug option
0.27 2023-11-07T15:57:53Z
- use monotone colormap
- add Minilla release.hooks
0.26 2023-11-07T10:22:47Z
- support ChatGPT-3.5 (gpt3) translation engine
0.25 2023-06-28T04:04:11Z
- new docker image release
0.24 2023-06-13T10:41:41Z
- update xlate.el
0.23 2023-03-29T02:43:35Z
- use .stxt suffix for temporary file
0.22 2023-03-28T05:44:04Z
- update JSON cache file format
- create temporary text file to process MS document
0.21 2023-03-25T04:12:11Z
- introduce xlate -l option
- update xlate.el to complete language list
0.20 2023-03-23T05:55:33Z
- pass -t and -o parameters to make
0.19 2023-03-22T12:40:45Z
- update xlate.el
- change --match-entire to --match-all
- set default format as "xtxt" and "cm"
( run in 0.424 second using v1.01-cache-2.11-cpan-7f9471e7e0a )