One of the most critical features for the Translation Management module is being able to send translation jobs to translation agencies and receive back completed translations.
To illustrate the importance of this, I'll start with how not to do it, based on an actual case, we're working on.
Overly Complicated Translation Process
One of our largest clients is using a closed-code CMS. That CMS indeed has a translation module, so we can get jobs and return completed translations. However, the integration between the translation module and the CMS is loose.
As a result, the process for the content admins is complicated. Admins need to go from one page to the other and send each to translation. Then, they need to get the completed translations from us, go back to the pages and upload the translation files - one at a time.
This (kinda) works, but requires someone on a full time basis to manage translations.
Obviously, no one is happy with this arrangement. More work means higher expenses to the client and less profit for the translation service.
Streamlined Process for Translation Services
Tight integration is key to creating an efficient process. If the different blocks know how to operate with each-other, the user has less work to do.
The Translation Management module offers two ways to work with translation services:
- The built in Translation Service interface (in the TM module)
- The standard XLIFF module
These are complementary routs, which cater to different needs.
Proprietary Interface Directly from Drupal DB
Many translation services (like ICanLocalize) already have their own API for receiving and returning translation jobs.
For them, it makes little sense to go through another format. The easiest implementation is to get the fields for translation from the database and send directly to their server.
Translation Management includes the hooks that allow 3rd party module to interface to it and register themselves as translation services. We even use these hooks ourselves for our own interface.
Standard XLIFF Interface
On the other hand, some translation services and many freelance translators want to use a standard tool-chain to translate. They're willing to sacrifice some integration in order to use their existing tools.
For example, Trados (the most popular translation software), can read and write XLIFF. So, allowing translators to get the XLIFF output and return XLIFF to Drupal would be a huge leap in workflow for them.
Drupal's XLIFF module does most of the work we need. With some changes, it looks like it's going to play very nice with Translation Management.
Our plan is to contribute patches to the XLIFF module to achieve maximum integration, so that instead of duplicating the code in our module, we can rely on XLIFF to do the job.
Your Views on Translation Service Integration?
What do you think? Do you use translation tools? What kind of integration would you like to see?