Translation Management Tool
A comprehensive translation management system for Drupal that enables content translation workflow management through various sources and translation service providers.
tmgmt
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'
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.
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.
Technical Details
Admin Pages 9
/admin/tmgmt
Main translation dashboard providing access to all translation management features. Displays overview blocks for quick access to jobs, sources, cart, and settings.
/admin/tmgmt/settings
Configure global translation management settings including workflow options, performance tuning, security, and text format handling.
/admin/tmgmt/translators
Manage translation service providers. Add, edit, and configure translators that process translation requests. Each provider uses a specific translator plugin.
/admin/tmgmt/translators/add
Create a new translation provider by selecting a translator plugin and configuring its settings.
/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.
/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.
/admin/tmgmt/jobs/{tmgmt_job}
View and manage a specific translation job. Configure provider settings, view job items, manage suggestions, and submit for translation.
/admin/tmgmt/items/{tmgmt_job_item}
Review and edit translations for a specific job item. Accept, reject, or modify individual translated segments.
/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 7
Hooks 10
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 1
drush tmgmt_translate_import
Import XLIFF translation files into TMGMT jobs.
Troubleshooting 5
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 4
- 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.