Repository navigation
Update translations automatically when an origin entry is saved (T11.1) - #1
Merged
Merged
Conversation
…its origin, as a run of the entry, off by default (T11.1) A setting on the new Automation tab turns it on, for every collection or a list; a second one also creates the missing localizations, and a third publishes updates in collections with revisions. With a queue worker the run's lanes go on the queue after 10 seconds; without one, the process that saved the entry drives the run after its response. The origin's banner follows the run after a save, the localization's banner says when an automatic update last saved it, and the runs list, the run page, the Overview's usage and tolk:doctor name automatic updates.
…t is done when it finished before the banner saw its run The origin's status lists the sites an automatic update covers, so a missing site that the settings do not create no longer keeps the banner waiting. Adds a browser scenario for automatic updates.
afonic
added a commit
that referenced
this pull request
Oct 15, 2026
Update translations automatically when an origin entry is saved (T11.1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds T11.1: saving a published entry in its origin can update its translations by itself. Off by default.
Settings (new Automation tab)
auto_update): each published save of an origin entry starts the same run as the origin's Update translations, into every localization: the fields whose origin changed and the fields not translated yet. Fields edited by hand are never overwritten; a save that changes no text starts nothing.auto_update_create): also translates the entry into the collection's sites that have no localization of it yet, as Translate into… does, following the New localizations setting.auto_update_collections): limits it to some collections; empty means all that are not excluded.auto_update_publish): in collections with revisions, publishes the update instead of leaving it in the working copy (unless the localization already had unpublished changes).How it runs
QueueTranslationUpdateslistens to the initialEntrySaved(not the re-saves core does to localizations after their origin) and dispatchesUpdateTranslationsfor a published origin whose collection is covered.clidriver, no PHP time limit). A save while an earlier run of the entry is still moving waits for it, so the same fields are not paid for twice.AutoUpdaterbuilds the run as the user who saved (their site rights apply), estimates it without calling a model, and drops it when nothing is pending. It's a normal run otherwise: Runs page, cost, revisions, one commit, Resume after a stall.TargetTranslator, which could outlast a queue connection'sretry_afterand left no trace beyond the log.Where it shows
tolk:doctorand the Audit page say how automatic updates run.Docs
configuration.md(Automation),editor.mdandbulk-and-runs.md("Automatic updates"),troubleshooting.md,extending.md, README, CHANGELOG, the Boost guideline, and T11.1 inTASKS.md.Tests
tests/Feature/AutoUpdateTest.php: off by default; only the changed field is updated in each localization; hand edits kept; drafts, other collections, excluded collections and entries without localizations start nothing; the cascade re-save doesn't dispatch a second job; quick saves make one queued job; a provider failure leaves the localization outdated and the save succeeds; missing localizations are created only with the toggle; the saver's site rights apply; one commit per run; waiting for an earlier run.SettingsTest,EditorStatusTest,EditorPushTest,AuditTest, plus Vitest for the banner, the after-save follower, the save hook and the run pages.tests/Browser/editor-auto-update.spec.js: in the sandbox, a save updates the Greek translation and the banner shows it; the Greek banner says when; the runs list marks the run; creating missing localizations; nothing happens with the setting off.resources/dist/buildrebuilt.