=== MisterTranslate – AI Translation for WordPress & WooCommerce === Contributors: mistertranslate, misterads Tags: translation, translate, woocommerce, elementor, multilingual Requires at least: 5.0 Tested up to: 6.9 Requires PHP: 7.0 Stable tag: 5.2.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html AI translation for WordPress, WooCommerce & Elementor that keeps your layout intact. Pay per word, no subscription, words never expire. == Description == MisterTranslate translates your WordPress site with AI while keeping your pages exactly as you designed them — no rebuilding, no broken layouts, no wasted hours fixing what the translation broke. Most translation tools ignore how your content is structured and hand you broken pages. MisterTranslate works differently: it detects how each page is built and translates it segment by segment, preserving every widget, column and visual element. And instead of a yearly subscription, you simply pay for the words you translate — once. Your words never expire, and your translations live in your own WordPress, so you own them for good. **Pay per word, not per year** No subscription, no monthly fee, no per-language licence. You buy word packs (from 500 words for €1) and use them whenever you want. Words never expire. And when you stop, nothing disappears: your translated pages stay on your site because they are stored in your own database — not on someone else's server. **Translate without breaking your design** MisterTranslate understands page builders. When you translate an Elementor page it keeps the layout, the widget structure and the visual hierarchy intact. The same applies to Avia/Enfold, Gutenberg blocks and the Classic Editor. **WooCommerce ready** Translate product titles, descriptions, short descriptions, categories and attributes. Launch your catalogue in new markets without rebuilding product pages one by one. **See the cost before you translate** The built-in estimator shows exactly how much a translation will cost before you launch it — no surprises. Your available balance is always visible inside the admin panel. **Review before you publish** You stay in control: check every translation before it goes live, and keep terminology consistent with the built-in glossary — protect brand names, keep technical terms unchanged, or define the exact translation for any phrase. **Works with your multilingual setup** MisterTranslate works alongside Polylang and WPML, linking your translated content correctly across languages. It also purges WP Rocket cache automatically after translation. = Key Features = * Translate pages, posts and custom post types from one panel * Preserve Elementor layouts with segment-based translation * Translate WooCommerce products, categories and attributes * Pay per word — no subscription, and your words never expire * Keep your translations in your own site, forever * See the exact cost before you translate * Review every translation before publishing * Keep terminology consistent with glossary rules * Process content in batches to save time * Connect translated content with Polylang and WPML * Purge WP Rocket cache after translation = Supported Builders and Editors = * Elementor * Avia / Enfold * WordPress Block Editor (Gutenberg) * Classic Editor = Language Support = 80+ languages including Spanish, English, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Arabic, Russian and Hindi. = Who Is MisterTranslate For? = * **Store owners** who need to launch products in new languages fast * **Agencies** who manage multilingual client sites and need to scale without per-site subscriptions * **Site owners** who want to translate landing pages without losing their design * **Anyone** who wants professional AI translation they pay for once and own forever == Installation == 1. Upload the `mistertranslate` folder to `/wp-content/plugins/`, or install it from the Plugins screen in WordPress 2. Activate the plugin 3. Create your account at mistertranslate.com and copy your Client ID and Secret Key 4. Go to `MisterTranslate > Settings` and paste both keys (the connection is tested automatically) 5. Open the MisterTranslate panel, pick a page and translate == Frequently Asked Questions == = How much does MisterTranslate cost? = You pay per word: 500 words for €1 (plus VAT). There is no subscription and no monthly fee. You buy word packs once and your words never expire, so you only ever pay for what you actually translate. = Do I need a subscription? = No. MisterTranslate is not a subscription. You buy words when you need them and use them whenever you want — they do not expire. = What happens to my translations if I stop paying? = Nothing — they stay on your site. Your translations are saved in your own WordPress database, so you keep them permanently even if you never buy more words. You are not renting access to your own content. = Is there a free version? = Yes. When you install the plugin you can start a free trial that gives you 500 words — enough to translate a full page — without a credit card and without copying any keys by hand. After that, translating uses words, which you buy in packs starting at €1. You always see the exact cost before you translate, and your available balance is shown inside the admin panel. = How does the free trial work? = From the plugin screen you enter your email and give consent to register your site. We then check that your site is publicly reachable and grant 500 free words tied to your domain. One trial is available per domain and per email address. If you later buy a word pack using the same email, the words are added to the same account — nothing to copy or paste. = What does MisterTranslate translate? = Pages, posts, custom post types, WooCommerce products, categories and attributes. = Does it work with Elementor? = Yes. MisterTranslate detects Elementor content and translates it with a segment-based approach to preserve layout and widget structure. = Does it support WooCommerce? = Yes. It can translate product titles, descriptions, short descriptions, categories and attributes. = Does it work with Polylang or WPML? = Yes. MisterTranslate works alongside Polylang and WPML, adding AI translation to your multilingual setup and linking translations across languages. = Can I control brand names or fixed terminology? = Yes. The glossary lets you keep terms unchanged or define specific translations for any term. = Can I estimate translation cost before starting? = Yes. The plugin includes a cost estimator and shows your available balance inside the admin panel. = Is it useful for agencies? = Yes. MisterTranslate is especially useful for agencies and site managers who localise multiple pages or products, with no per-site subscription to manage or renew. = Do I need technical knowledge to use it? = No. The plugin works from a single panel inside WordPress. Select your content, choose the target language and translate. = Does it break my page design? = No. MisterTranslate is specifically built to preserve your layout. It translates content while keeping page-builder structures, widgets and visual elements intact. = ¿Cómo traducir WordPress con IA? = Instala MisterTranslate, elige el idioma de destino y selecciona las páginas o productos que quieras traducir. La IA los traduce respetando el diseño de Elementor, Gutenberg o el editor clásico, y puedes revisar cada traducción antes de publicarla. Pagas solo por las palabras que traduces, sin cuotas ni suscripción, y las palabras no caducan. == External services == This plugin relies on the MisterTranslate translation service to translate your content. Translation is performed on our servers, so content and a small amount of technical data leave your site. Nothing is sent until you actively start a translation or start the free trial. Service endpoint: https://plugin.misterads.es/translate **When data is sent, and what is sent** * **Starting the free trial** (only after you tick the consent box and click the button): your site domain and URL, the email address you type, your WordPress and plugin versions, and a technical fingerprint of the site (a hash of the domain, site URL, versions and charset). Immediately afterwards our server makes a single public request back to your site to confirm the domain really is yours. * **Translating content** (only when you click Translate): the text to be translated — page or product titles, descriptions, excerpts, SEO title and meta description, and your glossary terms — plus your client ID, your site domain and a request signature. * **Checking your balance or validating credentials**: your client ID and site domain. We do not send your visitors' personal data, and we do not track your site's traffic. Terms of service: https://mistertranslate.com/terms-and-conditions/ Privacy policy: https://mistertranslate.com/privacy-policy/ == Screenshots == 1. Main translation dashboard for pages, products and categories. 2. Select and translate content from one centralized workflow. 3. Elementor-aware translation designed to preserve structure and layout. 4. Translate WooCommerce products, categories and attributes faster. 5. Glossary controls help keep terminology and brand names consistent. 6. Estimate translation cost before processing content. 7. Batch translation helps save time on large multilingual projects. 8. Manage API credentials and plugin settings from the admin panel. == Changelog == = 5.2.4 = * Fix (data loss): when the target language cannot be assigned in Polylang — which happens for a language added moments earlier, while Polylang's language list is still cached — the translation is no longer linked at all, and the original's existing translations are left untouched. Previously Polylang was handed a group containing an unusable entry and responded by clearing the group, silently unlinking every language already attached to that page. For pages a warning now appears in the results list telling you to set the language by hand on that one post; WooCommerce products and product categories and tags get the same protection, recorded in the debug log rather than on screen * Fix (data loss): linking a translation now merges both posts' existing translation groups, so a language already attached to either side can never be dropped * Fix (data loss): re-translating with "replace" moves the previous translation to the trash instead of deleting it outright, so a translation edited by hand can be recovered. Trashed translations no longer appear in the Outdated list, and a trashed page is no longer offered as the parent of a new child translation * Fix: the hash used to decide whether a translation is out of date was computed over the extracted text when stored and over the raw source when compared, so the two could not match and every translation looked out of date from the moment it was made. Both now go through one shared function. This applies from 5.2.4 onward: translations created before this update keep their old hash and will keep showing as outdated until each has been re-translated once * Fix: "Re-translate" on an outdated translation works again — it called an API method that was removed in 5.0 and failed every time. It now updates the existing translation in place, so the post keeps its ID, slug, language, translation group and every link pointing at it, instead of being recreated. Its SEO fields are re-derived from the original rather than from the previous translation, and nothing at all is written unless the whole translation came back complete * Fix: a regional target language is only matched to a regional sibling when there is exactly one — with both es-MX and es-AR installed the page is left unlinked, with a warning, rather than filed under the wrong country * Internal: a dormant code path in the Elementor builder still called the API method removed in 5.0. It has been rewritten onto the current segment API. No Elementor site was affected, because nothing called it = 5.2.3 = * Fix: the requested language variant now reaches every translation. The European-Portuguese instruction only went out with page translations, so a product description or a category name sent to "pt" could still come back in Brazilian Portuguese. It is now attached to pages, products and taxonomy terms alike — taxonomy terms previously carried no glossary instructions at all * Fix: language codes are normalised, so pt_PT, pt-PT and PT resolve to the same instruction instead of silently falling back to none. An unknown regional code falls back to its base language, so pt-AO and pt-MZ get the European Portuguese instruction * New: regional language variants are selectable — Português (Brasil), Español (España/Latinoamérica/México/Argentina), English (UK/US), Français (France/Canada), Deutsch (Deutschland/Österreich/Schweiz), Nederlands (Nederland/België) and 简体/繁體 Chinese. Picking one your multilingual plugin does not have falls back to the closest language it does have, instead of leaving the translation unassigned * Fix: a regional code now uses its base language's word-count ratio in the cost estimate instead of the global average, which was under-estimating Chinese by about a fifth * Note on bare codes: "pt" continues to mean European Portuguese, as it has since 5.1.7. "zh" means Simplified Chinese, and "nb"/"nn" mean Bokmål/Nynorsk, because those codes each name one written standard. "es", "fr", "de", "nl" and "ca" are left to the engine's own judgement, because the same code is used by sites that want different standards — choose the regional variant when you want one enforced. "en" only asks for internally consistent spelling = 5.2.2 = * Fix: Custom HTML blocks are now translated. Text inside a Custom HTML block (`core/html`) was skipped entirely, so any page built with them was only partly translated — on one real site that was 37% of the copy. The text is now translated while tags, attributes, scripts, styles and HTML comments are left untouched = 5.2.1 = * Fix: translated products now really get the translated categories. The language was assigned to the new product *after* its categories were copied, and Polylang filters term assignment by the post language, so the translated terms were silently reverted to the source language. The language is now set first = 5.2.0 = * New: in-plugin free trial. New sites can get 500 free words — enough for a full page — without a credit card and without copying any credentials by hand. One trial per registrable domain (subdomains included) and per email address; your site is verified as publicly reachable before words are granted. **Disabled by default**: it shows nothing and calls nothing until it is switched on, so this update is safe to apply on every site * New: the readme now documents the external translation service — what data is sent, when, and links to the terms and privacy policy * Clearer WordPress.org listing: keyword-led title, rewritten description and a new FAQ making the model explicit (pay per word, no subscription, words never expire, translations stay in your own site, works with Polylang/WPML) = 5.1.9 = * Fix: translated products are now assigned the translated product categories, tags and attribute terms instead of the source-language ones. Previously a translated product stayed in the original categories, so its permalink and breadcrumbs kept the source language (e.g. /tienda/personalizados/alfombrilla/ on a German product). Terms that have no translation yet are kept, so products are never left uncategorised = 5.1.8 = * Fix: translating WooCommerce products no longer fails. The product handler called get_button_text() on every product, but that method only exists on external/affiliate products, so any simple or variable product raised "Call to undefined method" and the translation aborted before any words were consumed. Affected every 5.1.x release = 5.1.7 = * Fix: Elementor HTML widgets that mix a