{"id":30,"date":"2026-09-16T10:29:02","date_gmt":"2026-09-16T10:29:02","guid":{"rendered":"https:\/\/docs.latw.ai\/uncategorized\/automatic-translation\/"},"modified":"2026-09-16T10:29:02","modified_gmt":"2026-09-16T10:29:02","slug":"automatic-translation","status":"publish","type":"post","link":"https:\/\/docs.latw.ai\/pl\/latw-for-wpml\/automatic-translation\/","title":{"rendered":"Automatic Translation"},"content":{"rendered":"<p><em>Available in LATW AI Translator for WPML <strong>PRO<\/strong> (version 2.2.0 and later).<\/em><\/p>\n<h2>What it does<\/h2>\n<p>Normally you translate content by opening the plugin&#8217;s <strong>Translations<\/strong> screen and pressing a<br \/>\nbutton. Automatic translation removes that step: as soon as a new post, page or product is<br \/>\npublished, the plugin sends it to the AI on its own and WPML receives the finished translation<br \/>\na short while later.<\/p>\n<p>It was built for sites where content does not arrive by hand \u2014 a product feed from a supplier,<br \/>\na CSV importer, an app that posts articles through the API. You publish, and the translations<br \/>\nappear.<\/p>\n<p><strong>Important:<\/strong> every automatic translation is billed by your AI provider, exactly like a manual<br \/>\none. The settings page includes daily limits so an importer that misbehaves cannot run up a bill<br \/>\novernight \u2014 see <a href=\"#daily-limit\">Daily Limit<\/a> and <a href=\"#daily-cost-limit\">Daily Cost Limit<\/a>.<\/p>\n<h2>How it works, step by step<\/h2>\n<ol>\n<li>Someone (or something) publishes a new post.<\/li>\n<li>The plugin notes the post and starts a short countdown \u2014 60 seconds by default.<\/li>\n<li>If the post is saved again during the countdown, the countdown restarts. This is deliberate:<br \/>\nimporters usually write the same product several times in a row (first the text, then the<br \/>\nprice, then the stock level, then the images), and we want to translate it once, after it has<br \/>\nsettled \u2014 not four times.<\/li>\n<li>Once the countdown runs out, the plugin&#8217;s regular every-minute background task picks the post<br \/>\nup and sends it to the AI, in the same way as if you had pressed Translate yourself.<\/li>\n<li>The translation lands in WPML and the post is done.<\/li>\n<\/ol>\n<h3>What does <em>not<\/em> start a translation<\/h3>\n<ul>\n<li><strong>Editing content that is already published.<\/strong> Only content <em>entering<\/em> one of the selected<br \/>\nstates counts \u2014 a brand-new post being published, or a draft going live. Re-saving a published<br \/>\npost does nothing at all. A stock or price sync that touches every product every few hours will<br \/>\ntherefore not trigger anything.<\/li>\n<li><strong>Content that is already translated.<\/strong> If a post already has a translation in every target<br \/>\nlanguage, it is skipped.<\/li>\n<li><strong>Translations themselves.<\/strong> A translated post is never treated as new content to translate,<br \/>\nso there is no loop.<\/li>\n<li><strong>Drafts in progress, trashed posts and media attachments.<\/strong><\/li>\n<\/ul>\n<p>Keeping existing translations up to date when the original changes remains a manual decision on<br \/>\nthe <strong>Translations<\/strong> screen.<\/p>\n<hr \/>\n<h2>The settings<\/h2>\n<p>All options live in <strong>AI Translator \u2192 Settings \u2192 Automation<\/strong>.<\/p>\n<h3>Master switch \u2014 &#8220;Automatic translation is ON \/ OFF&#8221;<\/h3>\n<p>The one control on the page that changes what your site does on its own. While it is off, nothing<br \/>\nbelow has any effect and the plugin behaves exactly as before. Turn it on and the plugin starts<br \/>\nwatching for new content.<\/p>\n<p>The panel shows a plain-language summary of what will happen once you save \u2014 which content types<br \/>\ngo to which languages, how long the delay is, and which daily limits apply \u2014 plus a warning if<br \/>\nyour current selection would translate nothing.<\/p>\n<h3>Content Types<\/h3>\n<p>Which kinds of content are watched: Posts, Pages, Products, or any custom type your theme or<br \/>\nplugins register. Tick everything you want translated automatically.<\/p>\n<p><strong>Nothing happens until at least one type is ticked.<\/strong> This is the usual reason automatic<br \/>\ntranslation appears to &#8220;not work&#8221;.<\/p>\n<h3>Trigger When Content Becomes<\/h3>\n<p>The state a post has to <em>enter<\/em> for a translation to start. <strong>Published<\/strong> is the default and is<br \/>\nwhat most sites want.<\/p>\n<table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Translation starts when\u2026<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Published<\/strong><\/td>\n<td>a post goes live (new post published, or a draft published)<\/td>\n<\/tr>\n<tr>\n<td><strong>Draft<\/strong><\/td>\n<td>a post is first saved as a draft \u2014 useful if you want translations ready before publishing<\/td>\n<\/tr>\n<tr>\n<td><strong>Pending review<\/strong><\/td>\n<td>a contributor submits a post for review<\/td>\n<\/tr>\n<tr>\n<td><strong>Private<\/strong><\/td>\n<td>a post is published privately<\/td>\n<\/tr>\n<tr>\n<td><strong>Scheduled<\/strong><\/td>\n<td>a post is scheduled for a future date<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You can tick more than one. Remember that only the <em>move into<\/em> that state counts \u2014 a post that is<br \/>\nalready published and gets edited is not re-translated.<\/p>\n<h3>Delay Before Translating<\/h3>\n<p>How many seconds to wait after publication before sending the content to the AI. Default <strong>60<\/strong>,<br \/>\nminimum <strong>30<\/strong>.<\/p>\n<p>Every further save of that post restarts the countdown. So the delay is not &#8220;translate 60 seconds<br \/>\nlater&#8221; so much as &#8220;translate 60 seconds after the last time anything touched this post&#8221; \u2014 which is<br \/>\nwhat stops half-built imported products from being translated mid-import.<\/p>\n<ul>\n<li>Content written by people in the editor: the default 60 seconds is fine.<\/li>\n<li>Content coming from an importer that writes in several passes: raise it to 300 seconds (5 min)<br \/>\nor more, so the importer is definitely finished.<\/li>\n<\/ul>\n<h3>Target Languages<\/h3>\n<p>Which languages new content is translated into.<\/p>\n<p>Leave <strong>all boxes unchecked<\/strong> to reuse the Target Languages you already picked on the<br \/>\n<strong>Translation<\/strong> tab. Tick specific languages here only if automatic translation should cover a<br \/>\nnarrower set than your manual translations \u2014 for example, translate everything into German by hand<br \/>\nbut let only French run automatically.<\/p>\n<h3>Daily Limit<\/h3>\n<p>The maximum number of automatic translations per day. <strong>0 means no limit.<\/strong><\/p>\n<p>One post translated into three languages counts as <strong>three<\/strong>.<\/p>\n<p>This is the safety net. If a feed misfires and recreates 5,000 products, the limit stops the run<br \/>\nonce it is reached. Nothing is lost \u2014 the remaining posts keep waiting and go out automatically<br \/>\nonce the limit resets the next day (or as soon as you raise it). While a limit is holding content<br \/>\nback, a warning appears on the plugin&#8217;s own screens telling you how many items are waiting.<\/p>\n<p>The day is counted in UTC, so it rolls over at the same moment regardless of your site&#8217;s timezone.<\/p>\n<h3>Daily Cost Limit<\/h3>\n<p>The maximum amount, in US dollars, to spend on automatic translations per day. <strong>0 means no<br \/>\nlimit.<\/strong> It counts only automatic translations \u2014 anything you start by hand is not included.<\/p>\n<p>One caveat worth understanding: the exact cost of a translation is only known once it comes back<br \/>\nfrom the provider, so this limit reacts with a slight delay and can be overshot a little. If you<br \/>\nwant a hard, immediate stop, set the <strong>Daily Limit<\/strong> above as well.<\/p>\n<h3>Settings this feature reuses<\/h3>\n<p>Automatic translation is not a separate translation engine \u2014 it uses everything already configured<br \/>\nelsewhere in the plugin:<\/p>\n<ul>\n<li><strong>Processing Mode<\/strong> (Settings \u2192 General): synchronous, batch or background.<\/li>\n<li><strong>Provider, model and prompt settings<\/strong> (Settings \u2192 Translation).<\/li>\n<li><strong>Outdated Translations<\/strong> mode, if a post it handles turns out to need a delta update.<\/li>\n<\/ul>\n<hr \/>\n<h2>Where to check on it<\/h2>\n<p>The plugin <strong>Dashboard<\/strong> has an <strong>Automatic Translation<\/strong> card showing, at a glance:<\/p>\n<ul>\n<li>whether the feature is <strong>Active<\/strong>, <strong>Disabled<\/strong>, or currently <strong>blocked by a daily limit<\/strong><\/li>\n<li>the content types and languages it covers<\/li>\n<li><strong>Waiting<\/strong> \u2014 how many posts are queued up, and when the next one is due<\/li>\n<li><strong>Translated today<\/strong> \u2014 count, against your daily limit if you set one<\/li>\n<li><strong>Cost today<\/strong> \u2014 spend, against your cost limit if you set one<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Available in LATW AI Translator for WPML PRO (version 2.2.0 and later). What it does Normally you translate content by opening the plugin&#8217;s Translations screen and\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_latwm_translated_slug":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-latw-for-wpml"],"_links":{"self":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":3,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"predecessor-version":[{"id":77,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts\/30\/revisions\/77"}],"wp:attachment":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}