{"id":319756,"date":"2026-06-26T09:06:18","date_gmt":"2026-06-26T09:06:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/autolingo-deepl-translation-for-polylang\/"},"modified":"2026-08-10T15:21:25","modified_gmt":"2026-08-10T15:21:25","slug":"autolingo-polylang-translate","status":"publish","type":"plugin","link":"https:\/\/mfe.wordpress.org\/plugins\/autolingo-polylang-translate\/","author":13521482,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.24","stable_tag":"1.1.24","tested":"7.0.3","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"AutoLingo \u2014 Automatic Translation for Polylang","header_author":"AutoLingo","header_description":"Automatic translation via DeepL, OpenAI or Google Translate, natively integrated with Polylang. Supports Elementor, Beaver Builder, Bricks, WooCommerce, ACF, and all major SEO plugins.","assets_banners_color":"6f7c85","last_updated":"2026-08-10 15:21:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/auto-lingo.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":353,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.16":{"tag":"1.1.16","author":"delsuza","date":"2026-06-26 09:05:46"},"1.1.17":{"tag":"1.1.17","author":"delsuza","date":"2026-07-07 21:05:10"},"1.1.18":{"tag":"1.1.18","author":"delsuza","date":"2026-07-17 14:44:06"},"1.1.19":{"tag":"1.1.19","author":"delsuza","date":"2026-07-17 15:10:30"},"1.1.22":{"tag":"1.1.22","author":"delsuza","date":"2026-08-03 15:17:40"},"1.1.23":{"tag":"1.1.23","author":"delsuza","date":"2026-08-03 15:53:52"},"1.1.24":{"tag":"1.1.24","author":"delsuza","date":"2026-08-10 15:21:25"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3587009,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3587009,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3587009,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3587009,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.16","1.1.17","1.1.18","1.1.19","1.1.22","1.1.23","1.1.24"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3587009,"resolution":"1","location":"assets","locale":"","width":1854,"height":1579},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3587009,"resolution":"2","location":"assets","locale":"","width":1641,"height":685},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3587009,"resolution":"3","location":"assets","locale":"","width":442,"height":342}},"screenshots":{"1":"Settings page \u2014 choose your translation provider (DeepL, OpenAI, Google), API key, source and target languages, and which modules to enable.","2":"Post list \u2014 one-click translate action link next to each post, with a loading overlay while translation runs.","3":"Dashboard widget \u2014 translation coverage per language and remaining API credit at a glance."}},"plugin_section":[262246],"plugin_tags":[12519,99,10601,2333,286],"plugin_category":[45,48],"plugin_contributors":[270525],"plugin_business_model":[],"class_list":["post-319756","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-automatic-translation","plugin_tags-multilingual","plugin_tags-polylang","plugin_tags-translation","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-language-tools","plugin_contributors-delsuza","plugin_committers-delsuza"],"banners":{"banner":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/banner-772x250.png?rev=3587009","banner_2x":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/banner-1544x500.png?rev=3587009","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/icon-128x128.png?rev=3587009","icon_2x":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/icon-256x256.png?rev=3587009","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/screenshot-1.png?rev=3587009","caption":"Settings page \u2014 choose your translation provider (DeepL, OpenAI, Google), API key, source and target languages, and which modules to enable."},{"src":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/screenshot-2.png?rev=3587009","caption":"Post list \u2014 one-click translate action link next to each post, with a loading overlay while translation runs."},{"src":"https:\/\/ps.w.org\/autolingo-polylang-translate\/assets\/screenshot-3.png?rev=3587009","caption":"Dashboard widget \u2014 translation coverage per language and remaining API credit at a glance."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/wphealthkit.com\/directory\/autolingo-polylang-translate\"><\/a><\/p>\n\n<p>AutoLingo is the automatic translation plugin for Polylang. It auto-translates your posts and pages using DeepL, OpenAI (ChatGPT) or Google Translate \u2014 created and synced natively with Polylang. AutoLingo Pro adds WooCommerce products, SEO metadata (Yoast, RankMath), ACF fields and page builder support (Elementor, Beaver Builder, Bricks).<\/p>\n\n<p>Whether you need Polylang automatic translation for a single post or your entire content library, AutoLingo does it on publish, in bulk, or via WP-CLI, with AI translation quality from DeepL, OpenAI or Google.<\/p>\n\n<h4>Features (Free)<\/h4>\n\n<ul>\n<li>Translate Gutenberg content (title, blocks, excerpt) on publish or manually<\/li>\n<li>Manual translate button in the post editor and post list<\/li>\n<li>Bulk translation via WP-CLI (<code>translate-missing<\/code>, <code>translate-all<\/code>)<\/li>\n<li>Nav menu translation via Polylang<\/li>\n<li>DeepL Free and Pro plan auto-detection (key suffix <code>:fx<\/code>)<\/li>\n<li>Credit balance check before each translation<\/li>\n<li>Admin alert + dashboard widget when credit runs low<\/li>\n<li>Translated category and tag sync via Polylang<\/li>\n<li>Post meta copy on creation (theme settings, page templates, layout options)<\/li>\n<li>Shortcode-based builders (Divi, WPBakery, Flatsome) \u2014 shortcodes preserved verbatim<\/li>\n<\/ul>\n\n<h4>Features (Pro)<\/h4>\n\n<p><a href=\"https:\/\/auto-lingo.com\">AutoLingo Pro<\/a> adds:<\/p>\n\n<ul>\n<li>Page builder support: Elementor, Beaver Builder, Bricks Builder<\/li>\n<li>SEO meta translation: Yoast SEO, RankMath, SEOPress, The SEO Framework<\/li>\n<li>ACF field translation: text, textarea, wysiwyg, link, repeater, flexible content<\/li>\n<li>WooCommerce: custom product attributes and purchase note<\/li>\n<\/ul>\n\n<h4>Page builder support (Pro)<\/h4>\n\n<ul>\n<li><strong>Elementor<\/strong> \u2014 <code>_elementor_data<\/code> (JSON), all common widget types<\/li>\n<li><strong>Beaver Builder<\/strong> \u2014 <code>_fl_builder_data<\/code> (serialized PHP), global nodes skipped<\/li>\n<li><strong>Bricks Builder<\/strong> \u2014 <code>_bricks_page_content_2<\/code> (JSON), nested items (accordion, tabs)<\/li>\n<\/ul>\n\n<p>Shortcode-based builders (Divi, WPBakery, Flatsome) are supported on the free plan \u2014 their shortcodes are preserved verbatim during translation.<\/p>\n\n<h4>SEO plugin support (Pro)<\/h4>\n\n<ul>\n<li>Yoast SEO \u2014 title, meta description, focus keyword<\/li>\n<li>RankMath \u2014 title, description, focus keyword<\/li>\n<li>SEOPress \u2014 title, description<\/li>\n<li>The SEO Framework \u2014 title, description<\/li>\n<li>SEO template variables (<code>%%title%%<\/code>, <code>%sep%<\/code>, <code>%sitename%<\/code>\u2026) are preserved automatically<\/li>\n<\/ul>\n\n<h4>ACF (Pro)<\/h4>\n\n<p>Translates <code>text<\/code>, <code>textarea<\/code>, <code>wysiwyg<\/code>, and <code>link<\/code> (title only) fields, including <code>repeater<\/code> and <code>flexible_content<\/code> layouts.<\/p>\n\n<h4>WooCommerce (Pro)<\/h4>\n\n<p>Translates custom product attributes (name + pipe-separated values) and the purchase note. Price, stock, and SKU are never modified.<\/p>\n\n<h4>Reliability<\/h4>\n\n<ul>\n<li>Exponential back-off retry on HTTP 429 (rate limit): 2 s \u2192 4 s \u2192 8 s, up to 3 retries<\/li>\n<li>Dual lock (static + transient) prevents duplicate translations on Gutenberg REST saves<\/li>\n<li>Translation log viewer in the admin (DB-backed, 30-day retention)<\/li>\n<li>Integration test suite \u2014 30 tests covering all modules<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to one of three external translation APIs depending on which provider you choose in Settings \u2192 AutoLingo. No data is ever sent without an explicit translation action and a valid API key that you supply yourself.<\/p>\n\n<h4>DeepL<\/h4>\n\n<p><strong>What it is:<\/strong> DeepL is a machine translation service. This plugin uses the DeepL REST API to translate your post content.<\/p>\n\n<p><strong>What data is sent:<\/strong> 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.<\/p>\n\n<p><strong>When it is sent:<\/strong> Only when a translation is triggered \u2014 either manually via the Translate button, automatically on publish (if enabled in settings), via WP-CLI, or when syncing a glossary.<\/p>\n\n<p><strong>Service endpoint:<\/strong> api.deepl.com (Pro) or api-free.deepl.com (Free plan)<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/www.deepl.com\/legal\/terms<\/li>\n<li>Privacy Policy: https:\/\/www.deepl.com\/privacy<\/li>\n<\/ul>\n\n<h4>OpenAI<\/h4>\n\n<p><strong>What it is:<\/strong> OpenAI provides the GPT language model API. This plugin uses the <code>gpt-4o-mini<\/code> model to translate your post content when OpenAI is selected as the provider.<\/p>\n\n<p><strong>What data is sent:<\/strong> The text content of your posts is sent to OpenAI's servers. No visitor data is transmitted.<\/p>\n\n<p><strong>When it is sent:<\/strong> Only when a translation is triggered manually or on publish.<\/p>\n\n<p><strong>Service endpoint:<\/strong> api.openai.com<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/openai.com\/policies\/terms-of-use<\/li>\n<li>Privacy Policy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<\/ul>\n\n<h4>Google Cloud Translation<\/h4>\n\n<p><strong>What it is:<\/strong> Google Cloud Translation API provides machine translation. This plugin uses it to translate post content when Google Translate is selected as the provider.<\/p>\n\n<p><strong>What data is sent:<\/strong> The text content of your posts is sent to Google's servers. No visitor data is transmitted.<\/p>\n\n<p><strong>When it is sent:<\/strong> Only when a translation is triggered manually or on publish.<\/p>\n\n<p><strong>Service endpoint:<\/strong> translation.googleapis.com<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/cloud.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<ol>\n<li>Get a DeepL API key at deepl.com\n\n<ul>\n<li>Free plan \u2014 500,000 characters\/month, key ends with <code>:fx<\/code><\/li>\n<li>Pro plan \u2014 pay-as-you-go<\/li>\n<\/ul><\/li>\n<li>Enter the key under <strong>Settings \u2192 AutoLingo<\/strong><\/li>\n<li>Choose your source language (default: French) and target languages (default: English)<\/li>\n<li>Choose which content types to translate (default: Posts and Pages)<\/li>\n<\/ol>\n\n<h3>WP-CLI Commands<\/h3>\n\n<pre><code>wp pdat audit \u2014 list all source posts with translation status per language\nwp pdat audit --format=csv \u2014 same output as CSV\nwp pdat translate-missing --dry-run \u2014 simulate without creating anything\nwp pdat translate-missing \u2014 translate only missing translations\nwp pdat translate-all \u2014 translate or update all source posts\nwp pdat translate-options \u2014 translate ACF Options Page fields\nwp pdat audit-acf \u2014 list all translatable ACF fields\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>autolingo-polylang-translate<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin under <strong>Plugins<\/strong><\/li>\n<li>Go to <strong>Settings \u2192 AutoLingo<\/strong> and enter your DeepL API key<\/li>\n<\/ol>\n\n<p><strong>Via SSH \/ WP-CLI:<\/strong><\/p>\n\n<pre><code>cp -r autolingo-polylang-translate \/var\/www\/html\/wp-content\/plugins\/\nwp plugin activate autolingo-polylang-translate\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20deepl%20plan%20do%20i%20need%3F\"><h3>Which DeepL plan do I need?<\/h3><\/dt>\n<dd><p>Both plans work. The Free plan gives 500,000 characters\/month at no cost \u2014 the key ends with <code>:fx<\/code>. The Pro plan is billed per character with no monthly cap.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20polylang%20free%20or%20only%20polylang%20pro%3F\"><h3>Does it work with Polylang free or only Polylang Pro?<\/h3><\/dt>\n<dd><p>It works with both Polylang (free) and Polylang Pro.<\/p><\/dd>\n<dt id=\"will%20it%20overwrite%20my%20existing%20translations%3F\"><h3>Will it overwrite my existing translations?<\/h3><\/dt>\n<dd><p>translate-missing only creates translations that do not yet exist. <code>translate-all<\/code> creates or updates all translations. Auto-translate on publish updates existing translations each time the source post is published.<\/p><\/dd>\n<dt id=\"are%20shortcodes%20translated%3F\"><h3>Are shortcodes translated?<\/h3><\/dt>\n<dd><p>No. Shortcodes (<code>[contact-form-7 \u2026]<\/code>, <code>[vc_row]<\/code>, 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 (<code>%%title%%<\/code>, <code>%sep%<\/code>) are also preserved automatically.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20deepl%20rate%20limit%20is%20hit%3F\"><h3>What happens if the DeepL rate limit is hit?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"is%20this%20real%20automatic%20translation%20for%20polylang%3F\"><h3>Is this real automatic translation for Polylang?<\/h3><\/dt>\n<dd><p>Yes. AutoLingo adds full Polylang automatic translation: your source posts are translated into every Polylang language automatically on publish, in bulk, or via WP-CLI, using DeepL, OpenAI or Google Translate.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.24<\/h4>\n\n<ul>\n<li>Rename plugin to \"AutoLingo \u2014 Automatic Translation for Polylang\" for clarity<\/li>\n<li>Rewrite readme copy (title, description, FAQ) to target \"Polylang automatic translation\"<\/li>\n<li>Split Features into Free \/ Pro sections \u2014 page builders, SEO, ACF and WooCommerce are clearly marked as Pro<\/li>\n<\/ul>\n\n<h4>1.1.23<\/h4>\n\n<ul>\n<li>Fix HTML tags (, , ) being stripped from wp:html blocks when async (WP-Cron) translation runs without a logged-in user \u2014 WordPress KSES sanitization is now bypassed for translated post saves<\/li>\n<\/ul>\n\n<h4>1.1.22<\/h4>\n\n<ul>\n<li>Add [notranslate]\u2026[\/notranslate] shortcode: wrap any passage to have it reproduced verbatim in every language \u2014 brand names, codes, or quotes are never sent to the translation API<\/li>\n<\/ul>\n\n<h4>1.1.21<\/h4>\n\n<ul>\n<li>Reduce synchronous save time: batch title, content and excerpt into a single DeepL API call instead of three sequential requests (3\u00d7 fewer HTTP round trips per target language)<\/li>\n<li>Skip API entirely when post content is unchanged since last translation (hash-based detection)<\/li>\n<li>Add configurable async translation threshold: posts above N characters are translated in the background via WP-Cron; admin settings show WP-Cron status and pending job count<\/li>\n<li>Improve async translation settings UI: explicit on\/off toggle with WP-Cron health indicator<\/li>\n<\/ul>\n\n<h4>1.1.19<\/h4>\n\n<ul>\n<li>Fix custom HTML blocks (wp:html) not being protected on large posts \u2014 replaced fragile regex with strpos-based scanner; now works regardless of block content size<\/li>\n<\/ul>\n\n<h4>1.1.18<\/h4>\n\n<ul>\n<li>Skip translation of custom HTML blocks (wp:html), embed blocks (wp:embed), code blocks (wp:code) and preformatted blocks (wp:preformatted) \u2014 their inner content is now preserved verbatim and never sent to the translation API<\/li>\n<\/ul>\n\n<h4>1.1.17<\/h4>\n\n<ul>\n<li>Fix Elementor hook firing for free users \u2014 <code>elementor\/document\/after_save<\/code> is now gated on premium, preventing unwanted API calls on free installs<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>WordPress.org compliance: remove premium license gating \u2014 all features (page builders, SEO, ACF, WooCommerce) are now fully available without a license<\/li>\n<li>Convert inline <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> tags to <code>wp_enqueue_script()<\/code> \/ <code>wp_enqueue_style()<\/code> \/ <code>wp_add_inline_script()<\/code> \/ <code>wp_add_inline_style()<\/code><\/li>\n<li>Fix ACF options key prefix: <code>options_<\/code> \u2192 <code>pdt_acf_<\/code> to avoid collision with global namespace<\/li>\n<li>Set Freemius <code>is_premium =&gt; false<\/code> and <code>is_org_compliant =&gt; true<\/code> for WP.org compliance<\/li>\n<li>Rename plugin: \"AutoLingo \u2014 Translation for Polylang\" (remove DeepL trademark from name)<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Fix shortcode and SEO-variable protection not applying when Google Translate or OpenAI is the active provider \u2014 protection is now applied universally in the translation wrapper<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Add module toggle checkboxes in settings for page builders, SEO, ACF, and WooCommerce<\/li>\n<li>Settings page: module checkboxes now saved per-option (pdt_module_*)<\/li>\n<li>Docs (EN + FR): two-card pricing section, updated hero and FAQ<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Resolve all WordPress Plugin Check issues for WordPress.org submission<\/li>\n<li>Fix <code>wp_redirect<\/code> \u2192 <code>wp_safe_redirect<\/code> in manual translate handler<\/li>\n<li>Add ABSPATH guard to CLI file<\/li>\n<li>Escape all dynamic output (CSS vars, numeric values) throughout admin pages<\/li>\n<li>Gate all <code>error_log()<\/code> calls on <code>WP_DEBUG_LOG<\/code><\/li>\n<li>Remove <code>load_plugin_textdomain()<\/code> (auto-loaded since WordPress 4.6)<\/li>\n<li>Integration tests now save and restore source\/target language settings<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fix SEO meta (Yoast, RankMath, SEOPress) not re-translating when updated independently from post content<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fix Elementor Flexbox Container (v4+) translation \u2014 atomic $$type format now handled<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Rebranded to AutoLingo \u2014 slug renamed to <code>autolingo-polylang-translate<\/code>, Plugin URI updated to <code>auto-lingo.com<\/code><\/li>\n<li>Multi-provider architecture \u2014 DeepL, Google Translate, and OpenAI share a common provider interface<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<p><strong>Bug fixes<\/strong>\n* Polylang language not correctly assigned to the translated post after creation\n* DeepL HTTP 400 on complex Gutenberg content \u2014 resolved by wrapping in a <code>&lt;div&gt;<\/code>\n* ACF <code>url<\/code> and <code>email<\/code> field types are no longer sent to DeepL\n* Polylang internal taxonomies excluded from term sync\n* Admin notices now use transients instead of GET parameters (security fix)<\/p>\n\n<p><strong>Page builders<\/strong>\n* Elementor \u2014 widget settings translated via <code>_elementor_data<\/code>\n* Beaver Builder \u2014 module settings translated via <code>_fl_builder_data<\/code>; global nodes skipped\n* Bricks Builder \u2014 elements and nested items translated via <code>_bricks_page_content_2<\/code>\n* Shortcode protection for Divi, WPBakery, Flatsome, Contact Form 7<\/p>\n\n<p><strong>SEO<\/strong>\n* Yoast SEO, RankMath, SEOPress, The SEO Framework meta fields translated\n* SEO template variables preserved via <code>&lt;span translate=\"no\"&gt;<\/code><\/p>\n\n<p><strong>WooCommerce<\/strong>\n* Custom product attributes translated (name + pipe-separated values)\n* Purchase note (<code>_purchase_note<\/code>) translated\n* Price, stock, SKU excluded from meta copy<\/p>\n\n<p><strong>Technical<\/strong>\n* Automatic post meta copy on translation creation\n* DeepL HTTP 429 retry with exponential back-off (2 s \u2192 4 s \u2192 8 s)\n* Integration test suite: 18 tests covering all modules\n* Full i18n \u2014 French (<code>fr_FR<\/code>) translation included\n* Freemius SDK integrated for license management<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Automatic translation for Polylang \u2014 auto-translate posts &amp; pages with DeepL, OpenAI or Google Translate. WooCommerce &amp; SEO in Pro.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319756"}],"author":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/delsuza"}],"wp:attachment":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319756"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319756"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319756"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319756"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319756"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}