enupal / translate
Translate entry content, templates and even plugins. With Google or AI.
Package info
Type:craft-plugin
pkg:composer/enupal/translate
Requires
- php: >=8.2
- craftcms/cms: ^5.5.4
- enupal/yandex-translate: 1.0.0
- stichoza/google-translate-php: 4.1.5
- viniciusgava/google-translate-api: 3.1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- 5.0.0
- 5.0.0-beta.1
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- v3.x-dev
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.1
- 3.0.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.0.0
- 1.3.1
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-develop
- dev-release/5.0.0
- dev-feature/content-translation-and-ai
- dev-develop-craft3
- dev-craft4
- dev-fix-empty-bug
- dev-bug-fix-element-instance
- dev-71-fix-left-column
- dev-bug-fix-index-page
- dev-craft-5-upgrade
- dev-bugfix/one-site
- dev-bugfix/only-1-site
- dev-feature/craft4
- dev-feature/update-translate-lib
- dev-bugfix/mysql-revert
- dev-bugfix/fixes-mysql
- dev-feature/sync-db
This package is auto-updated.
Last update: 2026-09-18 18:38:42 UTC
README
Enupal Translate for Craft CMS 5
Translate entry content, templates and even plugins. With Google or AI.
A multi-site build needs two kinds of translation: the static strings in your templates and plugins, and the content in your entries. Enupal Translate handles both.
Pick a target site, hit Translate, review the draft. Bigger jobs run in the background as Craft queue jobs, so you can carry on working.
Note
Content translation and the AI providers are new in 5.0 and still being proven on real sites. Static template translation is unchanged. If you hit something, please open an issue.
Translate your content
Translate any entry, asset, category or product into another site from the sidebar, or select several on the index and do them in bulk.
Craft fields
- Matrix, including nested blocks
- Plain Text
- Table — text columns only, numbers and dates left alone
- Link — the label, never the URL
- Content Block
- Asset alt text
Rich text
- CKEditor
- Redactor
- TinyMCE
- Vizy
Plugin fields
- Neo
- Super Table
- Hyper
- Linkit
- SEOmatic — only the fields you have overridden, so inheritance stays intact
- Ether SEO
Your own field types can join in through Content::EVENT_REGISTER_SERIALIZERS.
Everything else is left alone: images, dropdowns, numbers and relations are never touched. Internal links follow the translation, so a link to an English entry becomes a link to its Spanish counterpart.
Translate your templates and plugins
Enupal Translate scans your templates for translatable strings and lets you translate them in bulk or by hand.
Sync with the database
Keeps a copy of your translations folder in the database, so you can deploy without committing translations to git, and without extra queries slowing your pages down.
Import and export CSV
Export from the dropdown in the top right, send the file to a translator, import it back.
- All templates
- A specific template
- A plugin's strings
Plugin developers
Enupal Translate writes translation files straight into your plugin's path. Internationalise your own plugins and reach people who do not work in English.
Choose your translator
- OpenAI or Claude for translations that read naturally, with your own prompt, protected terms and tone of voice
- Google Cloud Translate or Yandex for fast, cheap machine translation
- Google Translate (Free) for trying things out
- Or type them yourself
AI providers see a whole entry at once rather than field by field, so the result reads like a page instead of disconnected sentences. Repeated strings are sent once, so you never pay twice for the same words.
Know what it costs
A dashboard shows how many translations you have made, split between templates and content, with token usage, API calls and anything that failed. Filter by date, provider, type or language.
Requirements
- Craft CMS 5.5.4 or later
- PHP 8.2 or later
API keys can live in your .env rather than in project config, and a
translateContent permission controls who can translate.
Documentation
https://docs.enupal.com/translate/
Enupal Translate Support
-
Send us a note at: support@enupal.com
-
Create an issue on Github
Brought to you by enupal


