Ongoing translation sync from Zanata to Drupal
Description
Activity
Show:
Details
Details
Assignee
Unassigned
UnassignedReporter

Components
Priority

Epic Name
ongoing-drupal-sync
More fields
Time tracking
More fields
Time trackingCreated 12 January 2016 at 00:43
Updated 19 July 2016 at 02:21
A simple typo fix for something translated in Zanata with the Drupal plugin should be easy, but if the "Job" is finished, translators have to do repeated work or go through an annoying process. We should remove the repeated work and the annoying process.
Background
The Drupal plugin works on a "Job" paradigm (inherited from TMGMT) that puts a finite lifetime on the translation task. When a translation "Job" is finished, changes to the translations in Zanata can not be pulled into Drupal for that job. The only way to pull the translation changes to Drupal is to create another translation job for the document in the specific language. If another typo is found later, the process has to be repeated.
The workaround is to edit the translations in Drupal directly, but the translations need to be entered in Zanata as well so that the typo is not pulled in from there the next time there is a translation cycle for the document.
Proposed solution
Instead of using translation jobs from TMGMT, the plugin should just keep track of all the documents that should be translated and which languages they should be translated to.
For all these documents, the plugin should:
push new source to Zanata whenever the source is changed
pull new translations from Zanata whenever they are entered
publish the translated document as soon as it is 100% "translated" in Zanata (or "approved" if the project uses review)
publish an updated translated document when translations change and the document is still 100% (e.g. a typo fix)
The plugin could also have an option to override the automatic publishing globally (auto-publish , no-auto-publish), and per-document (default, auto-publish, no-auto-publish). This would allow coordinated publishing of translations from a translation status screen in case that is needed.