= The process by which translation teams can better handle collaboration = == Purpose == Every day (literally) hundreds of translation suggestions and/or modifications are generated in Rosetta. Due to some current limitations in Rosetta, it is fairly hard for translation teams members to keep up with the flood of information or even know about contributions awaiting for review/approval. My intent is to describe a mechanism by which translation teams can better administrate the contributions sent by Rosetta users, provide useful feedback and take a first step toward a better relationship with upstream projects. '''Blueprint''': https://blueprints.edge.launchpad.net/rosetta/+spec/translation-workflow-and-notification-system === Use Case 1 === ==== Launchpad user not associated with an official translation team ==== * User Mario is a Launchpad-registered user who speaks Croatian as well as English and is not associated to any Ubuntu translation team; * Mario has his system localized for Croatian and notices some mistakes in the translation of application '''foo'''; * Mario heads to Rosetta and finds package '''foo''' listed under the packages distribuited for Ubuntu Linux version '''bar'''; * Mario clicks on the appropriate link in LP that takes him to the translation page for package '''foo'''; * Since Mario had previously setup his LP account to use Croatian as his language, he is taken to the translation page of package '''foo''' for the Croatian language; * Mario clicks on the "Reserve for translation" button/link that is displayed in the UI; * This will "lock" the package and place it under a "read-only" mode for anybody else; * This will automatically notify the member(s) of the Ubuntu Croatian translation team that: * Package '''foo''' for Ubuntu '''bar''' has been reserved for translation by user Mario; * Mario is the only person who may work on the translation of '''foo''' for Ubuntu version '''bar'''; * Exception: Ubuntu Croatian translation team members can *unlock* package '''foo'''; * Mario starts translating the template, eventually modifying several strings; * This process could take minutes, hours, or even days; * All changes done so far did not get merged into the original template yet; * Mario decides he's done enough translations for package '''foo''' and clicks on the "Reserve for review" button/link in the UI; * This will automatically notify Mario that his contributions will be reviewed before being merged with the original template; * This will automatically notify the member(s) of the Ubuntu Croatian translation team that: * Package '''foo''' for Ubuntu '''bar''' is awaiting for review; ==== Croatian Ubuntu translation team member ==== * Croatian Ubuntu translation team member(s) receive a notification stating that user Mario has requested that his work done for package '''foo''' be reviewed; * The Croatian Ubuntu translation team member(s) navigates to the translation page for package '''foo''' for Ubuntu '''bar''' under the Croatian languages; * The member clicks on the "Start Review" button/link in the UI; * This will lock the package and place it under a "read-only" mode for anybody else; * This will automatically notify Mario that his contributions are being reviewed; * The member starts his review process by going through the queue of strings that were reviewed by user Mario; * This process could involve: * Accept the suggestion as is; * Accept the suggestion but perform a minor change; * Add a comment explaining the reason for the change (optional?) * Reject the suggestion; * Add a comment explaining the reason for rejecting it * The member finishes the review process and clicks on the "Commit review" button/link in the UI; * This will commit the changes back to the original template; * This will mark package '''foo''' for Ubuntu '''bar''' as *available* for translation; * This will automatically notify Mario that his contributions to package '''foo''' have been reviewed; * All the comments the member provided during the review process are also provided as a form of feedback; === Use Case 2 === ==== Croatian Ubuntu translation team member ==== * The Croatian Ubuntu translation team member(s) navigates to the translation page for package '''foo''' for Ubuntu '''bar''' under the Croatian languages; * The member clicks on the "Reserve for translation" button/link in the UI; * This will lock the package and place it under a "read-only" mode for anybody else; * This will automatically notify the Croatian Ubuntu translation team member(s) that package '''foo''' is being translated; * The member starts his translation process; * The member finishes the review process and clicks on the "Commit review" button/link in the UI; * This will commit the changes back to the original template; * This will mark package '''foo''' for Ubuntu '''bar''' as *available* for translation; * This will automatically notify the Croatian Ubuntu translation team member(s) that package '''foo''' has been translated; '''For future iteration''': * Once a contribution is processed, the following happens: * A patch with any strings belonging to upstream packages that were modified is generated; * A new bug report is created using the upstream bug tracking mechanism; * Make it part of the localization group for Croatian upstream team; * Attach patch == Feedback == * Any translating user should be able to leave a comment on proposed translated message, this would improve overall translation quality because any translator could review comments even on already approved translations as reference * "I've translated '''foo''' as '''bar''' because '''foo''' is used in application interface and it should be shorter" * It's nice that you work on this, Og. Some thoughts: Always notifying every translator when any package is locked would create a lot of unnecessary messages. Most people wouldn't be translating most of the packages anyway. Those interested, would see the state of the package (open, locked) on the translation page (one might be able to make a selection to be notified of changes in status). Also, notifying everyone of every minor change (spelling correction, etc.) seems unnecessary. Perhaps the translator should be able to mark the change as trivial. - Ari Torhamo - ---- CategoryTranslations