Translates pages and content with Supertext AI the moment an editor creates them in another language in Neos — via the language menu's Create and copy (or Create empty) dialog, or the supertext:translate command. No new workflow: editors keep using Neos' own content dimensions.
Works with Neos 9.0+ (tested on 9.1), PHP 8.2+.
- The editor switches the language menu to a language the page doesn't exist in yet and chooses Create and copy. Neos creates the page and its content in that language.
- A content repository command hook notices these new language variants and collects them.
- After the request, all their text goes to Supertext as one HTML document per target language, so a page with twenty content elements is a single API round trip.
- The translations are written back as normal edits in the editor's workspace (history and permissions included), the page's URL segment is rebuilt from the translated title, and the editor reviews and publishes as usual.
If Supertext fails, the pages are still created, as untranslated copies, and the reason is logged.
Which fields are translated is derived from the node types: inline-editable texts (formatting kept) and Inspector text, text area and rich text fields. Override per property with options.supertext.translate.
Besides translating with Supertext AI, you can export a document node as a file, have it translated elsewhere and import the result.
- Where: the back-end module Management → Supertext for editors (choose a page, the languages and the format, download; upload the translated file, see the summary), working in the editor's own workspace so imported translations are reviewed and published as usual. For administrators and scripts also the CLI commands
./flow supertext:export <node> <language>…and./flow supertext:import <file>. - Formats: XLIFF 1.2 for translation tools such as Trados, memoQ or Phrase (formatting travels as protected tags; several target languages in one file), or HTML (one language per file) for translators or Supertext's web app, which keeps the file's head and
data-st-idattributes, so the translated file imports as it is. - Import: the file says what it was exported from and for which language. The translations are written with the same rules as a Supertext AI translation, and a summary shows what was imported and what was skipped: source changed since the export (import those anyway with Also import texts whose source changed since the export), not translated, formatting changed, not in the file.
- Safe: files over 10 MB, files from another system and translations that add markup the source doesn't have are refused; uploaded files aren't stored.
Details: user guide.
| Guide | For |
|---|---|
| Installation guide | Administrators: requirements, install, API key, languages, settings, troubleshooting |
| User guide | Editors: translating, reviewing, publishing, what gets translated |
| Developer guide | Architecture, API protocol, local setup, tests, screenshots, demo deployment |
You need a Supertext account (create one) and an API key (supertext.com → Integrations → API, requires the Admin role).
Quick start (not on Packagist yet — add the GitHub repository first, see the installation guide):
composer require supertext/neos-translation
export SUPERTEXT_API_KEY=... # or Supertext.NeosTranslation.apiKey
./flow supertext:checkChoose each language's Supertext language under Administration → Supertext (a combo box per language, Supertext's suggestion preselected): needed only where there is no obvious default (e.g. en_UK → en-GB) or to pick another variant (de → de-CH). Supertext.NeosTranslation.languages in Settings.yaml overrides it for automated setups; supertext:check lists the languages.
Translation outside Neos (translation tools, translators, Supertext's web app): editors use Management → Supertext to export an XLIFF 1.2 or HTML file and import the translated file; on the command line ./flow supertext:export <node> <language> and ./flow supertext:import <file> do the same. The package sends version information (no content, no key) to Supertext unless you turn it off; see the installation guide.
demo/ builds a container with Neos 9.1, the Neos demo site (English, German) plus empty French and Italian, and this package. It's deployed to Railway on every push to main — details in the developer guide.
See the developer guide and CHANGELOG.
Supertext offers AI and professional translation plugins for these systems:
| System | Plugin | Type of integration | What it does |
|---|---|---|---|
| Adobe Experience Manager | supertext-aem-connector | Translation connector: two AEM content packages for AEM's Translation Integration Framework. | Sends AEM translation projects to Supertext and imports the results |
| ApostropheCMS | Apostrophe-Supertext-Translation | Apostrophe module (npm): a translation provider for Apostrophe's own Localize… step. | Translates pages and pieces as editors localize them, widgets and rich text included |
| Contao | Contao-Supertext-Translation | Contao bundle (Composer) that adds a back-end action. | Translate with Supertext in the site structure: pages or whole websites into other languages |
| Craft CMS | CraftCms-Supertext-Translation | Craft plugin (Composer) with a panel on the entry page. | Translates entries into your other sites, Matrix and rich text included |
| Directus | Directus-Supertext-Translation | Directus extension bundle (npm): interface, endpoint, Flow operation and module. | Translate with Supertext box on the item form, fills the Translations field |
| django CMS | djangoCMS-Supertext-Translation | Django app (Python package) that adds a toolbar entry. | Translates pages and their plugins from the toolbar |
| Drupal | tmgmt_supertext_ai | Drupal module: a translator provider for the Translation Management Tool (TMGMT), by MD Systems. | Translates TMGMT jobs with Supertext AI |
| Ghost | Ghost-Supertext-Translation | Separate connector service (Ghost has no admin plugins): works through internal tags, webhooks and the Admin API. | Tag a post #translate-… and a translated draft appears |
| Grav | Grav-Supertext-Translation | Grav 2 plugin with an Admin2 panel. | Supertext panel in the page editor, Markdown kept intact |
| HubSpot | HubSpot-Supertext-Translation | Hosted app connected to HubSpot with OAuth, working through HubSpot's multi-language content. | Translates website and landing pages, blog posts, marketing emails and knowledge base articles into draft language versions |
| Joomla | Joomla-Supertext-Translation | Joomla system plugin (installable package). | Translates articles into linked, unpublished language versions |
| Magnolia | Magnolia-Supertext-Translation | Magnolia module with a Translate with Supertext action in the Pages app. | Translates pages, areas and components into the site's other languages |
| Neos | Neos-Supertext-Translation | Neos package (Composer) that hooks into the content repository, with a Supertext backend module for translation files. | Translates automatically when an editor creates a page in another language |
| Orchard Core | OrchardCore-Supertext-Translation | Orchard Core module (.NET) with an admin page and a localization hook. | Translates content items into other cultures, on demand or on localization |
| Payload CMS | Payload-Supertext-Translation | Payload plugin (npm) added to payload.config. |
Translate button for localized collections and globals |
| Silverstripe | Silverstripe-Supertext-Translation | Silverstripe module (Composer) on top of Fluent. | Supertext tab translates pages and Elemental blocks into Fluent locales |
| Strapi | Strapi-Supertext-Translation | Strapi 5 plugin (npm) with a Content Manager panel. | Translates entries into other locales from the Content Manager |
| TYPO3 | Typo3-Supertext-Translation | TYPO3 extension (Composer) that hooks into TYPO3's own localization, with a Supertext backend module for translation files. | Translates pages and content elements as editors localize them |
| Umbraco | Umbraco-Supertext-Translation | Umbraco package (NuGet) with a backoffice extension. | Translate with Supertext for pages, block lists and grids included |
| Wagtail | Wagtail-Supertext-Translation | Python package: a machine translator for wagtail-localize. | Translates pages and snippets inside wagtail-localize's editor |
| WordPress (Polylang) | supertext-wordpress-polylang | WordPress plugin: a machine-translation service for Polylang Pro, plus professional translation orders. | AI translation next to DeepL in Polylang, and human translation orders |
| System | Plugin | Type of integration | What it does |
|---|---|---|---|
| Akeneo PIM | Akeneo-Supertext-Translation | Akeneo PIM bundle with a Translate with Supertext action on the product page. | Translates products and product models into your other locales |
| AtroPIM | AtroPIM-Supertext-Translation | AtroCore module with a button on the product and a mass action in the list. | Translates products and other AtroCore records into your other languages |
| Pimcore | Pimcore-Supertext-Translation | Pimcore bundle (Composer) with a Translate with Supertext button in Pimcore Studio. | Translates documents into linked language versions and data objects' localized fields |
| System | Plugin | Type of integration | What it does |
|---|---|---|---|
| Magento | Magento-Supertext-Translation | Magento 2 module (also Mage-OS) with a mass action in the admin lists and a button on the edit pages. | Translates products, categories, CMS pages and blocks into your store views' languages |
| PrestaShop | PrestaShop-Supertext-Translation | PrestaShop module with a bulk action in the back-office lists. | Translates products, categories and CMS pages into your shop's other languages |
| Shopify | Shopify-Supertext-Translation | Shopify app in the Shopify admin. | Translates products, collections, pages and blog posts into all your shop's languages |
| Wix | Wix-Supertext-Translation | Wix app with a dashboard page (hosted service), working through Wix Multilingual. | In development: translates Wix Stores products and other Wix Multilingual content into your site's languages |
| System | Plugin | Type of integration | What it does |
|---|---|---|---|
| Mailchimp | Mailchimp-Supertext-Translation | Hosted app connected to Mailchimp with OAuth: Supertext folders in Mailchimp and a translate page. | In development: turns a campaign into one draft per language, each sent to the subscribers with that language |
| Application | Plugin | Type of integration | What it does |
|---|---|---|---|
| Adobe InDesign | Adobe-InDesign-Translation | InDesign scripts (ExtendScript). | Exports all text to XLIFF 1.2 for any CAT tool and imports the translations with formatting intact |
| Adobe Illustrator | Adobe-Illustrator-Translation | Illustrator scripts (ExtendScript). | Exports all text to XLIFF 1.2 for any CAT tool and imports the translations with formatting intact |
| CorelDRAW | CorelDRAW-Supertext-Translation | CorelDRAW VBA macro. | Exports all text to XLIFF 1.2 for any CAT tool and imports the translations with formatting intact |
GPL-3.0-or-later
