Title: AutoLingo — Translation for Polylang
Author: AutoLingo
Published: <strong>June 26, 2026</strong>
Last modified: June 26, 2026

---

Search plugins

![](https://ps.w.org/autolingo-polylang-translate/assets/banner-772x250.png?rev=
3587009)

![](https://ps.w.org/autolingo-polylang-translate/assets/icon-256x256.png?rev=3587009)

# AutoLingo — Translation for Polylang

 By [AutoLingo](https://profiles.wordpress.org/delsuza/)

[Download](https://downloads.wordpress.org/plugin/autolingo-polylang-translate.1.1.16.zip)

 * [Details](https://wordpress.org/plugins/autolingo-polylang-translate/#description)
 * [Reviews](https://wordpress.org/plugins/autolingo-polylang-translate/#reviews)
 *  [Installation](https://wordpress.org/plugins/autolingo-polylang-translate/#installation)
 * [Development](https://wordpress.org/plugins/autolingo-polylang-translate/#developers)

 [Support](https://wordpress.org/support/plugin/autolingo-polylang-translate/)

## Description

AutoLingo connects your Polylang-powered site to DeepL, Google Translate, or OpenAI
and automates the entire translation workflow — from a single post to your full 
content library.

#### Features

 * Translate Gutenberg content (title, blocks, excerpt) on publish or manually
 * Manual translate button in the post editor and post list
 * Bulk translation via WP-CLI (`translate-missing`, `translate-all`)
 * DeepL Free and Pro plan auto-detection (key suffix `:fx`)
 * Credit balance check before each translation
 * Admin alert + dashboard widget when credit runs low
 * Translated category and tag sync via Polylang
 * Post meta copy on creation (theme settings, page templates, layout options)
 * Page builder support: Elementor, Beaver Builder, Bricks Builder
 * SEO meta translation: Yoast SEO, RankMath, SEOPress, The SEO Framework
 * ACF field translation: text, textarea, wysiwyg, link, repeater, flexible content
 * WooCommerce: custom product attributes and purchase note

#### Page builder support

 * **Elementor** — `_elementor_data` (JSON), all common widget types
 * **Beaver Builder** — `_fl_builder_data` (serialized PHP), global nodes skipped
 * **Bricks Builder** — `_bricks_page_content_2` (JSON), nested items (accordion,
   tabs)
 * **Divi / WPBakery / Flatsome** — shortcodes preserved verbatim

#### SEO plugin support

 * Yoast SEO — title, meta description, focus keyword
 * RankMath — title, description, focus keyword
 * SEOPress — title, description
 * The SEO Framework — title, description
 * SEO template variables (`%%title%%`, `%sep%`, `%sitename%`…) are preserved automatically

#### ACF

Translates `text`, `textarea`, `wysiwyg`, and `link` (title only) fields, including`
repeater` and `flexible_content` layouts.

#### WooCommerce

Translates custom product attributes (name + pipe-separated values) and the purchase
note. Price, stock, and SKU are never modified.

#### Reliability

 * Exponential back-off retry on HTTP 429 (rate limit): 2 s  4 s  8 s, up to 3 retries
 * Dual lock (static + transient) prevents duplicate translations on Gutenberg REST
   saves
 * Translation log viewer in the admin (DB-backed, 30-day retention)
 * Integration test suite — 30 tests covering all modules

### External Services

This plugin optionally connects to one of three external translation APIs depending
on which provider you choose in Settings  AutoLingo. No data is ever sent without
an explicit translation action and a valid API key that you supply yourself.

#### DeepL

**What it is:** DeepL is a machine translation service. This plugin uses the DeepL
REST API to translate your post content.

**What data is sent:** The text content of your posts (title, body, excerpt) is 
sent to DeepL’s servers for translation. If you use the Glossary feature, your glossary
terms (source and target words) are also sent to create a DeepL glossary. No personally
identifiable information about your site visitors is transmitted.

**When it is sent:** Only when a translation is triggered — either manually via 
the Translate button, automatically on publish (if enabled in settings), via WP-
CLI, or when syncing a glossary.

**Service endpoint:** api.deepl.com (Pro) or api-free.deepl.com (Free plan)

 * Terms of Service: https://www.deepl.com/legal/terms
 * Privacy Policy: https://www.deepl.com/privacy

#### OpenAI

**What it is:** OpenAI provides the GPT language model API. This plugin uses the`
gpt-4o-mini` model to translate your post content when OpenAI is selected as the
provider.

**What data is sent:** The text content of your posts is sent to OpenAI’s servers.
No visitor data is transmitted.

**When it is sent:** Only when a translation is triggered manually or on publish.

**Service endpoint:** api.openai.com

 * Terms of Service: https://openai.com/policies/terms-of-use
 * Privacy Policy: https://openai.com/policies/privacy-policy

#### Google Cloud Translation

**What it is:** Google Cloud Translation API provides machine translation. This 
plugin uses it to translate post content when Google Translate is selected as the
provider.

**What data is sent:** The text content of your posts is sent to Google’s servers.
No visitor data is transmitted.

**When it is sent:** Only when a translation is triggered manually or on publish.

**Service endpoint:** translation.googleapis.com

 * Terms of Service: https://cloud.google.com/terms
 * Privacy Policy: https://policies.google.com/privacy

### Configuration

 1. Get a DeepL API key at deepl.com
 2.  * Free plan — 500,000 characters/month, key ends with `:fx`
     * Pro plan — pay-as-you-go
 3. Enter the key under **Settings  AutoLingo**
 4. Choose your source language (default: French) and target languages (default: English)
 5. Choose which content types to translate (default: Posts and Pages)

### WP-CLI Commands

    ```
    wp pdat audit — list all source posts with translation status per language
    wp pdat audit --format=csv — same output as CSV
    wp pdat translate-missing --dry-run — simulate without creating anything
    wp pdat translate-missing — translate only missing translations
    wp pdat translate-all — translate or update all source posts
    wp pdat translate-options — translate ACF Options Page fields
    wp pdat audit-acf — list all translatable ACF fields
    ```

## Screenshots

[⌊Settings page — choose your translation provider (DeepL, OpenAI, Google), API 
key, source and target languages, and which modules to enable.⌉⌊Settings page — 
choose your translation provider (DeepL, OpenAI, Google), API key, source and target
languages, and which modules to enable.⌉[

Settings page — choose your translation provider (DeepL, OpenAI, Google), API key,
source and target languages, and which modules to enable.

[⌊Post list — one-click translate action link next to each post, with a loading 
overlay while translation runs.⌉⌊Post list — one-click translate action link next
to each post, with a loading overlay while translation runs.⌉[

Post list — one-click translate action link next to each post, with a loading overlay
while translation runs.

[⌊Dashboard widget — translation coverage per language and remaining API credit 
at a glance.⌉⌊Dashboard widget — translation coverage per language and remaining
API credit at a glance.⌉[

Dashboard widget — translation coverage per language and remaining API credit at
a glance.

## Installation

 1. Upload the `autolingo-polylang-translate` folder to `/wp-content/plugins/`
 2. Activate the plugin under **Plugins**
 3. Go to **Settings  AutoLingo** and enter your DeepL API key

**Via SSH / WP-CLI:**

    ```
    cp -r autolingo-polylang-translate /var/www/html/wp-content/plugins/
    wp plugin activate autolingo-polylang-translate
    ```

## FAQ

### Which DeepL plan do I need?

Both plans work. The Free plan gives 500,000 characters/month at no cost — the key
ends with `:fx`. The Pro plan is billed per character with no monthly cap.

### Does it work with Polylang free or only Polylang Pro?

It works with both Polylang (free) and Polylang Pro.

### Will it overwrite my existing translations?

translate-missing only creates translations that do not yet exist. `translate-all`
creates or updates all translations. Auto-translate on publish updates existing 
translations each time the source post is published.

### Are shortcodes translated?

No. Shortcodes (`[contact-form-7 …]`, `[vc_row]`, Divi modules, etc.) are replaced
by neutral placeholders before sending to the translation API and restored verbatim
in the output. This protection applies to all three providers (DeepL, Google Translate,
OpenAI). SEO template variables (`%%title%%`, `%sep%`) are also preserved automatically.

### What happens if the DeepL rate limit is hit?

The plugin retries automatically up to 3 times with exponential back-off (2 s, 4
s, 8 s). If all retries fail the error is logged and the translation is skipped 
for that request.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“AutoLingo — Translation for Polylang” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ AutoLingo ](https://profiles.wordpress.org/delsuza/)

[Translate “AutoLingo — Translation for Polylang” into your language.](https://translate.wordpress.org/projects/wp-plugins/autolingo-polylang-translate)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/autolingo-polylang-translate/),
check out the [SVN repository](https://plugins.svn.wordpress.org/autolingo-polylang-translate/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/autolingo-polylang-translate/)
by [RSS](https://plugins.trac.wordpress.org/log/autolingo-polylang-translate/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.7

 * WordPress.org compliance: remove premium license gating — all features (page 
   builders, SEO, ACF, WooCommerce) are now fully available without a license
 * Convert inline `<script>` and `<style>` tags to `wp_enqueue_script()` / `wp_enqueue_style()`/`
   wp_add_inline_script()` / `wp_add_inline_style()`
 * Fix ACF options key prefix: `options_`  `pdt_acf_` to avoid collision with global
   namespace
 * Set Freemius `is_premium => false` and `is_org_compliant => true` for WP.org 
   compliance
 * Rename plugin: “AutoLingo — Translation for Polylang” (remove DeepL trademark
   from name)

#### 1.1.6

 * Fix shortcode and SEO-variable protection not applying when Google Translate 
   or OpenAI is the active provider — protection is now applied universally in the
   translation wrapper

#### 1.1.5

 * Add module toggle checkboxes in settings for page builders, SEO, ACF, and WooCommerce
 * Settings page: module checkboxes now saved per-option (pdt_module_*)
 * Docs (EN + FR): two-card pricing section, updated hero and FAQ

#### 1.1.4

 * Resolve all WordPress Plugin Check issues for WordPress.org submission
 * Fix `wp_redirect`  `wp_safe_redirect` in manual translate handler
 * Add ABSPATH guard to CLI file
 * Escape all dynamic output (CSS vars, numeric values) throughout admin pages
 * Gate all `error_log()` calls on `WP_DEBUG_LOG`
 * Remove `load_plugin_textdomain()` (auto-loaded since WordPress 4.6)
 * Integration tests now save and restore source/target language settings

#### 1.1.3

 * Fix SEO meta (Yoast, RankMath, SEOPress) not re-translating when updated independently
   from post content

#### 1.1.2

 * Fix Elementor Flexbox Container (v4+) translation — atomic $$type format now 
   handled

#### 1.1.1

 * Rebranded to AutoLingo — slug renamed to `autolingo-polylang-translate`, Plugin
   URI updated to `auto-lingo.com`
 * Multi-provider architecture — DeepL, Google Translate, and OpenAI share a common
   provider interface

#### 1.1.0

**Bug fixes**
 * Polylang language not correctly assigned to the translated post
after creation * DeepL HTTP 400 on complex Gutenberg content — resolved by wrapping
in a `<div>` * ACF `url` and `email` field types are no longer sent to DeepL * Polylang
internal taxonomies excluded from term sync * Admin notices now use transients instead
of GET parameters (security fix)

**Page builders**
 * Elementor — widget settings translated via `_elementor_data`*
Beaver Builder — module settings translated via `_fl_builder_data`; global nodes
skipped * Bricks Builder — elements and nested items translated via `_bricks_page_content_2`*
Shortcode protection for Divi, WPBakery, Flatsome, Contact Form 7

**SEO**
 * Yoast SEO, RankMath, SEOPress, The SEO Framework meta fields translated*
SEO template variables preserved via `<span translate="no">`

**WooCommerce**
 * Custom product attributes translated (name + pipe-separated values)*
Purchase note (`_purchase_note`) translated * Price, stock, SKU excluded from meta
copy

**Technical**
 * Automatic post meta copy on translation creation * DeepL HTTP 429
retry with exponential back-off (2 s  4 s  8 s) * Integration test suite: 18 tests
covering all modules * Full i18n — French (`fr_FR`) translation included * Freemius
SDK integrated for license management

#### 1.0.0

 * Initial release

## Meta

 *  Version **1.1.16**
 *  Last updated **22 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [automatic translation](https://wordpress.org/plugins/tags/automatic-translation/)
   [multilingual](https://wordpress.org/plugins/tags/multilingual/)[polylang](https://wordpress.org/plugins/tags/polylang/)
   [translation](https://wordpress.org/plugins/tags/translation/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/autolingo-polylang-translate/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/autolingo-polylang-translate/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/autolingo-polylang-translate/reviews/)

## Contributors

 *   [ AutoLingo ](https://profiles.wordpress.org/delsuza/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/autolingo-polylang-translate/)