| Step | Work on original module | Work on translation | Automatic processing |
| 0 | Upload a new module (or create one from a template) | Set the original module workflow state to "Write" | |
| 1 | Write | ||
| 2 | Add automatic xml:id values on all elements that miss it | ||
| 3 | Comment (that step can be shared among various people) and/or edit, Optionally go back to step 1. | ||
| 4 | Validate (module is not modified) | The module goes into step "Done" | |
| 5 | Tell you want to start a new translation | Copy original file to target language dir, replace all xml:lang='orig' to xml:lang='trgt' | |
| 6 | First translation: the translator downloads either the original XML either an XLIFF representation of it1. He can get the TMX too | ||
| 7 | Comment (that step can be shared among various people) and/or fix, Optionally go back to step 5. | ||
| 8 | Validate (module is not modified) | The module goes into step "Done" | |
| 9 | Tell you want to start a new version | Set the original module workflow state to "Update" | |
| 10 | Update | ||
| 11 | Add automatic xml:id values on all elements that miss it | ||
| 12 | For all xml:id of the document while it was in the "Done" step, compare all strings with the current version. If it changed, increment a revision counter associated to the element (identified by its xpointer: content/en/java.xml#id453) | ||
| 13 | Generate a report that shows the changes according to latest step processing | ||
| 14 | Comment (that step can be shared among various people) and/or edit, Optionally go back to step 1. | ||
| 15 | Validate (module is not modified) | The module goes into step "Done" | |
| 16 | [Step 12+13] on translation instead of original | ||
| 17a | Update the translation, either by downloading the original (or its XLIFF2) and TMX into a CAT tool; | ||
| 17b | or by editing the old translation based on the changes report | In this case, remember the version (X) of the original at the date of now3 | |
| 18 | Add automatic xml:id values on all elements that miss it | ||
| 19 | Comment (that step can be shared among various people) and/or fix, Optionally go back to step 17. | ||
| 20 | Validate (module is not modified) | The module goes into step "Done" | |
| 21 | Synchronize the revision counter for all xml:id of the translation with the same number as the original at version X | ||
| 22 | [Cycle to step 9] |
Notes:
- There can be a specific module type for TMX files, that would go through a validation step too, and provide merging for various translation memories provided by different translators working on different documents
- Ideally each segment translation in the TMX should be linked to the user that translated it for reference
- Same for glossary sharing (what format?)
- A framework exists to help with implementation: http://okapi.opentag.com/
- The XLIFF can be marked to specify which translation units are to be updateds or not: http://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html#state
- The xml:id/revision system implies there is no translatable text in attributes. See http://www.w3.org/TR/xml-i18n-bp/#DevAttributes
- 1. That implies the addon associated to the file type provides a filter (XSL?) to export to XLIFF
- 2. That implies the addon associated to the file type provides a filter (XSL?) to inject back an XLIFF into the original
- 3. This is required if the original starts a new revision cycle before the translation cycle finishes
