MANAGING TRANSLATION WORKFLOWS FOR DRUPAL 7
About Me
Suzanne Kennedy, Co-founder
Training, Development, Consulting
evolvingweb.ca | 514-844-4930
@suzanne_kennedy
Multilingual Projects
Translation Workflows
Goal of Translation Workflows
• Translation is:• Time-consuming • Expensive
• How can you speed up the process and reduce the amount of text to be translated?
What are Translation Workflows?
Translator
Benefits of an External Translation Tool
• Easier for translations to learn• Tracks cost of translation• Provides integration with machine/
community-sourced translations• Advanced features (translation memory)• Integration with multiple translation teams
Benefits of Doing Translation in Drupal
• Less overhead• Less expensive• Add translations as you go• Takes advantage of Drupal’s content
management tools• Easier to provide context
Two Types of TextUser-Interface Strings Content
Two Types of TextUser-Interface Strings Content
+
In code
In the database
Translation Workflows for UI Strings
Translation Workflow for UI Strings
1. Pull in contributed translationsfrom localize.drupal.org
2. Override translations +add translations of user-defined strings
Using Translations from Localize.Drupal.org
UI Strings in Code
Use Localize.Drupal.org• Each language has a project• Translators contribute translations in their
language• Some projects have better coverage than
others.
Localize.Drupal.org Project Page
What is a .po file?• Text file storing the
original text and the translations.
• A .pot file is a template file, containing only the original text to be translated.
Upload .po files to Drupal
Localization Update
drupal.org/project/l10n_update
Localization Update
Translation Overview
Overriding Translations in Drupal
Overriding a Translation
Editing a Translation
Editing a Translation
Override Translations
Use Localization Client
drupal.org/project/l10n_client
Sharing Your Translations
Add your API key from localize.drupal.org to contributeyour translations back to the community.
Overriding/Adding Translations Outside of Drupal
Use POEdit to Translate
Translations Spreadsheet
Translating Outside Drupal
Translator
CSV Template
CSV with Translations
.po file for each language
Re-using Your Translations
Translating User-Defined Strings
User-Defined Strings• Strings added in the admin UI (not in
code)• For example: Views text
Other User-Defined Strings
• Block text• Menu items• Field settings
Translate Interface
Translate Tab
Translate Tab
User-Defined Strings
Challenges• Giving translators access to block/field/
menu configuration• Allowing translators to use all input formats• Changing the original values• Changing the default language
Translation Workflows for Content
Content Translation Workflow
AuthorTranslator
1. Author creates a new node 2. Translators adds a translation
Translation Workflows for Content: Translating in Drupal
Translation Interface in Drupal
Node-Level vs. Field-Level Translation
Field-Level Translation Node-Level Translation
Creating a Translation Workflow from Scratch
• Permissions for translators• Rules and Flag to trigger translation
requests• Views for Translators
Permissions for Translation
• Content Translation: Translators need to be able to create content
• Entity Translation: Permission to edit the Entity Type
• No granular translation permissions per content type (use i18n_access)
Typical UI for Translators
Challenges• Different UI for Entity Translation/Content
Translation (Confusing)• Professional translators need to learn
Drupal• Need to build system for reviewing
translations
Modules for Translation Workflow
• Translation Management Tool (TMGMT)• Lingotek Collaborative Translation
Translation Workflows for Content: TMGMT Module
Translation Management Tool (TMGMT)
drupal.org/project/tmgmt
Translation Management Tool (TMGMT)
Drupal
Translators
• Microsoft (Bing) Translator (machine)
• Google Translate (machine)
• Nativy (human)
• MyGengo (human)
• Supertext (human)
• One Hour Translation (human)
Microsoft Translator
Microsoft Translator
Requesting Translations
Choosing a Translator
Review Translation
Review Translation
Accepted Translation Appears
Translate in Bulk
Translation ‘Jobs’
Benefits of TMGMT• Works with Entity and Node Translation• Easy to configure• Allows you to hook into your own
translation service, if you’re a developer• Translation of UI Strings on its way
(blocks, menus, etc.)• Translation UI in Drupal on its way
Translation Workflows for Content: Lingotek Module
Lingotek Module
drupal.org/project/lingotek
Lingotek
Drupal
IndividualTranslator
Create a Lingotek Account
Connect to Machine Translation Tool
Create a Project
Create a new project for each Drupal website
Lingotek Translation Per Content Type
Disables manual translation of content
Lingotek Translation Tool• Enables translation at the field-level• Need to flag fields as being translatable
Send a Node for Translation
Translating a NodeSwitch the site to French, and you’ll see a message:
Click on the link to go to the Lingotek Translation UI
Updating the Translation
In order to accept the translation and publish it to the site, you have to click ‘Update’.
Translation Appears
Project Status
Benefits of Lingotek• Translation memory• Sophisticated translation workflow• Advanced feature set (i.e. settings for
tokens to ignore, etc.)• Community-sourced translations• Provides a UI for professional translators
Conclusion
What to Take Away• Map out your translation workflow before
you start• Talk to your translators and figure out
their needs/role• Use the Localization Update module• Plan for adding more languages• Take advantage of translation
management modules
Training Program
We offer public and private Drupal training sessionsevolvingweb.ca/training
http://munich2012.drupal.org/program/training/building-multilingual-websites-drupal-7