{"id":277332,"date":"2026-02-02T08:24:01","date_gmt":"2026-02-02T08:24:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/llm-automatic-translation\/"},"modified":"2026-09-18T10:44:51","modified_gmt":"2026-09-18T10:44:51","slug":"latw-ai-translator-for-wpml","status":"publish","type":"plugin","link":"https:\/\/es-ar.wordpress.org\/plugins\/latw-ai-translator-for-wpml\/","author":23441936,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.1","stable_tag":"3.0.1","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"LATW AI Translation for WPML","header_author":"Szymon Zawadzki","header_description":"Automatically translate WordPress content using OpenAI LLM with WPML integration.","assets_banners_color":"333333","last_updated":"2026-09-18 10:44:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/llm-automatic-translation.top\/","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":50,"downloads":3394,"num_ratings":2,"support_threads":3,"support_threads_resolved":3,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"szymon0zawadzki","date":"2026-02-02 08:53:19","revision":3451869},"1.1.1":{"tag":"1.1.1","author":"szymon0zawadzki","date":"2026-02-19 10:08:33","revision":3464971},"1.2.0":{"tag":"1.2.0","author":"szymon0zawadzki","date":"2026-03-04 08:25:02","revision":3474295},"1.3.0":{"tag":"1.3.0","author":"szymon0zawadzki","date":"2026-03-12 12:38:30","revision":3481146},"1.4.0":{"tag":"1.4.0","author":"szymon0zawadzki","date":"2026-03-19 10:12:03","revision":3486325},"1.4.1":{"tag":"1.4.1","author":"szymon0zawadzki","date":"2026-04-01 17:14:02","revision":3496857},"1.5.1":{"tag":"1.5.1","author":"szymon0zawadzki","date":"2026-04-14 09:14:32","revision":3505896},"1.5.5":{"tag":"1.5.5","author":"szymon0zawadzki","date":"2026-04-24 12:42:58","revision":3514645},"1.5.6":{"tag":"1.5.6","author":"szymon0zawadzki","date":"2026-05-06 08:39:23","revision":3524090},"1.6.0":{"tag":"1.6.0","author":"szymon0zawadzki","date":"2026-05-13 08:38:37","revision":3530712},"1.6.1":{"tag":"1.6.1","author":"szymon0zawadzki","date":"2026-05-21 07:50:52","revision":3541040},"1.6.2":{"tag":"1.6.2","author":"szymon0zawadzki","date":"2026-05-21 08:04:59","revision":3541078},"2.0.0":{"tag":"2.0.0","author":"szymon0zawadzki","date":"2026-05-29 11:04:41","revision":3553397},"2.0.1":{"tag":"2.0.1","author":"szymon0zawadzki","date":"2026-06-01 15:54:26","revision":3557003},"2.0.2":{"tag":"2.0.2","author":"szymon0zawadzki","date":"2026-06-01 15:58:04","revision":3557011},"2.0.3":{"tag":"2.0.3","author":"szymon0zawadzki","date":"2026-06-18 06:58:35","revision":3576688},"2.0.4":{"tag":"2.0.4","author":"szymon0zawadzki","date":"2026-07-10 13:21:34","revision":3602899},"2.0.5":{"tag":"2.0.5","author":"szymon0zawadzki","date":"2026-07-13 14:55:21","revision":3606271},"2.0.6":{"tag":"2.0.6","author":"szymon0zawadzki","date":"2026-07-24 16:07:22","revision":3621577},"2.0.7":{"tag":"2.0.7","author":"szymon0zawadzki","date":"2026-07-28 07:44:48","revision":3625554},"2.0.8":{"tag":"2.0.8","author":"szymon0zawadzki","date":"2026-07-31 12:40:24","revision":3630004},"2.0.9":{"tag":"2.0.9","author":"szymon0zawadzki","date":"2026-08-11 17:11:54","revision":3642315},"2.1.0":{"tag":"2.1.0","author":"szymon0zawadzki","date":"2026-08-17 11:13:10","revision":3651006},"2.2.0":{"tag":"2.2.0","author":"szymon0zawadzki","date":"2026-08-24 12:26:44","revision":3663408},"2.2.1":{"tag":"2.2.1","author":"szymon0zawadzki","date":"2026-08-26 07:46:29","revision":3666467},"2.2.2":{"tag":"2.2.2","author":"szymon0zawadzki","date":"2026-08-27 08:31:20","revision":3668357},"2.2.3":{"tag":"2.2.3","author":"szymon0zawadzki","date":"2026-08-31 07:39:49","revision":3673578},"2.2.4":{"tag":"2.2.4","author":"szymon0zawadzki","date":"2026-09-03 11:04:42","revision":3679597},"3.0.0":{"tag":"3.0.0","author":"szymon0zawadzki","date":"2026-09-15 17:02:08","revision":3697423},"3.0.1":{"tag":"3.0.1","author":"szymon0zawadzki","date":"2026-09-18 10:44:51","revision":3701818}},"upgrade_notice":{"3.0.0":"<p>The Pro version is now an add-on that runs alongside this plugin instead of replacing it. If you use the free plugin only, nothing changes and no action is needed. If you have Pro, update it too: it will offer to install this plugin for you, and your translations, settings and licence are carried over untouched.<\/p>","2.2.0":"<p>Every language configured in WPML is now available in the free version, and MyMemory joins as a free engine that needs no API key. No settings changes needed.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3663424,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3663424,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3663424,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3663424,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.1.1","1.2.0","1.3.0","1.4.0","1.4.1","1.5.1","1.5.5","1.5.6","1.6.0","1.6.1","1.6.2","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.1.0","2.2.0","2.2.1","2.2.2","2.2.3","2.2.4","3.0.0","3.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3663424,"resolution":"1","location":"assets","locale":"","width":1904,"height":963},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3663424,"resolution":"2","location":"assets","locale":"","width":1904,"height":963},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3663424,"resolution":"3","location":"assets","locale":"","width":1904,"height":963},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3663424,"resolution":"4","location":"assets","locale":"","width":1904,"height":963}},"screenshots":{"1":"Translation Management screen","2":"Pick your engine and model","3":"Batch-translate WPML interface, theme and plugin strings in one pass","4":"Translation history: what was sent, what came back, and what each job cost"}},"plugin_section":[],"plugin_tags":[220668,12519,279010,4318,103],"plugin_category":[48],"plugin_contributors":[255069],"plugin_business_model":[],"class_list":["post-277332","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-translation","plugin_tags-automatic-translation","plugin_tags-llm-translation","plugin_tags-machine-translation","plugin_tags-wpml","plugin_category-language-tools","plugin_contributors-szymon0zawadzki","plugin_committers-szymon0zawadzki"],"banners":{"banner":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/banner-772x250.png?rev=3663424","banner_2x":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/banner-1544x500.png?rev=3663424","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/icon-128x128.png?rev=3663424","icon_2x":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/icon-256x256.png?rev=3663424","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/screenshot-1.png?rev=3663424","caption":"Translation Management screen"},{"src":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/screenshot-2.png?rev=3663424","caption":"Pick your engine and model"},{"src":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/screenshot-3.png?rev=3663424","caption":"Batch-translate WPML interface, theme and plugin strings in one pass"},{"src":"https:\/\/ps.w.org\/latw-ai-translator-for-wpml\/assets\/screenshot-4.png?rev=3663424","caption":"Translation history: what was sent, what came back, and what each job cost"}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/llm-automatic-translation.top\/latw-ai-translator-for-wpml\/\">LATW AI Translation for WPML<\/a> adds an AI translator to the WPML Translation Management workflow you already use.<\/p>\n\n<p>WPML keeps doing what it does today: language switching, translation jobs, string translation, the whole multilingual structure of your site. This plugin registers one additional translator inside that pipeline and lets it do the actual translating, using the AI model or translation engine you pick.<\/p>\n\n<p>https:\/\/youtu.be\/iqlw5al1G4Q<\/p>\n\n<h4>You bring your own API key<\/h4>\n\n<p>WPML's built-in automatic translation is billed in WPML credits. This plugin works differently. You connect your own provider key, and every request goes straight from your WordPress server to OpenAI, Google, Anthropic or DeepL, at their published rates, with nothing added on top by us.<\/p>\n\n<p><strong>A real example.<\/strong> Translating 30 articles into 3 languages costs <strong>\u20ac386.00<\/strong> in WPML Automatic Translation credits. The same job, through this plugin with GPT-5.4 nano, costs <strong>$0.45<\/strong>. Same content, same WPML workflow, <strong>over 99% off the bill<\/strong>.<\/p>\n\n<p>Nothing passes through our servers, and no content is stored outside your site and your chosen provider. You are responsible for your own provider billing and usage limits.<\/p>\n\n<h4>How it plugs into WPML<\/h4>\n\n<p>On activation the plugin creates a dedicated virtual translator user, <strong>latwaitr_ai_bot<\/strong>, shown in WPML as \"LATW AI Translator\", and registers it with WPML as a local translator for your active language pairs.<\/p>\n\n<p>Assign content to that translator on WPML's Translation Management screen and the plugin picks the job up automatically, translates it with your chosen engine, and hands the result back through WPML's own pipeline.<\/p>\n\n<p>The practical consequence: <strong>if WPML can send it for translation, this plugin can translate it.<\/strong> Posts, pages, custom post types, taxonomies, strings, page-builder layouts, third-party integrations. The plugin does not reinvent translation routing, it rides WPML's.<\/p>\n\n<h4>Who it is for<\/h4>\n\n<ul>\n<li>Agencies running client sites on WPML that want translation cost moved off the invoice and onto a metered API key<\/li>\n<li>Site owners with a few hundred pages, where credit-based pricing stops making sense<\/li>\n<li>Anyone who needs translated content to travel between their own server and one named provider, with no intermediary in between<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Deep WPML integration<\/strong> \u2014 runs entirely through WPML's Translation Management pipeline via a dedicated AI translator user<\/li>\n<li><strong>Six engines, your choice<\/strong> \u2014 MyMemory, Google Translate, OpenAI, Gemini, and in Pro also Claude and DeepL<\/li>\n<li><strong>Your own model, or any OpenAI-compatible API<\/strong> \u2014 point the plugin at a model you host yourself, or at a gateway such as OpenRouter or Groq, and translate through it <em>(Pro)<\/em><\/li>\n<li><strong>String Translation<\/strong> \u2014 batch-translate interface, theme and plugin strings from WPML String Translation<\/li>\n<li><strong>Page builder support<\/strong> \u2014 full support for Elementor and Bricks Builder; other WPML-compatible builders should work but are not officially tested<\/li>\n<li><strong>ACF support<\/strong> \u2014 translates Advanced Custom Fields content<\/li>\n<li><strong>Taxonomy translation<\/strong> \u2014 a dedicated screen for categories, tags and custom taxonomies, with per-term status<\/li>\n<li><strong>SEO metadata<\/strong> \u2014 Yoast SEO, Rank Math, SEOPress and All in One SEO titles and descriptions<\/li>\n<li><strong>Website context<\/strong> \u2014 describe your site once and every LLM translation is done with that context in mind<\/li>\n<li><strong>Cost tracking<\/strong> \u2014 every completed job records what it actually cost, priced against the engine that produced it<\/li>\n<li><strong>Translation history<\/strong> \u2014 review any past translation, inspect what was sent and what came back, track status over time<\/li>\n<li><strong>Custom prompt and glossary<\/strong> \u2014 control tone, register and terminology, and lock specific terms to specific translations <em>(Pro)<\/em><\/li>\n<li><strong>Processing modes<\/strong> \u2014 translate synchronously for immediate results, or send jobs to the provider's Batch API for roughly half the price<\/li>\n<li><strong>Automatic translation<\/strong> \u2014 automatically start a translation when creating posts of a selected type <em>(Pro)<\/em><\/li>\n<li><strong>Re-translate only changes<\/strong> \u2014 edit one paragraph, pay for one paragraph instead of the whole page <em>(Pro)<\/em><\/li>\n<li><strong>Bulk translation<\/strong> \u2014 queue dozens of posts for translation in a single action instead of one at a time <em>(Pro)<\/em><\/li>\n<li><strong>WooCommerce<\/strong> \u2014 product attribute taxonomies, variations and shop-specific data <em>(Pro)<\/em><\/li>\n<\/ul>\n\n<h4>Free vs Pro<\/h4>\n\n<p>The free version is not a trial. It translates unlimited content into every language configured in WPML, permanently.<\/p>\n\n<p><strong>Free<\/strong><\/p>\n\n<ul>\n<li>Unlimited translations, all WPML languages<\/li>\n<li>Posts, pages and custom post types<\/li>\n<li>Elementor, Bricks and ACF<\/li>\n<li>WPML String Translation<\/li>\n<li>Taxonomy translation<\/li>\n<li>SEO metadata<\/li>\n<li>Translation history and cost tracking<\/li>\n<li>All processing modes, including Batch at roughly half price<\/li>\n<li>Engines: MyMemory, Google Translate, OpenAI GPT-5.6 luna and GPT-5.4 nano, Gemini 3.5 Flash Lite<\/li>\n<\/ul>\n\n<p><strong>Pro<\/strong><\/p>\n\n<p>Everything in free, plus:<\/p>\n\n<ul>\n<li>Automatic translation<\/li>\n<li>Bulk translation \u2014 queue many posts at once<\/li>\n<li>Re-translate only changes<\/li>\n<li>Custom translation prompt<\/li>\n<li>Glossary<\/li>\n<li>WooCommerce support<\/li>\n<li>Engines: Claude Opus 5, Sonnet 5 and Haiku 4.5; DeepL; OpenAI GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.5 and more; Gemini 3.7 Flash, 3.6 Flash and more<\/li>\n<li>Your own model, or any OpenAI-compatible API \u2014 a model on your own server, OpenRouter, Groq<\/li>\n<li>Premium support<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/llm-automatic-translation.top\/latw-ai-translator-for-wpml\">Upgrade to Pro<\/a><\/p>\n\n<h4>Supported content<\/h4>\n\n<ul>\n<li>Post titles, content and excerpts<\/li>\n<li>Custom post types<\/li>\n<li>Elementor and Bricks Builder widgets and modules<\/li>\n<li>ACF fields<\/li>\n<li>WPML String Translation strings<\/li>\n<li>Yoast SEO, Rank Math, SEOPress and All in One SEO metadata<\/li>\n<li>Categories and custom taxonomies<\/li>\n<li>WooCommerce products, attributes and variations <em>(Pro)<\/em><\/li>\n<li>Anything else WPML is able to send for translation<\/li>\n<\/ul>\n\n<h4>Translation engines<\/h4>\n\n<p>Six engines, split into two kinds, plus any endpoint of your own. Language models read the whole page, follow your prompt and your website description, and handle nuance. Machine translation engines are faster and cheaper per word but take no instructions, because there is nothing to instruct.<\/p>\n\n<p><strong>Language models<\/strong><\/p>\n\n<ul>\n<li><strong>OpenAI<\/strong> \u2014 GPT-5.6 luna and GPT-5.4 nano in free; GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.5 and more in Pro<\/li>\n<li><strong>Google Gemini<\/strong> \u2014 Gemini 3.5 Flash Lite in free; Gemini 3.7 Flash, 3.6 Flash and more in Pro<\/li>\n<li><strong>Anthropic Claude<\/strong> \u2014 Opus 5, Sonnet 5 and Haiku 4.5 <em>(Pro)<\/em><\/li>\n<\/ul>\n\n<p><strong>Machine translation<\/strong><\/p>\n\n<ul>\n<li><strong>Google Translate<\/strong> \u2014 Neural Machine Translation, billed per character<\/li>\n<li><strong>DeepL<\/strong> \u2014 billed per character <em>(Pro)<\/em><\/li>\n<li><strong>MyMemory<\/strong> \u2014 translation memory with machine translation fallback, free within a daily quota<\/li>\n<\/ul>\n\n<p><strong>Your own endpoint<\/strong> <em>(Pro)<\/em><\/p>\n\n<ul>\n<li>Any API that speaks OpenAI's chat format: a model you host yourself (Ollama, vLLM, LM Studio, llama.cpp), or a gateway such as OpenRouter or Groq. You enter the address, the model name and what it costs.<\/li>\n<\/ul>\n\n<p>Each engine stores its own API key and model separately, so switching between them, and back again, costs you nothing in reconfiguration.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.2 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li><a href=\"https:\/\/wpml.org\/\">WPML<\/a> \u2014 required, this is an add-on and not a standalone translation plugin<\/li>\n<li>An API key for the engine you choose. MyMemory needs none, and neither does a model you host yourself.<\/li>\n<\/ul>\n\n<h4>Third-Party Services<\/h4>\n\n<p>Content is sent only to the engine you selected in the plugin settings, and only when you start a translation. Nothing is sent without your action, and every request goes directly from your WordPress server to that provider.<\/p>\n\n<p><strong>OpenAI API<\/strong><\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/api.openai.com\/\">https:\/\/api.openai.com\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/openai.com\/privacy\/\">https:\/\/openai.com\/privacy\/<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/openai.com\/terms\/\">https:\/\/openai.com\/terms\/<\/a><\/li>\n<\/ul>\n\n<p><strong>Google Gemini API<\/strong><\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/generativelanguage.googleapis.com\/\">https:\/\/generativelanguage.googleapis.com\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">https:\/\/ai.google.dev\/gemini-api\/terms<\/a><\/li>\n<\/ul>\n\n<p><strong>Google Cloud Translation API<\/strong><\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/translation.googleapis.com\/\">https:\/\/translation.googleapis.com\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/cloud.google.com\/terms\">https:\/\/cloud.google.com\/terms<\/a><\/li>\n<\/ul>\n\n<p><strong>MyMemory (Translated S.r.l.)<\/strong><\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/api.mymemory.translated.net\/\">https:\/\/api.mymemory.translated.net\/<\/a><\/li>\n<li>Privacy Policy and Terms of Use: <a href=\"https:\/\/mymemory.translated.net\/terms-and-conditions\">https:\/\/mymemory.translated.net\/terms-and-conditions<\/a><\/li>\n<li>Usage limits: <a href=\"https:\/\/mymemory.translated.net\/doc\/usagelimits.php\">https:\/\/mymemory.translated.net\/doc\/usagelimits.php<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Quick start<\/h4>\n\n<ol>\n<li>Install and activate LATW AI Translation for WPML<\/li>\n<li>Go to <strong>AI Translator &gt; Settings<\/strong>, choose an engine and paste its API key. Starting with MyMemory needs no key at all.\n2.5. Optionally write a short website description, so the language model knows what kind of site it is translating<\/li>\n<li>Open <strong>Translations<\/strong> page, select your content, and translate it.<\/li>\n<\/ol>\n\n<p>The plugin picks the job up from there and returns the finished translation through WPML. Check <strong>Translation History<\/strong> to see what was sent, what came back, and what it cost.<\/p>\n\n<h4>Adding Pro<\/h4>\n\n<p>Pro is a separate add-on plugin that runs alongside this one. Install this plugin first, then upload the Pro .zip under <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong> and activate it. The extra engines, the glossary and automatic translation appear on the screens you already know \u2014 there is no second settings page and nothing to migrate.<\/p>\n\n<h4>Where to get an API key<\/h4>\n\n<p>The settings screen links straight to the right page for each engine, with step-by-step instructions:<\/p>\n\n<ul>\n<li>OpenAI \u2014 <a href=\"https:\/\/platform.openai.com\/api-keys\">platform.openai.com\/api-keys<\/a><\/li>\n<li>Google Gemini \u2014 <a href=\"https:\/\/aistudio.google.com\/apikey\">aistudio.google.com\/apikey<\/a><\/li>\n<li>Google Translate \u2014 a Google Cloud API key with the Cloud Translation API enabled<\/li>\n<li>Anthropic Claude <em>(Pro)<\/em> \u2014 <a href=\"https:\/\/console.anthropic.com\/\">console.anthropic.com<\/a><\/li>\n<li>DeepL <em>(Pro)<\/em> \u2014 <a href=\"https:\/\/www.deepl.com\/pro-api\">deepl.com\/pro-api<\/a><\/li>\n<li>Custom endpoint <em>(Pro)<\/em> \u2014 whatever your provider issues, for example <a href=\"https:\/\/openrouter.ai\/keys\">openrouter.ai\/keys<\/a> or <a href=\"https:\/\/console.groq.com\/keys\">console.groq.com\/keys<\/a>; a model on your own server usually needs no key<\/li>\n<li>MyMemory \u2014 no key required<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20wpml%3F\"><h3>Do I need WPML?<\/h3><\/dt>\n<dd><p>Yes. This is an add-on for <a href=\"https:\/\/wpml.org\/\">WPML<\/a>, not a standalone translation plugin. It extends WPML with AI-powered automatic translation and does nothing without it.<\/p><\/dd>\n<dt id=\"how%20is%20this%20different%20from%20wpml%27s%20own%20automatic%20translation%3F\"><h3>How is this different from WPML's own automatic translation?<\/h3><\/dt>\n<dd><p>WPML bills automatic translation in WPML credits, purchased from WPML. This plugin bills nothing at all: you connect your own provider key and the provider charges you directly at their list price. There is no markup and no intermediary. In exchange you manage your own API account and your own spending limits.<\/p><\/dd>\n<dt id=\"what%20can%20i%20do%20with%20the%20free%20version%3F\"><h3>What can I do with the free version?<\/h3><\/dt>\n<dd><p>Translate unlimited content into every language configured in WPML, using MyMemory, Google Translate, OpenAI GPT-5.6 luna, GPT-5.4 nano or Gemini 3.5 Flash Lite. Posts, custom post types, taxonomies, ACF, Elementor, Bricks, SEO metadata and WPML strings are all included. It is not a trial and it does not expire.<\/p><\/dd>\n<dt id=\"how%20much%20does%20translation%20actually%20cost%3F\"><h3>How much does translation actually cost?<\/h3><\/dt>\n<dd><p>It depends on the engine and the volume. Language models bill per token, Google Translate and DeepL bill per character, MyMemory is free within its quota.<\/p>\n\n<p>Rough guide for a single 1,000-word page:<\/p>\n\n<ul>\n<li>OpenAI GPT-5.4 nano \u2014 under $0.01<\/li>\n<li>Gemini 3.5 Flash Lite \u2014 under $0.01<\/li>\n<li>Google Translate \u2014 $20 per million characters<\/li>\n<li>MyMemory \u2014 free, within its daily quota<\/li>\n<li>Batch mode \u2014 roughly half the synchronous price<\/li>\n<\/ul>\n\n<p>For a full project: 30 articles into 3 languages runs to \u20ac386.00 in WPML Automatic Translation credits, against $0.45 with GPT-5.4 nano through this plugin.<\/p><\/dd>\n<dt id=\"which%20engine%20should%20i%20choose%3F\"><h3>Which engine should I choose?<\/h3><\/dt>\n<dd><p>If quality on nuanced content matters most, use a language model. It sees the whole page, follows the translation prompt and your website description, and keeps tone consistent. If you are pushing large volumes of straightforward text and cost is the priority, Google Translate and DeepL are cheaper and faster, and MyMemory is free within its daily quota.<\/p><\/dd>\n<dt id=\"can%20i%20switch%20engines%20later%3F\"><h3>Can I switch engines later?<\/h3><\/dt>\n<dd><p>Yes, at any time. Each engine keeps its own key and model setting, so switching back does not mean re-entering anything.<\/p><\/dd>\n<dt id=\"do%20google%20translate%2C%20deepl%20and%20mymemory%20use%20the%20prompt%3F\"><h3>Do Google Translate, DeepL and MyMemory use the prompt?<\/h3><\/dt>\n<dd><p>No. They ignore the translation prompt, the website description and the reasoning effort setting. They are translation engines rather than language models, so there is nothing to prompt.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20translation%20prompt%3F\"><h3>Can I customise the translation prompt?<\/h3><\/dt>\n<dd><p>In the free version the prompt is fixed and shown read-only on the Settings page, but you can add a website description that is passed to the model with every translation. A fully editable prompt, along with a glossary for locking specific terms, is a Pro feature.<\/p><\/dd>\n<dt id=\"what%20are%20the%20processing%20modes%3F\"><h3>What are the processing modes?<\/h3><\/dt>\n<dd><p><strong>Synchronous<\/strong> waits for the provider and fills in the translation in the same run. Fastest feedback, full price.<\/p>\n\n<p><strong>Background<\/strong> is OpenAI-only. It finishes in minutes without holding a long request open, and is the default where available.<\/p>\n\n<p><strong>Batch<\/strong> sends the job to the provider's Batch API for roughly half the price and collects it when ready, usually within the hour, though providers only guarantee a 24-hour window.<\/p>\n\n<p>All three modes are available in the free version. Google Translate, DeepL and MyMemory run synchronously only, because they have no Batch API. That is safe even for long posts, since their content is split into many small requests.<\/p><\/dd>\n<dt id=\"what%20is%20bulk%20translation%2C%20and%20how%20is%20it%20different%20from%20batch%20mode%3F\"><h3>What is bulk translation, and how is it different from Batch mode?<\/h3><\/dt>\n<dd><p>They solve different problems and the names are easy to confuse.<\/p>\n\n<p><strong>Batch mode<\/strong> is about <em>price<\/em>: a single job is sent to the provider's Batch API instead of being translated immediately, and comes back at roughly half the cost. Available to everyone.<\/p>\n\n<p><strong>Bulk translation<\/strong> <em>(Pro)<\/em> is about <em>volume<\/em>: you select dozens of posts and queue them all for translation in one action, rather than assigning them one at a time. It works with any processing mode.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>WooCommerce support is a Pro feature. Products are ordinary posts as far as WPML is concerned, so the free version translates whatever WPML hands over, but it has no shop-specific handling: no product attribute taxonomies (<code>pa_*<\/code>), no variations, no other WooCommerce data. Pro adds that handling and supports it.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%3F\"><h3>Does it work with page builders?<\/h3><\/dt>\n<dd><p>Elementor and Bricks Builder are fully supported. Other builders compatible with WPML should work, but have not been officially tested.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20wpml%20strings%3F\"><h3>Can I translate WPML strings?<\/h3><\/dt>\n<dd><p>Yes. The plugin integrates with WPML String Translation, so interface strings, theme strings and plugin strings can be batch-translated through your chosen engine directly from the plugin.<\/p><\/dd>\n<dt id=\"can%20i%20see%20what%20was%20translated%3F\"><h3>Can I see what was translated?<\/h3><\/dt>\n<dd><p>Yes. The Translation History page shows every past translation, what was sent, what came back, the status of each job and what it cost.<\/p><\/dd>\n<dt id=\"how%20are%20translations%20queued%3F\"><h3>How are translations queued?<\/h3><\/dt>\n<dd><p>Through WordPress Cron, in the background, so long jobs do not time out. You can check cron status from the admin UI.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20my%20pro%20license%20expires%3F\"><h3>What happens when my Pro license expires?<\/h3><\/dt>\n<dd><p>The version you have keeps working, but you stop receiving updates until you renew. The free version continues working regardless, with no license at all.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.1<\/h4>\n\n<ul>\n<li><strong>Improvement: a translation that the AI provider refuses now fails immediately, with the reason.<\/strong> When the provider rejects the request itself \u2014 a model it does not know, a setting it does not accept, a key it does not like \u2014 the same request is no longer sent two more times before giving up. You see what the provider said on the first attempt, on the Translations and History screens. Timeouts, rate limits and provider outages are still retried.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li><strong>The Pro version is now an add-on.<\/strong> It installs alongside this plugin instead of replacing it, so this plugin holds the translation engine, the screens and the history for both. If you only use the free version, nothing changes.<\/li>\n<li><strong>New: a translation that fails is retried instead of giving up.<\/strong> A request the AI engine rejects or drops is sent again up to three times before the translation is marked as failed, so a passing glitch at the provider no longer costs you a translation.<\/li>\n<li>New: <code>wp latwaitr run<\/code> processes the queue from WP-CLI, for sites where WP-Cron is unreliable.<\/li>\n<li>New: a translation can now be checked, corrected or rejected by your own code before it is saved into WPML.<\/li>\n<li>Improvement: Target Languages now starts with every language WPML is set up for ticked, instead of nothing, so the plugin is ready to translate straight away. Untick the ones you do not want; an empty list is filled in again, as it would leave the plugin translating nothing.<\/li>\n<li>Improvement: switching translation engine no longer disturbs translations already in progress \u2014 each one is finished by the engine it was sent to.<\/li>\n<li>Fix: after sending content for translation the page did not refresh, so the Active Translation Queue stayed hidden until you reloaded it by hand. The confirmation pop-up is gone with it \u2014 the message now appears on the refreshed page.<\/li>\n<li>Fix: the plugin could take over translation jobs assigned to a different translator in WPML.<\/li>\n<\/ul>\n\n<h4>2.2.4<\/h4>\n\n<ul>\n<li>Improvement: Check Response button on History page<\/li>\n<\/ul>\n\n<h4>2.2.3<\/h4>\n\n<ul>\n<li><strong>New: reasoning effort for Gemini.<\/strong> The Reasoning Effort setting now applies to Gemini as well as OpenAI, and is sent as the model's thinking level.<\/li>\n<li>Fix: Gemini translations were priced without their thinking tokens, which Gemini reports separately from the answer tokens. Cost history was under-reporting them.<\/li>\n<\/ul>\n\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>Fix: translation category - always use the source language, not the one currently set in the admin panel.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li><strong>All languages in the free version.<\/strong> Every language configured in WPML can now be translated, with no per-language limit.<\/li>\n<li><strong>New: MyMemory engine.<\/strong> A free translation memory and machine translation engine that needs no API key, available in the free version.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li><strong>New: additional translation engines.<\/strong> Alongside OpenAI you can now use Anthropic (Claude), Google Gemini, DeepL and Google Translate. Each engine keeps its own API key and model, so switching back and forth costs you nothing.<\/li>\n<li><strong>New: DeepL and Google Translate support.<\/strong> Dedicated machine-translation engines, billed per character instead of per token.<\/li>\n<li><strong>New: processing modes.<\/strong> Choose Synchronous, Batch or Background. Modes an engine cannot serve fall back to Synchronous instead of failing.<\/li>\n<li><strong>New: current models.<\/strong> GPT-5.6 luna, terra and sol, Claude Opus 5, Sonnet 5 and Haiku 4.5, Gemini 3.7, 3.6 and 3.5 Flash, and Gemini 3.5 Flash Lite.<\/li>\n<\/ul>\n\n<h4>2.0.9<\/h4>\n\n<ul>\n<li>Fix: Astra Site Builder layouts not showing after translation.<\/li>\n<li>Fix: corrected the database join used to read untranslated posts.<\/li>\n<li>Fix: translated products kept appearing as needing translation.<\/li>\n<li>Fix: fatal error when saving translations of WooCommerce products, caused by the downloadable-files field type not being passed to WPML\/WCML.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li><strong>Translations now ride WPML's Translation Service pipeline.<\/strong> The plugin no longer writes translated posts directly. Jobs are pushed through WPML's queue, so they appear in WPML's Translation Management UI, respect WPML job statuses and stay consistent with manual edits.<\/li>\n<li><strong>New: Taxonomy Translation page.<\/strong> A dedicated tab for categories, tags and custom taxonomies, with its own term browser and per-term status.<\/li>\n<li><strong>Database and options upgrade.<\/strong> The queue table stores WPML job IDs, and the dedicated translator user is created on activation and removed on deactivation.<\/li>\n<\/ul>","raw_excerpt":"Automatic AI translation inside WPML, billed to your own API key. No WPML credits, no markup, no middleman.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/277332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=277332"}],"author":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/szymon0zawadzki"}],"wp:attachment":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=277332"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=277332"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=277332"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=277332"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=277332"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=277332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}