Translation Management Tool
tmgmt
A comprehensive translation management system for Drupal that enables content translation workflow management through various sources and translation service providers.
Overview
The Translation Management Tool (TMGMT) module provides a sophisticated translation management system for Drupal sites. It acts as a central hub for managing translations by connecting translatable content sources (nodes, configuration, locale strings) with translation services (machine translation, human translation services, or local translators).
The module introduces the concept of translation jobs that track the progress of content through the translation workflow. Jobs can be in various states including Unprocessed, Active, Needs Review, Rejected, Aborted, and Finished. The system supports both one-time translation jobs and continuous translation jobs that automatically translate new and updated content.
TMGMT uses a pluggable architecture with Source plugins that expose translatable content and Translator plugins that process translation requests. This allows easy integration with various translation services and content types. The module also includes a translation cart feature for batch processing multiple items together.
Install
composer require 'drupal/tmgmt:8.x-1.17'
composer require 'drupal/tmgmt:8.x-1.15'
composer require 'drupal/tmgmt:8.x-1.13'
Features
- Translation job management with full lifecycle support (create, submit, review, accept, abort)
- Multiple source plugins for translating content entities, configuration entities, and locale strings
- Translator plugins for file-based exchange (XLIFF/HTML) and local user translation
- Translation cart for collecting multiple items for batch translation
- Continuous translation jobs that automatically process new and updated content on cron
- Translation suggestions system that recommends related content for translation
- Review workflow with approve/reject capabilities per translated segment
- Word count and HTML tags statistics for translation jobs
- Remote language mappings for translator service language code compatibility
- Views-based job and job item overview with filtering capabilities
- Integration with Content Translation and Configuration Translation core modules
- Auto-accept option to skip review process for trusted translators
- Purge mechanism for completed translation jobs
Use Cases
Translating website content with external translation agency
Export content to XLIFF files using the File translator, send files to a translation agency, and import completed translations. The workflow tracks job status and allows review before publishing.
Crowdsourced community translation
Use the Local translator to allow community members to translate content directly in Drupal. Assign language skills to users and create translation tasks that match their abilities.
Continuous content translation
Set up continuous jobs to automatically queue new and updated content for translation. Combined with machine translation services, this enables near-real-time multilingual content.
Batch translation of existing content
Use the Sources overview to filter untranslated content, add items to the cart, and create translation jobs for multiple items at once into multiple target languages.
Configuration translation management
Translate site configuration (views, menus, blocks, field labels) using the Config source. Export to XLIFF for professional translation or use local translators.
Interface string translation workflow
Use the Locale source to manage translation of custom interface strings. Track which strings need translation and manage the translation process through TMGMT workflow.
Tips
- Use the cart feature to collect items from different sources before creating jobs, enabling efficient batch translation workflows.
- Enable 'Auto accept' on trusted translator providers to skip the review step for machine translation or trusted services.
- Set up continuous jobs with appropriate source filters to automatically translate only specific content types or bundles.
- Use the purge settings to automatically clean up completed jobs and keep the database size manageable.
- Create multiple translator providers with different settings (e.g., one for urgent translations, one for standard) to give editors flexibility.
- Review the word count and HTML tag statistics before submitting jobs to estimate translation costs.
- Use the suggestions feature to discover related content that should be translated together for consistency.
Dependencies
Related Projects
TMGMT Content source integrates with Content Translation to manage entity translation workflows.
TMGMT Config source integrates with Configuration Translation to manage config entity translation.
TMGMT Locale source integrates with the Locale module for interface string translation.
Provides Views-based job and job item listings with custom fields, filters, and bulk operations.
Content source supports translating paragraphs when used with entity_reference_revisions field handling.
Content source includes field processor for translating metatag fields.
Content source includes field processor for handling path alias fields.
Admin Pages
| Title | Path | Description |
|---|---|---|
| Translation | /admin/tmgmt |
Main translation dashboard providing access to all translation management features. Displays overview blocks for quick access to jobs, sources, cart, and settings. |
| Settings | /admin/tmgmt/settings |
Configure global translation management settings including workflow options, performance tuning, security, and text format handling. |
| Providers | /admin/tmgmt/translators |
Manage translation service providers. Add, edit, and configure translators that process translation requests. Each provider uses a specific translator plugin. |
| Add Provider | /admin/tmgmt/translators/add |
Create a new translation provider by selecting a translator plugin and configuring its settings. |
| Sources | /admin/tmgmt/sources |
View translation status of all translatable content on your site. Filter by source type, entity type, language, and translation status. Create new translation jobs from this overview. |
| Cart | /admin/tmgmt/cart |
Manage items in the translation cart. Review selected content, choose source and target languages, and request translations for all items at once. |
| Translation Job | /admin/tmgmt/jobs/{tmgmt_job} |
View and manage a specific translation job. Configure provider settings, view job items, manage suggestions, and submit for translation. |
| Review Job Item | /admin/tmgmt/items/{tmgmt_job_item} |
Review and edit translations for a specific job item. Accept, reject, or modify individual translated segments. |
| Add Continuous Job | /admin/tmgmt/continuous_jobs/continuous_add |
Create a continuous translation job that automatically processes new and updated content for the configured source and target language pair. |
Permissions
| Permission | Description |
|---|---|
|
Full administrative access to all translation management features. Restricted access permission. |
|
Allows users to create new translation jobs and add items to the cart. |
|
Allows to delete jobs that have not been submitted or have been aborted. |
|
Allows users to submit translation jobs to providers. |
|
Allows users to review, accept, and reject returned translations. |
|
Root permission for translation access: Users with this permission are eligible to be granted translation access to a translation task. (tmgmt_local) |
|
Administer translation tasks including assigning and managing local translators. (tmgmt_local) |
Hooks
| Hook | Description |
|---|---|
hook_tmgmt_source_plugin_info_alter |
Alter source plugins information. |
hook_tmgmt_translator_plugin_info_alter |
Alter information about translator plugins. |
hook_tmgmt_source_suggestions |
Return a list of suggested sources for job items to translate together. |
hook_tmgmt_job_checkout_before_alter |
Allows to alter job checkout workflow before the default behavior kicks in. |
hook_tmgmt_job_checkout_after_alter |
Allows to alter job checkout workflow after the default behavior. |
hook_tmgmt_job_before_request_translation |
Called before requesting translation for a job. |
hook_tmgmt_job_after_request_translation |
Called after requesting translation for a job. |
hook_tmgmt_data_item_text_output_alter |
Allows to alter a text segment masking HTML tags for output. |
hook_tmgmt_data_item_text_input_alter |
Allows to alter a text segment unmasking HTML tags for input. |
hook_tmgmt_job_item_state_definitions_alter |
Allows to alter job item state definitions. |
Drush Commands
| Command | Description |
|---|---|
|
Import XLIFF translation files into TMGMT jobs. |
Troubleshooting
Check if the translator provider is properly configured and accessible. Review job messages for errors. Verify the translator plugin supports the language pair. For file translator, ensure the import file matches the job.
Configure at least one translation provider at /admin/tmgmt/translators. Ensure the provider plugin is enabled and properly configured with required credentials or settings.
Verify the content type is enabled for translation in Content Translation settings. Check that the content has a source language set. Ensure you have the appropriate permissions.
Verify cron is running. Check if 'Submit continuous job items on cron' is enabled in TMGMT settings. Review the continuous job configuration to ensure source types are selected.
Ensure the XLIFF file matches the original export (same job ID, item structure). Check for XML syntax errors. Verify the file encoding is UTF-8.
Security Notes
- The 'administer tmgmt' permission is marked as restricted and grants full access to all translation features. Grant carefully.
- The 'Allow access to source for translators' setting exposes unpublished content to anyone with job access. Disable for sensitive content.
- Translation providers may send content to external services. Review provider privacy policies for compliance requirements.
- Local translators can see source content. Ensure translator permissions align with content access policies.