Translation Management Tool tmgmt

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

10,612
sites
115
Stars
Drupal 8 · Drupal 9 · Drupal 10 · Drupal 11
Compatible
GNU General Public License, version 2 or later
License

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

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'

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

Language Core Required
Views Core Required
Block Core Required
Options Core Required

Related Projects

Content Translation Core

TMGMT Content source integrates with Content Translation to manage entity translation workflows.

Configuration Translation

TMGMT Config source integrates with Configuration Translation to manage config entity translation.

Locale Core

TMGMT Locale source integrates with the Locale module for interface string translation.

Views Core

Provides Views-based job and job item listings with custom fields, filters, and bulk operations.

Paragraphs

Content source supports translating paragraphs when used with entity_reference_revisions field handling.

Metatag

Content source includes field processor for translating metatag fields.

Pathauto

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

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

  • 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.

Meta

Author
berdir
License
GNU General Public License, version 2 or later
Security
Covered
Created
2012/01/16
Updated
2024/11/25