Translation Jobs: Live Progress, Cost Estimates, and Cleaner Pickers
Background translation jobs process reliably, progress updates while you work in other tabs, AI translation shows a credit estimate before you start, and locale variants no longer leak into link or publish pickers.
Multilingual sites got reliability and UX fixes: translation jobs run on a dedicated cron schedule, progress percentages stay live across editor tabs, AI translation shows a character-based credit estimate before enqueueing, locale variant pages are hidden from internal link and publish pickers, and translation variants are read-only in the Pages editor.
What we shipped
The Translations tab in the site editor already let you add languages, run AI translation jobs, manage a glossary, and publish per locale. This release tightens the workflow so jobs finish predictably and the rest of the editor stays uncluttered.
Background jobs that keep moving
Translation jobs now run on a dedicated cron schedule (process-translation-jobs every minute). Long-running AI translation batches no longer stall waiting for a manual trigger.
Live progress while you work elsewhere
Job polling stays active for the whole editor session — not only while the Translations tab is open. Switch to Pages, Layout, or AI chat and the language list row still shows a live percentage. Progress bars in the language detail panel update on the same cadence.
Cost estimate before AI translation
Before enqueueing AI translation, Aveiro fetches a pre-flight cost estimate: page count, estimated credits based on each page's source character count, and how that compares to your remaining monthly AI budget. Translation memory hits cost nothing (no AI call).Billing is character-based, not a flat per-page rate: about 1 credit per 100 source characters with a minimum of 5 credits per page, multiplied by your Translation quality tier — Lite (1×) or Max (3×). The estimate in the confirm dialog reflects your current tier.
Locale variants stay out of pickers
Translated pages live under locale folders (/de, /fr, and so on). They no longer appear in:
The internal link picker when editing block links
The Page content checklist in the main publish menu
Manage and publish locale variants from the Translations tab instead. The Pages toolbar language switcher still lets you preview a locale, but translation variants are read-only in Visual and Source — edit from the Translations tab.
Stale-translation warning on publish
When you publish source-language Page content with localization enabled, Aveiro warns if any target languages have translations that are out of date relative to the source. You can cancel and run Update translations, or publish anyway.
Why we built it this way
Multilingual sites generate a parallel page tree. Showing those variants in every picker made internal links and publish selections easy to get wrong — you could link to a draft German page from English content, or try to publish a locale variant from the wrong menu.
Keeping locale management in one tab matches how creators think about the workflow: source language in Pages, translations in Translations.
Reliable background processing plus session-wide polling means you can start a large translation job and keep editing without wondering whether progress froze.
Character-based billing with a quality tier lets short pages cost less while long guides scale fairly — and the pre-flight estimate shows the total before you commit.
Try it
Enable localization on your organization (Organization → Features).
Open a site in the editor and go to Translations.
Turn on AI translation and pick Lite or Max under Translation quality.
Add a target language and start Translate all — review the character-based credit estimate in the confirm dialog.
Switch to the Pages tab and pick a target language — the editor should be read-only with a banner pointing you back to Translations.
Publish source-language Page content after editing — if translations are stale, you should see the warning dialog.