Translation Management Tool

A comprehensive translation management system for Drupal that enables content translation workflow management through various sources and translation service providers.

tmgmt
10,612 sites
115
drupal.org

Install

Drupal 11, 10 v8.x-1.17
composer require 'drupal/tmgmt:8.x-1.17'
Drupal 9 v8.x-1.15
composer require 'drupal/tmgmt:8.x-1.15'
Drupal 8 v8.x-1.13
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
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 7
Administer translation management

Full administrative access to all translation management features. Restricted access permission.

Create translation jobs

Allows users to create new translation jobs and add items to the cart.

Delete inactive translation jobs

Allows to delete jobs that have not been submitted or have been aborted.

Submit translation jobs

Allows users to submit translation jobs to providers.

Accept and reject translation jobs

Allows users to review, accept, and reject returned translations.

Provide translation services

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

Administer translation tasks including assigning and managing local translators. (tmgmt_local)

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
Translation job stuck in Active state

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.

No translators available message

Configure at least one translation provider at /admin/tmgmt/translators. Ensure the provider plugin is enabled and properly configured with required credentials or settings.

Content not appearing in Sources overview

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.

Continuous jobs not processing

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.

XLIFF import fails validation

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.