﻿---
title: "Translation Manager: the small words make a multilingual site feel complete."
url: "https://lindemann.design/work/translation-manager/"
description: "Translation Manager brings interface and form translations into Craft CMS, with language coverage, optional approval, imports and backups."
---

# Translation Manager: the small words make _a multilingual site feel complete._

Buttons, form labels and error messages are part of the experience in every language. We built Translation Manager to give teams one place in Craft CMS to collect, translate and review that text. It brings template text, Formie and Freeform forms into a shared workflow, so everyday language updates can happen in the Control Panel.

-   [Plugin Store](https://plugins.craftcms.com/translation-manager?craft5)
-   [GitHub](https://github.com/LindemannRock/craft-translation-manager)
-   [Docs](https://github.com/LindemannRock/craft-translation-manager/tree/main/docs)

In use

-   ![Manage translations and review status by language.](/assets/work/translation-manager/overview-translations-list.webp)
    
    Manage translations and review status by language.
    
-   ![Search, filter and edit text in one workspace.](/assets/work/translation-manager/managing-translations-list.webp)
    
    Search, filter and edit text in one workspace.
    
-   ![See translation coverage and the work still pending.](/assets/work/translation-manager/managing-translations-statistics.webp)
    
    See translation coverage and the work still pending.
    
-   ![Switch languages while keeping your filters.](/assets/work/translation-manager/multi-site-site-switcher.webp)
    
    Switch languages while keeping your filters.
    
-   ![Review new and changed translations before importing.](/assets/work/translation-manager/import-export-preview.webp)
    
    Review new and changed translations before importing.
    
-   ![Manage saved copies of the translation library.](/assets/work/translation-manager/backups-list.webp)
    
    Manage saved copies of the translation library.
    
-   ![Choose which template and form text to collect.](/assets/work/translation-manager/integrations-settings.webp)
    
    Choose which template and form text to collect.
    
-   ![Find unused text and manage cleanup tasks.](/assets/work/translation-manager/maintenance-tools.webp)
    
    Find unused text and manage cleanup tasks.
    

Role

Design, architecture and engineering

Stack

-   Craft CMS 5.10+
-   PHP 8.2+
-   Formie, Freeform

Status

On the Plugin Store

Since

2025 to present

1.  **Language** Translate labels and messages in one workspace.
2.  **Review** See what needs translation or approval.
3.  **Continuity** Keep shared text consistent across your sites.

The problem

## The page is translated. The form still needs work.

A multilingual site can have carefully translated articles while its buttons, dropdown options and validation messages remain in the original language. These smaller pieces of text often live in templates, language files or form settings, spread across several tools.

Translation Manager grew out of that work on client sites. It gives the team a shared place to manage interface and form text, with progress and review status visible alongside each translation. Page content continues to use Craft's own content translation workflow.

Collecting text

## Bring the text into one place.

Developers can collect translatable text from templates and import existing language files. With the Formie or Freeform integration enabled, the plugin captures supported labels, options, buttons and messages when forms are saved. That includes details such as address subfields and multi-page form controls.

For template text, optional runtime capture adds missing strings as they are used. It is off by default and, when enabled, is restricted to development mode unless configured otherwise. Teams can exclude categories of text or forms that should be managed separately.

The aim is to make the translation work visible without asking translators to edit PHP files or search through individual form settings.

Translation and review

## See what is ready and what still needs attention.

Choose a language, search for a label or filter the list to pending translations. Text is edited in place, with right-to-left input for languages such as Arabic and Hebrew. Status labels distinguish pending, draft, translated and unused text.

Teams can enable an approval step when translation and sign-off belong to different people. Translators without approval permission save drafts; an approver publishes them, with the reviewer and time recorded. Approval is optional, so a smaller team can publish directly when it saves.

The coverage view shows how much has been translated and what remains in the queue. It gives the team a practical way to check readiness for each language before launch or after a form changes.

![See translation coverage and the work still pending.](/assets/work/translation-manager/managing-translations-statistics.webp)

See translation coverage and the work still pending.

Across sites

## Translate shared text once per language.

Sites that use the same language share the same translation. A button used on several English sites does not need a separate translation for each one. Regional variants can stay separate or be mapped to a common language where the wording should be shared.

The language switcher carries search and filter choices across, so someone reviewing pending form text can keep that task in view as they move between languages. Access to editing and approval is controlled by translation source.

For developers

## Keep the template familiar. Choose how translations are served.

Developers use Craft's standard translation filter with a configured category, such as `{{ 'Submit'|t('messages') }}`. The plugin manages the corresponding text and can generate the PHP language files Craft reads when translations are saved.

PHP files are the default source for the live site. Database and hybrid modes are also available for hosting setups where generated files cannot reliably be shared or retained. In hybrid mode, published database translations take precedence, with PHP files as a fallback.

A read-only GraphQL interface makes the translation catalogue available to separate frontends. This keeps the language workflow in Craft even when another application presents the content.

Imports and backups

## Make larger updates easier to review.

CSV imports guide the team through column mapping and a preview of new, changed, unchanged and blocked rows. Existing translations can be exported for work outside Craft and brought back through the same reviewable process. Developers can also import PHP translation files in development mode.

Backups can be created manually or on a daily, weekly or monthly schedule, using local storage or a configured Craft asset volume. Restore validates the saved data, and protected maintenance operations require a safety backup before proceeding.

Maintenance tools help teams find unused text and clean up a category, language or form provider. With [Logging Library](/work/logging-library/) installed in Craft, available logs can be inspected in the Control Panel when an import or generation task needs investigation.

![Review new and changed translations before importing.](/assets/work/translation-manager/import-export-preview.webp)

Review new and changed translations before importing.