Repository navigation
Install and setup: installation guide.
What's in 1.0.0
First stable release. Every plugin release is now tested end to end against the live Supertext API (.github/workflows/e2e.yml).
-
Removed: support for Node.js 20 (end of life since 30 April 2026). The plugin now needs Node.js 22 or newer (
engines), like current Strapi 5; CI tests Node 22, 24 and 26. -
Security: the development setup and the demo force the fixed versions of
zod4 (4.6.7) andnodemailer(10.4) that Strapi pins to vulnerable releases (npmoverrides), and take the fixedfast-uriandfollow-redirects. No change to the plugin itself. -
Tested with Strapi 5.61 (the demo moved from 5.59.0 to 5.61.0).
-
Docs: a short demo movie at the top of the README (
docs/images/demo.gif): an editor translates the sample article into German and French and opens the German draft. Recorded from the demo against the stand-in withnpm run docs:movie. The MP4 version (not committed) has an English voice-over (Piper voice “alba”, CC BY 4.0;pip install piper-tts,MOVIE_VOICE=0for none). -
Docs: an install and configuration movie (MP4 with voice-over, not committed), recorded with
npm run docs:movie:install: the install commands from the installation guide, then Settings → Supertext → Translation (key check, language mapping) as an administrator. -
Added: the Supertext support form is linked in the README, the user guide and GitHub's "New issue" page.
-
Added: support for Node.js 26, tested in CI next to Node 20, 22 and 24. Tested with Strapi 5.59 (the demo runs 5.59.0).
-
Added: Translation review on/off per locale (Settings → Supertext → Translation → Languages, a checkbox in each locale's row, off by default): translations into a locale with Translation review ticked go through Supertext's review service (Supertext Localization Review), where customers and Supertext linguists correct them on the website with a Chrome extension; corrections come back into Strapi with the next translation, and texts translated before keep their (reviewed) wording. Same API key, billing, languages and messages; other locales keep going directly to Supertext. New option
reviewUrl(envSUPERTEXT_REVIEW_URL; defaults to Supertext's review service;''turns review off everywhere) andlocales.<locale>.reviewinconfig/pluginsas an override. Saved with the language settings in the core store (existing installations start with review off). All four interface languages. -
Changed: requests to Supertext name the plugin's version in the User-Agent (
Strapi-Supertext-Translation/<version>, before:strapi-plugin-supertext-translation). -
Added: Export for translation (XLIFF 1.2 or HTML) and import of translated files; Supertext SDK 0.5.0. In the Supertext panel, Export for translation downloads the entry's texts for the ticked languages as an XLIFF file (for translation tools) or an HTML file (one language, e.g. for Supertext's web app); Import translation reads the translated file back and saves it like a Supertext translation (draft, slug kept or generated), with a summary of imported, skipped (source changed since the export; optional), untranslated, invalid and missing texts. Same permissions as translating, no API key needed, uploads up to 10 MB, never kept. New admin routes
GET /supertext/exportandPOST /supertext/import. All new strings in English, German, French and Italian. -
Added: language combo boxes under Settings → Supertext → Translation → Languages: one select per Strapi locale (source included, one choice serves both directions) with Supertext's target languages as "Name (code)", and Formal/Informal where the chosen language offers it. Saved in Strapi's database (core store), checked against Supertext's list on the server. New admin permissions Settings → Supertext → Read/Update (Super Admins have both): Read opens the page and Test connection, Update saves.
localesinconfig/pluginsstill works and wins per locale (shown read-only on the page), so existing configurations keep working unchanged. All new strings in English, German, French and Italian. -
Changed: obvious defaults (bundled Supertext SDK 0.4.0, commit
6aaad33): a locale nobody mapped is translated with the SDK's default and the combo box preselects it:de→de-DE,en→en-US,fr→fr-FR,it→it-IT,pt→pt-PT,zh/zh-CN→zh-Hans,zh-TW→zh-Hant,sr→sr-Latn,es-ES→es. Locales without a default (en-IE,de-LI,gsw, …) show — choose — in red and still fail with has no Supertext language yet, which now points to the settings page. -
Changed:
GET /supertext/statusno longer lists the languages; the settings page reads them from the newGET /supertext/settings. -
Changed: version reports, the API key check result and the reachability ping now use Supertext Plugin Health 0.1.0 (bundled in
server/src/vendor/supertext-plugin-health); bundled Supertext SDK updated to 0.3.0 (commitf7bd414). No change for sites: settings and stored state stay as they are. -
Added: support for Node.js 24 (the current LTS version), tested in CI next to Node 20 and 22.
-
Changed: languages are no longer guessed. A Strapi locale that is a Supertext code (
de-CH,fr-CH,es,zh-Hans, apart from case and_/-) is used as it is; every other locale needs its Supertext code in the plugin'slocalessetting (code, the language mapping, e.g.de: { code: 'de-CH' }). The default regions are gone: they were wrong for most languages (Supertext wantses,sl,nlwithout region andzh-Hansinstead ofzh-CN). An unmapped locale gets the message has no Supertext language yet and nothing is sent for it; the settings page marks it Not mapped. Formal/informal set for a language Supertext offers no tone for (e.g. English) is reported as no formal or informal tone instead of being sent, and the settings page warns about it. Both messages in English, German, French and Italian. -
Added: automatic API key check when the key is new or changed, on Test connection and when Supertext rejects the key during a translation. The settings page shows the latest result with its time (the connection works, rejected, no key, Supertext can't be reached, error) in all four languages; Test connection now shows it there instead of a notification.
-
Added: Send version information to Supertext (config option
versionReports, on by default;SUPERTEXT_VERSION_REPORTS=0turns it off too): after an update and when the key check result changes, the plugin sends the site URL, the plugin, Strapi, Node.js and SDK versions, whether a key is set, the key check result and the ping address to Supertext. No content, no API key and no personal data. Shown on the settings page. State is kept in Strapi's core store. -
Added: public ping endpoint
GET /api/supertext/pingthat only echoes Supertext's challenge, so Supertext can check the site is reachable (404 with version reports off). -
Fixed: bundled Supertext SDK 0.2.1 (commit
eeba8fa): onecodeper locale serves both directions; a mapped locale is sent as a source in its source form (de-CH→de), so English as the source no longer fails withen: { code: 'en-US' }. -
Changed: bundled Supertext SDK 0.2.0 (commit
c66cb4d,v1namespace): the key check, version reports and the API's language list.POST /supertext/test-connectionreturns the key check ({ ok, check }) instead of an error for a rejected key;GET /supertext/statusalso lists the locales with their Supertext codes and the reporting state. -
Changed: the connection to Supertext now uses the shared Supertext SDK (TypeScript SDK 0.1.0), bundled into the plugin, so nothing else needs installing. Translation works as before; an unsupported language pair now has its own message (Supertext does not support this language pair) in all four languages, and the file at Supertext is also deleted after errors. An unknown language (e.g.
xx-YY) is now reported as an unsupported language pair too, not as "resource not found" (Supertext answers it with HTTP 404). -
Tested with Strapi 5.57 (development setup and demo moved from 5.56.0, with updated dependencies that fix known vulnerabilities).
-
Added: French and Italian interface (and German where it was missing): the panel, settings page and error messages follow the user's Strapi interface language. The demo offers German, French and Italian as interface languages.
-
The No API key and Authentication failed messages now link to both Supertext account signup and API key generation.
-
The settings page shows the installed plugin version, linked to its release notes on GitHub.
-
The source language is sent without region (
en-US→en, from itscodesetting if there is one), and the settings page shows the code actually sent for each locale.