Version: 2.0.0
1.1.0 — July 2026
- Added aggregated translation job statistics (sum + remaining) to the digest email, with a redesigned layout
- Added per-entry translation locking to prevent SQL deadlock errors under concurrent queue runs
- Digest email queue jobs are now prioritised to send before individual-entry jobs
- Job statistics are updated after each queue run completes
- Completed translation jobs (0% remaining) are no longer re-queued, and digests are no longer sent after 100% completion
- Cache is cleared automatically when sending an email from the statistics page
- Added a control to reset a job's translation history
- Improved translation provider fallback logging; fallback providers are used when the job sequence is empty
- Added a model selection dropdown to translation settings
- Empty source fields are now skipped in translation batches to reduce token usage
- Errors are hidden by default on the translation logs page, with a toggle to show them
- Uncapped totals are now shown alongside capped counts in translation stats
- Restored the Google Translate referer header
- Enforced translation-only outputs across all providers to prevent paraphrasing or commentary
- Fixed job progress calculations for translation statistics
- Fixed a query return type mismatch in
TranslationStatusService
- Fixed progress updates for queued translation jobs
- Fixed provider sequence fallback usage
- Fixed a
translateUntranslatedOnly unknown property exception via the install migration
- Fixed missing field population for JSON link options
- Fixed duplicate counting of translated entries by filtering with a subquery
- Migrated to
yui\craftcore\base\BasePlugin and the shared ycore BaseService
- Fixed the CP sidebar icon (monochrome silhouette, correct alias resolution)