Logo

Managing a multilingual Drupal site shouldn't require a translation specialist just to understand why a button label is showing up in the wrong language. Translation Bliss makes translation predictable and auditable.



Features

Capability What it solves
Unified config translation Auto-translates all config using UI translations, with per-context overrides. No more manually hunting through config translation forms.
Config language widget Adds a langcode selector to every config form, so you always know — and can control — which language a config entity belongs to.
Source language flexibility Define translation contexts from any source language. Ideal for sites originally built in German, French, Arabic, or any non-English language.
Total translation export/import drush tex exports all module and custom translatable strings + translations into a structured directory. drush tim imports them back. Everything is git-friendly.
Bulk langcode conversion Drush commands to diagnose and batch-correct config langcode values across an entire site — a lifesaver when migrating or auditing legacy multilingual setups.


🗎 See Translation Bliss Documentation


Translation & Deployment Workflow

Here is a typical workflow for a multilingual site with English (source), German, and French:

1. Build and configure locally Build your site.

2. Export all translations

drush tex --destination=./translations

This exports every translatable string — including config labels, field names, views headers, and custom strings.

3. Translate The ./translations directory is handed to translators (or a translation service). PO files are edited directly, or processed through a CAT tool. Changes are committed to the git repository.

4. Review and deploy On deploy:

drush tim --source=./translations

Translations are imported cleanly into the target environment. No database-only translation state. No drift.

5. Fix a config langcode issue discovered on staging

drush translation-bliss:diagnose
drush translation-bliss:convert-langcodes --bundle=node --langcode=en

Bulk corrections applied, committed, and deployed — no manual clicking through admin UIs.


Supported by hook_dev_alter()

Consulting, training and coding for complex drupal projects. With 20 years of drupal coding and compelling contributions, we hook in when it gets dicey.

Contact us

Supporting organizations: 

Project information

Releases