Speedy Translate Pro: bulk translation, coverage and XLIFF
For sites with hundreds or thousands of items: machine translate everything that is missing in the background, see at a glance what is left, and hand the rest to human translators.
PRO These tools need Speedy Translate Pro, the Speedy multilingual mode, and a user who can configure Speedy Translate. They are listed on the dashboard, under Content translation.
Bulk translation
- Open Bulk translation from the dashboard.
- Under What to translate, tick the content types and the languages. Tick Also translate again what is outdated to redo translations whose original changed.
- Press Estimate. For each language you see the provider that will translate it, the number of characters and the approximate cost at the providers' list prices.
- Press Start translating. You can close the page: the job runs in the background.
The estimate uses the list prices of the date it shows, one request per field. Your own plan's price, a free allowance, or a model's thinking change the real bill. A language with no provider set up is left out; a provider whose price is not known (Yandex, or a model not in the price list) shows Price not known.
Following a job
The Jobs list shows each job's progress and state: Waiting, Running, Paused, Done or Cancelled. You can Pause, Resume or Cancel a job, and Run now works on it straight away from the page.
If the provider fails (a wrong key, an exhausted quota), the job pauses after the last item that succeeded, and the page says why. The details are in administrator/logs/com_speedytranslate.errors.php. Fix the cause and press Resume.
How jobs run
Jobs run from Joomla's scheduled tasks, through the plugin Task - Speedy Translate. Starting the first job creates the scheduled task Speedy Translate - Bulk translation, which runs every minute. Each run translates for a while (25 seconds in a web request, 120 from the command line), saves where it is, and the next run carries on.
What starts the scheduler decides how fast a large job goes:
| Trigger | Speed | Set it up |
|---|---|---|
| Server cron | Fastest: a run every minute, 120 seconds each | Add the line below to the server's crontab, with your site's path. |
| Web cron | As often as the external service calls | System → Scheduled Tasks → Options: enable Web Cron and give its URL to a cron service. |
| Lazy scheduler | Slow: only when the site has visitors, at most every few minutes | Joomla's default. Fine for small jobs. |
* * * * * php /path/to/site/cli/joomla.php scheduler:run
The Bulk translation page says which trigger your site uses. If it says the plugin is disabled, enable Task - Speedy Translate in System → Plugins.
What a job translates
- It fills gaps. Only fields without a translation are translated, plus outdated ones when you ask. A translation someone typed stays, unless you ask to redo outdated ones and it is outdated.
- It translates the fields of the edit form: titles, text, descriptions, meta data. An article's text is split at its read-more as the form would. The alias is made from the translated title.
- It leaves the rest to the edit forms: options and parameters, custom field values, and anything that is not text, such as numbers, links, JSON layouts and images.
- It saves an item once all its fields are translated, so an item is never left half done.
The glossary and the provider for each language apply to jobs as they do to the language tabs.
Translation coverage
The Translation coverage card, at the top of Pro's dashboard, shows for each language the share of items translated and up to date, and what is left: not translated and outdated. Below, the content types with work left, the most first: for each, its number of items and, per language, its percentage and how many items are outdated or not translated. Each content type links to its list in Batch translations. The content types up to date in every language share one line under the table.
It counts the items the translation list shows (items set to All languages) with the same statuses. It is filled in after the dashboard opens, as counting takes a moment on a large site: a few seconds for 10,000 translated articles.
XLIFF export and import
Translation agencies and professional translators work in CAT tools such as Trados, memoQ, Phrase and OmegaT. They all read XLIFF 1.2, which Speedy Translate exports and imports.
Export
- Open XLIFF export and import from the dashboard.
- Tick the content types, and choose the language under Translate into.
- Choose the Fields: What needs translating (fields without a translation, or with an outdated one, which the file marks for review) or Everything, with the translations made so far, to review them.
- Press Download the XLIFF file and send it to your translator.
Import
Choose the file the translation tool saved and press Import. Each translation is stored as the item's edit form would store it. The report says how many translations were imported, into how many items, and which units were not:
- units with no translation, or marked as not translated or not reviewed yet in the file;
- units naming a content type, language, item or field the site does not have;
- units whose item text changed since the export: their translation is of an older text. Export them again.
Only XLIFF 1.2 files as Speedy Translate exports them are read. A file larger than the server's upload limit cannot be imported; export fewer content types at a time.