Part of the Tmgmt ecosystem · 53 projects
TMGMT Drush Helper lets you run the whole Translation Management Tool (TMGMT) workflow in bulk from the command line. You can stage hundreds or thousands of entities for translation, send them to your translation provider, pull back the finished translations and accept them, all without clicking through the UI one job at a time.
The module does not use the TMGMT cart. The cart stores its contents in the browser session, which Drush can't reach. Instead, the module creates real TMGMT job entities with job items attached. They show up right away at /admin/tmgmt/jobs, and you can review them there like any other job.
Features
tmgmt:job-batch-addcreates jobs and job items for any content entity type (nodes, media, taxonomy terms, custom blocks and so on). You can filter by bundle, entity ID or limit, and split the work into jobs of a set size. Use--skip-existingto avoid queuing the same content twice.- Reference discovery:
--include-referencesalso queues the taxonomy terms an entity references, including terms inside Paragraphs, and the custom blocks placed in its Layout Builder override. tmgmt:job-submit-allsubmits pending or rejected jobs to a translator. It can also assign the translator as it submits.tmgmt:job-importpulls finished translations from the provider and runs the import queues right away, so you don't have to wait for cron. It supports--fail-safefor imports that are stuck and--reprocessto import already-imported translations again.tmgmt:job-accept-allaccepts every job item waiting for review, which saves the translations to your content.tmgmt:job-delete-alldeletes jobs by state, owner or ID. Before deleting active jobs it aborts them at the provider, so you aren't billed for work that can no longer be imported.- Safe by default: every command supports
--dry-run. - Pluggable importers: each provider has its own way of fetching translations, so imports go through tagged importer services. An importer for the Lionbridge Content API is included, and you can add one for any other provider by implementing a single interface.
Post-Installation
The module has no settings page. Once TMGMT is set up with your target languages and at least one translator, you can use the Drush commands. A typical run looks like this:
# 1. Stage content and the terms/blocks it references. drush tmgmt:job-batch-add node --target-langcodes=es,fr --include-references --skip-existing # 2. Send the jobs to the provider. drush tmgmt:job-submit-all --translator=contentapi # 3. Once the provider has finished, import the translations. drush tmgmt:job-import --target-langcodes=es,fr # 4. Accept the imported translations. drush tmgmt:job-accept-all --target-langcodes=es,fr
Run drush help <command> to see all options. The README has the full reference, plus troubleshooting tips and a guide to writing your own importer.
Note: the commands run with full access, so entity access checks are bypassed. Limit who can run Drush on your servers.
Additional Requirements
- Drupal 10.3+ or 11
- PHP 8.3+
- Drush 13.7+
- Translation Management Tool 1.18+, with the Content Entity Source submodule (
tmgmt_content)
Recommended modules/libraries
- Lionbridge Translation Provider is needed by the included
tmgmt_helper_contentapisubmodule, which letstmgmt:job-importfetch translations from the Lionbridge Content API. All other commands work with any TMGMT translator. - Paragraphs and Layout Builder: when you use them,
--include-referencesalso finds the content nested inside them.
Similar projects
TMGMT includes the cart and the job overview UI, which work well for a handful of items. This module is for bulk runs that you script or repeat, such as an initial site translation, a large content migration or a scheduled sync, where using the UI isn't practical.
Supporting this Module
Please report bugs and request features in the issue queue. Patches and merge requests for importers for other translation providers are especially welcome.
Ask your assistant about TMGMT Drush Helper
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.x-dev | Dev | 10–11 | PHP >=8.3 | Oct 14, 2026 |