Title: TranslateRocket – Free Multilingual Translation, Unlimited Languages
Author: Federico
Published: <strong>јули 14, 2026</strong>
Last modified: август 28, 2026

---

Search plugins

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

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

# TranslateRocket – Free Multilingual Translation, Unlimited Languages

 By [Federico](https://profiles.wordpress.org/federicodev/)

[Download](https://downloads.wordpress.org/plugin/translate-rocket.0.9.0.zip)

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

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

## Description

**TranslateRocket makes your site multilingual, and everything it does is free.**
No word limits, no charge per language, and nothing switched off to push you towards
an upgrade — it is not a trimmed-down version of a paid plugin.

**Switching from another translation plugin? Your existing translations come with
you.** One click imports everything you have already paid for or typed by hand from
TranslatePress, Polylang, WPML or Weglot — WPML’s are read straight from its own
tables, so the import still works after WPML has been deactivated, and Weglot’s 
come in from its CSV export.

It detects translatable text as you browse — visible text, link titles, image alt,
placeholders, ARIA labels, page titles and SEO meta — and serves each language under
its own clean URL prefix (`/it/`, `/de/`), friendly to SEO and to page caches.

You translate however you like:

 * 🖱️ **On the live page** — switch on the visual editor and click any text to translate
   it in a small, draggable popup, with Previous/Next, a progress bar and a “skip
   already-translated” mode.
 * 🆓 **Free with Google Translate (no key)** — every field has a link that opens
   Google Translate prefilled, so you translate for free on Google’s own site and
   paste the result back.
 * ✍️ **By hand**, in a clear per-page editor (also inside the post/page screen)
   with red highlighting for what’s still missing — plus a copy & paste box for 
   bulk Google translation.
 * 🤖 **With AI** — bring your own key for DeepL, OpenAI, Google Gemini, Anthropic(
   Claude) or Google Cloud Translate. Text is sent only to the provider you choose,
   only when you ask.

#### Highlights

 * 🔑 **No API key required.** You can translate the whole site by hand in the visual
   editor, or free with Google Translate, and edit any translation later. There 
   is no signup, no account and no key to create — AI providers are optional and
   only used if you add one yourself.
 * 🌍 **Unlimited languages** (36 built in), 100% free. Donations welcome, never
   required.
 * ⚡ **Built for huge sites**: past ~20,000 strings the engine switches by itself
   to indexed per-page lookups — flat memory and the same render time at 500 or 
   500,000 strings (load-tested), where map-loading translation plugins hit the 
   PHP memory limit.
 * 🖱️ **On-page visual editor**: click text to translate it in a draggable popup—
   no admin round-trips.
 * 🧩 **Interface too**: translates theme & plugin interface strings, not just page
   content.
 * 🔗 **SEO-ready URLs**: translated slugs (e.g. `/it/chi-siamo/`) and `hreflang`
   tags.
 * 🚦 **Per-page visibility**: if a page has no equivalent in a language, redirect
   it, show a custom message, or 404 — per page, per language.
 * 🎌 **Flexible language switcher** as a shortcode `[translaterocket_switcher]`,
   a Gutenberg block, or a widget — inline, dropdown, or a **scrollable bar with‹›
   arrows** for many languages — with original SVG flags that render everywhere (
   including Windows). Show a switcher on desktop only, on mobile only, or both,
   to style a different menu for each.
 * 📥 **One-click import** of your existing translations from TranslatePress, Polylang,
   WPML or Weglot — WPML’s are read straight from its tables, so the import works
   even after WPML is deactivated.
 * 🛒 **WooCommerce aware**: product and category slugs per language, the AJAX mini-
   cart and JS strings translated too, and customer emails rendered in the language
   the order was placed in.
 * 👀 **Preview mode**: review new translations or a fresh import on the real pages
   while visitors still see the default language — publish with one click when ready.
 * 📂 **Built for scale**: searchable, sortable page list for sites with hundreds
   of pages.
 * ✅ **You stay in charge** — every machine translation can be reviewed and edited
   by hand. Translations live in your own database.

#### Languages

Translate your site into the languages your visitors actually speak: Spanish, French,
German, Italian, Portuguese and Brazilian Portuguese, Dutch, Polish, Russian, Ukrainian,
Turkish, Romanian, Greek, Arabic, Hindi, Indonesian, Vietnamese, Thai, Chinese, 
Japanese, Korean — 36 languages ship built in, and you can add unlimited custom 
ones (any language code works). The plugin’s own admin interface is translated into
nine languages besides English: Japanese, Spanish, German, French, Brazilian Portuguese,
Italian, Dutch, Russian and Polish.

#### Need a hand?

Want a professional multilingual setup or a custom feature? Help is available as
a service from the author — see the plugin’s “Help & Feedback” screen.

### External services

This plugin can connect to third-party services, but only with your involvement:

 * **AI translation providers (optional).** If you add an API key and ask to translate,
   the relevant text is sent to the provider you selected so it can return a translation.
   No text is sent until you configure a provider and trigger a translation. Providers
   and policies:
    - DeepL — service: https://www.deepl.com/en/pro , privacy: https://www.deepl.
      com/en/privacy
    - OpenAI — service: https://platform.openai.com , privacy: https://openai.com/
      policies/privacy-policy/
    - Google Cloud Translation / Gemini — service: https://cloud.google.com/translate,
      privacy: https://policies.google.com/privacy
    - Anthropic (Claude) — service: https://www.anthropic.com , privacy: https://
      www.anthropic.com/legal/privacy
 * **Google Translate (manual, always available).** Every editor offers a per-phrase
   link and a copy-paste box that open Google Translate (translate.google.com) prefilled,
   so you translate on Google’s own site and paste the result back. This is just
   a convenience link — your browser, not the plugin, contacts Google. Service: 
   https://translate.google.com , terms: https://policies.google.com/terms , privacy:
   https://policies.google.com/privacy
 * **Optional one-click Google auto-fill (off by default).** A site owner can opt
   in (the `TRROCKET_AUTO_GOOGLE` constant / the `trrocket_auto_google` filter) 
   to let the server fetch a translation from Google’s free endpoint with one click.
   This uses an undocumented endpoint and is best-effort, so it is disabled out 
   of the box and the plugin never calls it on its own. For dependable automatic
   translation use the official AI providers below.
 * **translaterocket.com support ticket (optional, on request).** The Diagnostics
   screen has a form that opens a support ticket for you. It sends nothing until
   you fill it in and press Send, and what it sends is exactly what the page shows
   you: your name, your email address (so the answer can reach you), your subject
   and message, your site address and the plugin version, plus the technical report
   if you leave that box ticked. The report never contains API keys. To prove the
   request really comes from your site and not from a spam robot, the support site
   then makes one request back to your site’s home URL with a one-time token. Nothing
   else is transmitted, nothing is stored on your site, and if you would rather 
   not use it the same page still offers the copy-and-paste route. Service: https://
   translaterocket.com , privacy: https://translaterocket.com/privacy-policy/
 * **translaterocket.com (optional).** The “Help & Feedback”, “Request customization”,“
   Send feedback” and “Get tips & updates” links open translaterocket.com in your
   browser with your site’s domain in the URL. Nothing is sent automatically — these
   are links you choose to click. Service: https://translaterocket.com , privacy:
   https://translaterocket.com/privacy-policy/

## Screenshots

[⌊Translate without an API key at all: Chrome and Edge carry a translator that runs
on the device itself, and one button puts it to work on everything still missing.
Nothing is sent anywhere, nothing is charged, and what it translates is kept for
good.⌉⌊Translate without an API key at all: Chrome and Edge carry a translator that
runs on the device itself, and one button puts it to work on everything still missing.
Nothing is sent anywhere, nothing is charged, and what it translates is kept for
good.⌉[

Translate without an API key at all: Chrome and Edge carry a translator that runs
on the device itself, and one button puts it to work on everything still missing.
Nothing is sent anywhere, nothing is charged, and what it translates is kept for
good.

[⌊Click any text on your live page and translate it there — the language switcher,
the progress bar and the SEO panel are all in the toolbar.⌉⌊Click any text on your
live page and translate it there — the language switcher, the progress bar and the
SEO panel are all in the toolbar.⌉[

Click any text on your live page and translate it there — the language switcher,
the progress bar and the SEO panel are all in the toolbar.

[⌊The per-page editor: your text on the left, the translation on the right. Type
it yourself or let AI fill it in.⌉⌊The per-page editor: your text on the left, the
translation on the right. Type it yourself or let AI fill it in.⌉[

The per-page editor: your text on the left, the translation on the right. Type it
yourself or let AI fill it in.

[⌊Pick the language your site is written in and the languages to translate it into.
Each one gets its own /xx/ URL.⌉⌊Pick the language your site is written in and the
languages to translate it into. Each one gets its own /xx/ URL.⌉[

Pick the language your site is written in and the languages to translate it into.
Each one gets its own /xx/ URL.

[⌊Every page at a glance, with how much of it is translated and what is still missing.⌉⌊
Every page at a glance, with how much of it is translated and what is still missing
.⌉[

Every page at a glance, with how much of it is translated and what is still missing.

[⌊Bring your own key — OpenAI, Anthropic, Gemini, DeepL or Google. You pay the provider
directly, and a key is optional.⌉⌊Bring your own key — OpenAI, Anthropic, Gemini,
DeepL or Google. You pay the provider directly, and a key is optional.⌉[

Bring your own key — OpenAI, Anthropic, Gemini, DeepL or Google. You pay the provider
directly, and a key is optional.

[⌊Coming from another plugin? WPML, Polylang and TranslatePress are detected automatically;
Weglot imports from its CSV export.⌉⌊Coming from another plugin? WPML, Polylang 
and TranslatePress are detected automatically; Weglot imports from its CSV export
.⌉[

Coming from another plugin? WPML, Polylang and TranslatePress are detected automatically;
Weglot imports from its CSV export.

[⌊Design the language switcher with a live preview — dropdown or list, flags, colours,
corners and position.⌉⌊Design the language switcher with a live preview — dropdown
or list, flags, colours, corners and position.⌉[

Design the language switcher with a live preview — dropdown or list, flags, colours,
corners and position.

[⌊SEO for each page and language: the translated URL slug, the title Google shows
and the meta description.⌉⌊SEO for each page and language: the translated URL slug,
the title Google shows and the meta description.⌉[

SEO for each page and language: the translated URL slug, the title Google shows 
and the meta description.

[⌊Translation memory: the same phrase is never paid for twice, and you can see what
that has saved you.⌉⌊Translation memory: the same phrase is never paid for twice,
and you can see what that has saved you.⌉[

Translation memory: the same phrase is never paid for twice, and you can see what
that has saved you.

[⌊Diagnostics: a health check of the setup plus anything the plugin has flagged,
so nothing fails silently.⌉⌊Diagnostics: a health check of the setup plus anything
the plugin has flagged, so nothing fails silently.⌉[

Diagnostics: a health check of the setup plus anything the plugin has flagged, so
nothing fails silently.

## Blocks

This plugin provides 1 block.

 *   Language Switcher

## Installation

 1. Upload the `translate-rocket` folder to `/wp-content/plugins/`, or install it from
    the Plugins screen.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. Go to **TranslateRocket  Settings** and pick your source language and the languages
    to translate into.
 4. Browse your site to detect content, then translate from **TranslateRocket  Translations**(
    by hand, copy & paste, or AI).
 5. Add the language switcher anywhere with the `[translaterocket_switcher]` shortcode,
    the block, or the widget.

## FAQ

### Is it really free?

Yes. All translation features and unlimited languages are free, with no paid tier
inside the plugin. You only ever pay your own AI provider, directly, if you choose
to use AI.

### How do you keep it free with no income from it?

I build websites for a living, and I use TranslateRocket on every multilingual site
I make. Every fix reaches those sites the day I release it, so the plugin gets maintained
because I need it maintained — publishing it for everyone costs me nothing on top
of that. What comes back is worth more to me than a licence fee would be: bug reports
from setups I could never reproduce on my own, which end up improving my own clients’
sites too. Donations are welcome and change nothing about what the plugin does.

### Do I need an AI key?

No, and nothing is limited without one. With no provider configured you can still
click any text on the live page and type its translation, edit it again later, and
publish it — translations are stored in your own database either way. Every field
also offers a free Google Translate link you can paste back from. AI keys are optional
and only used at the moment you ask for one.

### Do my translations stay on my site?

Yes. Translations are stored in your own WordPress database. Text is only sent to
the AI provider you configure, at the moment you ask for a translation.

### Does it work with caching plugins?

Yes. Each language lives under its own URL (e.g. `/it/`), so page caches store each
language separately and automatically.

### Does it work with WooCommerce?

Yes. Product pages, categories and attributes are translated like any other content,
and slugs are translated per language. It also covers the parts WooCommerce renders
outside the page HTML, which a page-only engine misses: the AJAX mini-cart fragments,
strings passed to JavaScript (such as the “View cart” link), and transactional emails—
the order’s language is recorded at checkout (classic and block/Store API) and the
customer email is rendered in that language. Wording that only ever appears inside
an email (WooCommerce’s own “Thank you for your order”, “Quantity”, “Price”) is 
picked up automatically the first time such an email is sent and filed under “WooCommerce
emails” in the translation screens, so you can translate it like anything else. 
Multi-currency is out of scope: TranslateRocket translates, it does not convert 
prices.

### Can I move from TranslatePress, Polylang, WPML or Weglot?

Yes — use **TranslateRocket  Import** to bring over your existing translations. 
The WPML import covers both its string translations and its post-based translations(
titles, slugs and matching body text), and reads directly from WPML’s tables, so
it works even when WPML is already deactivated. Coming from Weglot (a hosted service)?
Export your translations from the Weglot dashboard as a CSV and upload the file 
on the same Import screen — the columns are detected automatically and mapped to
your target languages.

To review the result safely, turn on **Preview mode** (“Who sees the translations”
in Settings): you browse the fully translated site while visitors keep seeing the
default language, and one click publishes it when you are happy.

### What if a page shouldn’t exist in another language?

Open the page and use the “Language visibility” box to redirect it, show a custom
message, or return a 404 — per language.

## Reviews

![](https://secure.gravatar.com/avatar/73cae69ed1558ca4cbd2589fa1707dca5836fdc7de8043c596d086dedd8ecf78?
s=60&d=retro&r=g)

### 󠀁[Miglior applicazione sul mercato. Sito multilingue completo ed affidabile](https://wordpress.org/support/topic/miglior-applicazione-sul-mercato-sito-multilingue-completo-ed-affidabile/)󠁿

 [bob1982](https://profiles.wordpress.org/bob1982/) август 26, 2026 1 reply

Miglior sito multilingue mai provato. Consente una connessione diretta con l’utenza
con traduzione immediata e puntuale. L’ho già provato in almeno sei lingue diverse.
Da provare assolutamente

![](https://secure.gravatar.com/avatar/d47dcd2fd03bf05b49ec79180dd3d1101fa41efa9fa64db31cb88a44e349459c?
s=60&d=retro&r=g)

### 󠀁[Used for multiple projects… waited a long time for a decent translation plugin](https://wordpress.org/support/topic/used-for-multiple-projects-waited-a-long-time-for-a-decent-translation-plugin/)󠁿

 [zedjine](https://profiles.wordpress.org/zedjine/) август 24, 2026 1 reply

I’ve used this plugin in many of my projects now. I’ve finally ditched old, expensive,
and clunky plugins to switch to this new one. In love <3

![](https://secure.gravatar.com/avatar/d663b451da1087c7157d3743eb65f75b1ef8d26ced2add0be5508b025524c812?
s=60&d=retro&r=g)

### 󠀁[everything I needed at no cost](https://wordpress.org/support/topic/everything-i-needed-at-no-cost/)󠁿

 [scalia](https://profiles.wordpress.org/scalia/) август 19, 2026 1 reply

I’ve been using this plugin for almost a year and I have no management costs. I’d
say it’s perfect!

![](https://secure.gravatar.com/avatar/4335bc63fcb3a48b949dff19d405b1c18c7fde713539d1722a5a93631b028a25?
s=60&d=retro&r=g)

### 󠀁[Perfect for our B&B — our site now speaks every guest’s language](https://wordpress.org/support/topic/perfect-for-our-bb-our-site-now-speaks-every-guests-language/)󠁿

 [kerkent](https://profiles.wordpress.org/kerkent/) јули 22, 2026 1 reply

We run a small bed & breakfast in Agrigento, near the Valley of the Temples, and
most of our guests come from abroad. We needed our website to work in several languages
without paying a monthly fee or a per-word bill like other tools ask for. TranslateRocket
does exactly that: our site is now available in multiple languages, each with its
own clean address, and visitors from different countries can finally read everything
in their own language. It’s fast, it didn’t slow the site down, and it’s completely
free. For a small family business like ours it made a real difference. Highly recommended.

 [ Read all 3 reviews ](https://wordpress.org/support/plugin/translate-rocket/reviews/)

## Contributors & Developers

“TranslateRocket – Free Multilingual Translation, Unlimited Languages” is open source
software. The following people have contributed to this plugin.

Contributors

 *   [ Federico ](https://profiles.wordpress.org/federicodev/)

[Translate “TranslateRocket – Free Multilingual Translation, Unlimited Languages” into your language.](https://translate.wordpress.org/projects/wp-plugins/translate-rocket)

### Interested in development?

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

## Changelog

#### 0.9.0

 * New: ask for help without leaving WordPress. The Diagnostics screen now carries
   a form that opens a support ticket straight from your site — the technical report
   goes with it if you want, the answer comes back to you by email, and you can 
   follow the whole thread from a link. Nothing is sent until you press the button,
   and the page shows you exactly what leaves. If your site cannot be reached from
   the outside, it says so and points you at the ordinary support page instead.
 * New: the three ways to translate now sit side by side on the Translations screen—
   scan the site for text, hand the whole language to the AI, or let Chrome and 
   Edge do it for free. Each page in the list also gained its own one-click AI button
   next to Translate, so a single page can be filled in without touching the rest.
 * Fix: the setup wizard showed “ Back” and “Finish & start translating” on the 
   very first step, next to “Next ”. They were meant to be hidden; WordPress’s own
   button styling was overriding the browser’s hidden attribute, so all three were
   on screen at once.
 * Fix: the welcome notice appeared on top of the setup wizard telling you to go
   elsewhere to pick your languages — which is what the wizard was already asking
   you to do. It now stays out of the way there, and elsewhere it points at the 
   wizard until you have been through it.
 * Fix: the Translations screen counted only the strings already queued for the 
   language you were looking at, so a freshly added language could read “0 still
   to translate out of 0 detected” while the site was full of untranslated text.

#### 0.8.9

 * New: translate without an API key at all. Chrome and Edge on a computer carry
   a translator that runs on the device itself, and the bulk screen can now drive
   it: install the plugin, pick your languages, press the button. It costs nothing,
   needs no account, and the text never leaves the machine. Quality sits below DeepL
   and the AI models and it works one phrase at a time, so it is the fastest way
   to a translated site rather than the best one — and everything it translates 
   is kept, so adding a provider later never repeats the work. It needs a desktop
   Chrome or Edge and an admin served over https. Where that is not the case — Firefox,
   Safari, a phone, an admin on plain http — the same panel now says so and points
   at the copy-and-paste round trip instead, which works in any browser and still
   needs no key.

#### 0.8.8

 * New: an extra instruction you can give the AI, in your own words — the tone of
   voice, the words your business does or does not use, names that must stay as 
   they are. It is sent with every translation. The rules about the output format
   still come last and still win, so a note that goes too far cannot break a batch.
   Only the AI models read it: OpenAI, Claude and Gemini. DeepL and Google Translate
   are translation APIs with no prompt of their own, and the settings page says 
   so when one of them is the provider in use.
 * New: two more ways to show a language in the switcher — the short code on its
   own (EN, IT, ES) and the flag with the short code. Full names wrap onto a second
   line as soon as a horizontal menu carries more than a few languages; “FR” and“
   PT” do not.
 * New: a “No border at all” option for the switcher. Until now the border could
   only be recoloured, so the only way to hide it was to paint it the colour of 
   the background — which stops working the moment the background is not plain.
 * Change: the donation notice says more plainly that the plugin is free forever
   and stays maintained either way.

Thanks to Nicholas, who wrote in with all three of these suggestions.

#### 0.8.7

 * Fix: with “Redirect new visitors to their browser language” on, picking a language
   from the switcher was undone straight away and the visitor was sent back. The
   redirect remembered its decision in a cookie, and Varnish — the cache in front
   of Cloudways and many other hosts — strips cookies it does not recognise, so 
   that decision never reached PHP and the redirect fired again on every page. The
   mirror image was true too: on a cached page PHP never runs, so the redirect did
   not happen there at all. The decision now happens in the browser, which no cache
   can interfere with, and it works on cached pages for the first time. Clicking
   a language in the switcher is recorded, so a deliberate choice always wins over
   the browser’s preference.
 * Fix: the on-page editor’s toolbar followed the language you were translating 
   into. Editing the Dutch version turned the toolbar Dutch. It now follows the 
   language of the person using it, falling back to the site’s and then to English—
   while the page underneath stays in the language being edited.
 * Fix: browsing a translated page as an administrator filed WordPress’ own already-
   translated interface as new source text — “Insert/edit link” and friends were
   recorded in Arabic, Dutch, Romanian and more, waiting to be “translated” into
   English. Strings are now collected only where the text really is the source language.
   Site pages still discover everything, and the site scan walks those.
 * Fix: in the on-page editor the toolbar hint was cut off mid-word on any screen
   between 720 and 1400px wide, which is most laptops.

#### 0.8.6

 * New: the admin is now translated into nine languages besides English — Japanese,
   Dutch, Russian and Polish join Italian, German, Spanish, French and Brazilian
   Portuguese. The four new ones are complete.
 * Fix: the plugin shipped complete Italian, German, Spanish, French and Brazilian
   Portuguese catalogues and not one of them was ever loaded. For a plugin hosted
   on WordPress.org, WordPress only reads translations from the language pack in
   wp-content/languages/plugins; a plugin’s own /languages folder is ignored unless
   the plugin registers it. It now does, so those languages work immediately. If
   a language pack is published later it still takes priority, so nothing is overridden.
 * Fix: only Italian had a compiled .mo. The others shipped as .po only, which PHP
   cannot read at runtime — they are all compiled now.
 * Fix: 136 mistranslations in the German, Spanish, French and Portuguese catalogues,
   all of the same kind — an English word with two meanings, machine-translated 
   into the wrong one. “API key” had become the key on a keyboard, “Strings” the
   strings of a musical instrument, “Slug” the mollusc, and Spanish “Save” meant
   saving money. Nobody had ever seen them, because nothing loaded them.
 * Fix: in the on-page editor the toolbar hint was cut off mid-word on any screen
   between 720 and 1400px wide — which is most laptops.
 * Screenshots on the plugin page redone: they were captured too wide, and WordPress.
   org resizes to 900px before serving, so the text arrived unreadable.

#### 0.8.5

 * Fix: the review request never reached most sites. Dismissing the welcome notice
   with the standard “x” was not recorded, so the notice returned on every page 
   and the later notices never got their turn. The “x” now sticks, and the welcome
   steps aside on its own after a week.
 * Change: the review is asked for after the plugin has actually done something —
   at least 25 strings translated and five days in — instead of on day 14 regardless
   of use. The message says how many strings were translated on that site, and offers
   a link to support for anyone who has a problem rather than a compliment.
 * Fix: four links in the admin notices and on the Help & Feedback screen pointed
   to pages that do not exist on translaterocket.com and returned a 404 (“Get tips&
   updates”, “Something is wrong”, “Send feedback”, “Request customization”). They
   now point to the news and support pages.

#### 0.8.4

 * New: WooCommerce email wording is now translatable. The engine learns strings
   while you browse your site, which meant phrases WooCommerce only ever prints 
   inside an email — “Thank you for your order”, “Quantity”, “Price” — could never
   be collected, so order emails came out only partly translated. Customer emails
   are now scanned as they are sent and their wording is filed under “WooCommerce
   emails” in the translation screens, ready to translate by hand or with AI. Scanning
   happens once per template, not once per order.

#### 0.8.3

 * Compatible with WordPress 7.1.
 * Fix: the language switcher block now uses Block API version 3. WordPress 7.1 
   always runs the post editor inside an iframe, and a block still declaring version
   2 made the whole editor fall back to the old non-iframed mode — for every block
   on the site, not just this one. Editing is unchanged, the editor simply keeps
   its modern behaviour.

#### 0.8.2

 * Fix (important): on translated pages, markup written inside `<script>`, `<style
   >` and `<textarea>` could lose its closing tags. Inline JavaScript that builds
   HTML (`'<span><i></i></span>'`, `.append('<li>…</li>')`, `document.write(…)`)
   came out broken, and CSS using inline SVG data URIs (`mask-image`, `background-
   image`) lost the closing `</svg>`, so the shape silently failed to render. The
   page HTML parser treats those elements as raw text, and any `</name>` inside 
   them was being dropped; their contents are now passed through untouched.

#### 0.8.1

 * New: per-switcher device visibility. Each switcher profile has a “Show on” option—
   Desktop and mobile, Desktop only, or Mobile only — so you can design one language
   menu for desktop and a different one for mobile, each hidden on the other (breakpoint
   783px).
 * Fix: importing from WPML/Polylang/TranslatePress on a large site could hit the
   host’s execution-time limit and silently do nothing. The migration importer now
   raises the time limit (as the CSV/Weglot importers already did) and clears caches
   when finished, so imported translations show up right away.
 * Fix: the multilingual sitemap is now served with a 200 status. Some setups returned
   a 404 for it, which made search engines skip the sitemap.

#### 0.8.0

 * New: Weglot importer. Export your translations from the Weglot dashboard (Translations
   Export, CSV) and upload the file in TranslateRocket  Import: word_from/word_to
   columns are detected automatically, language columns are mapped to your configured
   target languages, and rows for unconfigured languages are skipped and reported.
 * New: DeepL quota meter. When a DeepL key is set, the AI page shows the character
   usage for the current cycle (with a warning as it approaches the limit) straight
   from DeepL’s usage API.
 * New: provider outage notice. When a provider runs out of quota or its key is 
   refused mid-run, wp-admin now shows a dismissible warning explaining that the
   fallback chain took over — previously the switch was silent.
 * Improved: DeepL’s “HTTP 456” error now reads as a clear “monthly character quota
   exhausted” message in the visual editor and logs.
 * Fixed: Italian translation of “Live preview” in the bundled catalogue.

#### 0.7.9

 * New: Preview mode (“Who sees the translations” in Settings). Keep the translated
   site visible to administrators only while you review it — visitors keep seeing
   the default language: language URLs redirect to their default-language page, 
   the switcher is hidden and no hreflang/sitemap signals are sent. Perfect for 
   checking an import from TranslatePress, Polylang or WPML on the real rendered
   pages before going live. A standing admin notice reminds you while it is on, 
   and the `trrocket_preview_capability` filter lets you open the preview to other
   roles.

#### 0.7.8

 * The WPML importer is now properly documented (it has been in the plugin all along):
   bring over WPML’s string translations and post-based translations (titles, slugs,
   matching body text) from TranslateRocket  Import. It reads straight from WPML’s
   tables, so it works even with WPML already deactivated.
 * Shipped es/fr/de/pt-BR translation catalogs and a refreshed .pot.

#### 0.7.7

 * Fixed a 0.7.6 regression: the content-link localization also rewrote the language
   switcher’s own default-language link (which is unprefixed by design), so visitors
   couldn’t switch back to the source language. The plugin’s own UI and `translate
   ="no"` regions are now excluded from link localization.

#### 0.7.6

 * Internal links hardcoded in post content (root-relative like `/about/`, or absolute
   with the site’s own domain — common on migrated sites) are now localized on translated
   pages, so visitors no longer drop back into the source language on the first 
   click. System paths (`/wp-*`), direct file links and URLs already carrying a 
   language prefix are left untouched. Disable with the `trrocket_localize_content_links`
   filter.

#### 0.7.5

 * Fixed: explicit switcher colors from the customizer are now emitted with !important,
   so dropdown menu items stay readable inside colored theme headers (theme anchor
   palettes could override them, causing white-on-white text).

#### 0.7.4

 * Fixed: URL localization could double the language prefix (e.g. /it/it/) on canonical,
   feed and oEmbed links when an already-localized URL passed through home_url()
   again. A re-entrancy guard now leaves localized URLs untouched.

#### 0.7.3

 * Replaced every external-service URL in the readme and admin with its canonical,
   redirect-free address (DeepL privacy/service pages, OpenAI privacy page, translaterocket.
   com privacy/donate pages) so all declared links resolve directly.

#### 0.7.2

 * Security & code-quality hardening (WordPress.org review): every admin and front-
   end output is now late-escaped with `wp_kses()` and an allowlist covering the
   plugin’s SVG flags, icons and controls; the switcher’s colour and size settings
   are validated at save time (hex colours, numeric-only sizes) so a value can never
   inject CSS; and the bulk string/translation deletes build their `IN()`/`LIKE`
   clauses through `$wpdb->prepare()`.
 * Fixed a dead Author URI and “Get expert help” link.

#### 0.7.1

 * Visual editor: the “original text” preview no longer showed the source in the
   target language. The plugin’s own dynamic-content translator was rewriting the
   editor’s source preview; the popup is now marked so neither it nor the browser
   touches the editor chrome, so the source text always stays in the original language
   while you edit.

#### 0.7.0

 * Every feature that ships is now free and fully functional: removed the optional
   target-language cap and removed the background auto-translation of new content.
   On-request AI translation is unchanged — translate a page, or a whole language,
   on demand with your own provider key. A `trrocket_page_collected` action is available
   for add-ons.
 * Removed the switcher “Custom CSS” field (arbitrary CSS insertion); style the 
   switcher with the built-in colour/shape options or your theme’s stylesheet.
 * Admin CSS and JavaScript are now enqueued with the WordPress functions (`wp_enqueue_*`,`
   wp_add_inline_script`, `wp_add_inline_style`) instead of being printed inline.
 * Removed the deprecated `libxml_disable_entity_loader()` call and the no-longer-
   needed `load_plugin_textdomain()` (WordPress loads translations automatically).
 * The front-end page buffer is now closed explicitly on shutdown.

#### 0.6.4

 * TranslatePress import: strings are now imported in decoded form. TranslatePress
   stores its segments with HTML entities (“Bed &amp; Breakfast”, “pi&ugrave;”),
   which never matched the page text and could print entities literally — those 
   strings stayed untranslated after an import. Found while migrating a real site.

#### 0.6.3

 * Fixed: on a translated URL, a page whose slug merely starts with the language
   code 404ed (e.g. /de/demo/, /it/items/, /es/estimate/) — WordPress stripped the
   language prefix a second time from the slug itself while parsing the request.
   Found by translating our own site.

#### 0.6.2

 * Editing a translation now also clears your host / CDN page cache: on a cache 
   flush the plugin signals the common cache and CDN plugins (Breeze, WP Rocket,
   W3 Total Cache, WP Super Cache, WP Fastest Cache, LiteSpeed, SG Optimizer, Cache
   Enabler, Nginx Helper, WP-Optimize) plus a `trrocket_flush_caches` action for
   anything else — so a changed translation appears right away instead of waiting
   out their TTL.
 * Admin: the language picker now keeps a small gap between rows when it wraps, 
   so the buttons don’t touch on sites with many languages.
 * Passes Plugin Check with zero errors.

#### 0.6.1

 * Provider fallback chain: give two or more AI providers a priority on the AI page
   and bulk / automatic translation tries them in order — when one runs out of credit
   or its key is refused, the next one takes over automatically, so a big job can
   span several accounts without stopping. Free, in the core.
 * Serialize translated pages from the document root node, fixing a literal “▾” (
   and other characters) showing up inside CSS on translated pages.

#### 0.6.0

 * Huge-site engine (“huge-safe”): on sites with more than ~20,000 detected strings
   the plugin stops loading the whole language map per request and switches to indexed
   per-page batch lookups — constant memory, whether your site has 500 strings or
   500,000. Small sites keep the exact same fast path as before.
 * New indexed text hash on stored strings (schema v3, migrated automatically in
   the background).
 * WooCommerce, forms, dynamic-content, page-copy and term-slug translation all 
   use the new size-aware lookups.
 * Translation memory now saves you money before every AI call: a text already translated
   anywhere on the site (another page, an image alt, an interface string, a glossary
   term) is copied for free instead of being sent to the API again, and duplicate
   texts in one batch are only paid once.
 * New “Saved by reuse” counter on the AI page: characters and strings translated
   for free, with a cost estimate at your provider’s list prices.

#### 0.5.5

 * Admin: a pink “Support the project” link in the navigation — the plugin is 100%
   free; supporters get priority help.

#### 0.5.4

 * Dropdown switcher: reliable tap-to-close on touch devices (sticky hover/focus
   no longer keeps the menu open).
 * Scroll switcher: the current language now wears a single thin neutral ring.
 * Sharper admin banner: the logo wordmark gained a crisp shadow for readability.

#### 0.5.3

 * Scroll switcher: the current language starts centred in the strip and is highlighted
   with a tinted pill and brand-coloured ring.

#### 0.5.2

 * Branding: ™ added to the TranslateRocket logos and product name across the plugin
   UI.

#### 0.5.1

 * Security (full code audit): password-protected pages now keep their password 
   form when an independent copy is active (the copy also inherits the password);
   CSV export shields cells against spreadsheet formula injection (and the import
   transparently removes the shield); the language-redirect cookie is now HttpOnly/
   Secure/SameSite=Lax.
 * SEO: the multilingual sitemap no longer advertises hreflang alternates for languages
   a page is excluded from (redirect / 404 / custom message).

#### 0.5.0

 * **SEO panel in the visual editor:** a new “SEO” button in the editor toolbar 
   opens the translated URL slug, the SEO title and the meta description for the
   current language — edit search-facing fields right from the live page.
 * Switcher: new per-profile **“Menu background (dropdown)”** option to style the
   dropdown panel (with backdrop blur) independently from the toggle.
 * Switcher customizer: the live preview now renders the dropdown toggle and menu
   items with exactly the front-end styling (colours, radius, shadow) — no more 
   mismatched items.

#### 0.4.0

 * New optional **“Powered by TranslateRocket”** badge (with logo). Off by default;
   enable it in Settings to show it in the footer, or place it anywhere with the`[
   translaterocket_poweredby]` shortcode.

#### 0.3.0

 * **Dynamic content translation:** text added by JavaScript after the page loads—
   cookie/consent banners (Complianz, CookieYes, Borlabs…), popups, AJAX-loaded 
   results — is now translated automatically, reusing your existing translations(
   no extra AI calls). Better out-of-the-box compatibility with the most common 
   plugins.

#### 0.2.0

 * New **Scrollable bar** switcher layout: a horizontal, fixed-width switcher with‹›
   arrows (hover an arrow to scroll continuously) — ideal when you have many languages.
   Width configurable in px or %.
 * Visual editor: toggle any string between the numbered-block view and raw **HTML
   editing**.
 * New **Translate page** button in the editor toolbar — auto-translate the whole
   page in one click (your AI provider or free Google), or use the guided copy &
   paste.
 * Language switcher arrow visibility and sizing fixes.

#### 0.1.0

 * Initial public release: detection engine, per-page and in-editor translators,
   on-page visual editor (click-to-edit in a draggable popup, with Prev/Next, progress
   and skip-translated), free Google Translate links and copy & paste, AI providers(
   DeepL, OpenAI, Gemini, Anthropic, Google), translated slugs and hreflang, theme/
   plugin interface strings, per-page language visibility, TranslatePress & Polylang
   import, language switcher (shortcode, block, widget) with SVG flags, 36 built-
   in languages, Italian UI translation.

## Meta

 *  Version **0.9.0**
 *  Last updated **5 часа ago**
 *  Active installations **10+**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/translate-rocket/)
 * Tags
 * [language](https://mk.wordpress.org/plugins/tags/language/)[multilingual](https://mk.wordpress.org/plugins/tags/multilingual/)
   [translate](https://mk.wordpress.org/plugins/tags/translate/)[translation](https://mk.wordpress.org/plugins/tags/translation/)
   [woocommerce](https://mk.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://mk.wordpress.org/plugins/translate-rocket/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  4 5-star reviews     ](https://wordpress.org/support/plugin/translate-rocket/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/translate-rocket/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/translate-rocket/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/translate-rocket/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/translate-rocket/reviews/?filter=1)

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

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

## Contributors

 *   [ Federico ](https://profiles.wordpress.org/federicodev/)

## Support

Got something to say? Need help?

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

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://translaterocket.com/donate/)