TranslateRocket – Free Multilingual Translation, Unlimited Languages

Plugin Banner

TranslateRocket – Free Multilingual Translation, Unlimited Languages

by Federico

Download
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.

Already using WPML, Polylang, TranslatePress or Weglot? Try TranslateRocket next to it — your site does not change. Activate it alongside your current translation plugin: visitors keep seeing exactly the same site, while you import your translations, complete them and preview any page in any language as an administrator. When you are convinced, deactivate the old plugin and put TranslateRocket online with one click. Nothing of the other plugin is deleted, and switching it back on takes you straight back to where you started.

You do not need an API key at all. Chrome and Edge on a computer carry a translator that runs on the device itself, and TranslateRocket can drive it: install the plugin, pick your languages, press one button and the site is translated. It costs nothing, needs no account, and the text never leaves your machine. It is the fastest way to a translated site. When you want fluent, idiomatic copy, the same pages can go through DeepL or an AI model with your own key (OpenAI, Anthropic, Gemini — you pay the provider directly), through ChatGPT or Gemini with a ready-made prompt at no cost, or through your own hands, line by line — and everything already translated is kept, so nothing is ever done twice.

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, Weglot, qTranslate (X and XT), WPGlobus, WP Multilang, Bogo, Multilanguage by BestWebSoft and Loco Translate, plus CSV and TMX for anything else. Most are read straight from the tables, the posts or the files, so the import still works after the other plugin has been deactivated or even deleted — which is the usual state of a site that is moving on.

It detects translatable text as you browse — visible text, link titles, image alt, placeholders, ARIA labels, page titles, meta descriptions and the social preview tags a SEO plugin adds (Open Graph, X) — and serves each language under its own clean URL prefix (/it/, /de/), friendly to SEO and to page caches.

You translate however you like:

  • 🆓 In your browser, with no key — Chrome and Edge translate the whole page, or the whole site, on the device itself. Nothing to sign up for, nothing to pay, nothing sent anywhere. Available both on the live page and on the bulk screen.
  • 🖱️ 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 ChatGPT or Gemini, no key — one button copies the whole page with a translation prompt written for your site; paste the answer back and every line goes to its place.
  • 🤖 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 — and not just “by hand”. Chrome and Edge translate the whole site automatically, on your own computer, for free. Or do it 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.
  • 🔍 One SEO panel with everything in it: open a page in the visual editor and the SEO panel lists, in order, the translated address, the page title, the meta description, the social preview (Open Graph and X), the keywords, then every image on the page and every translatable attribute — titles, placeholders, ARIA labels. Each line takes you straight to that element on the page and opens the right editor, so nothing search engines read is left in the source language by accident.
  • 🚦 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 from ten other plugins — TranslatePress, Polylang, WPML, Weglot, qTranslate (X and XT), WPGlobus, WP Multilang, Bogo, Multilanguage by BestWebSoft and Loco Translate — plus CSV and TMX for everything else. Read straight from the tables, the posts or the .po files, so it works even when the other plugin is gone.
  • 🖼️ A different image for each language — swap any picture for a translated one: switch on the visual editor, click the button on the image and pick another from your media library. For text baked into a picture, a screenshot of your own interface, or a photo that only makes sense in one country.
  • 🎯 Different content and menus per language — show a paragraph, a block or a menu item only in some languages: with a shortcode, a class on any block, or a checkbox in Appearance Menus.
  • 🛒 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.
  • 🚦 Add a language now, publish it when it is ready: each language has a switch — green and your visitors see it, grey and only you do. While it is offline it stays out of the switcher, out of your sitemap and out of the hreflang tags, and its URLs send visitors to your default language, while you keep working on the real pages. Nothing half-translated ever reaches your visitors or Google.
  • 📂 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 with your site?

I can do it for you. I am the developer of TranslateRocket, and I also build and translate WordPress sites for a living: a new multilingual site from scratch, an existing site taken from one language to ten, a migration away from a paid plugin, or a stubborn theme that will not translate. You get the person who wrote the engine, not a support queue.

The plugin stays free either way — nothing here is locked behind that. Write to me from the “Help & Feedback” screen inside the plugin, or from https://translaterocket.com/support/ .

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/
  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.
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. Coming from another plugin? WPML, Polylang, TranslatePress, qTranslate, WPGlobus, WP Multilang, Bogo, Multilanguage and Loco Translate are all detected automatically; Weglot imports from its CSV export.

    Coming from another plugin? WPML, Polylang, TranslatePress, qTranslate, WPGlobus, WP Multilang, Bogo, Multilanguage and Loco Translate are all detected automatically; Weglot imports from its CSV export.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

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.

And if you want that work done on your own site, you can hire me. Building and fixing WordPress sites is the day job: a site built from scratch, a design put right, a multilingual setup done properly, custom development, a migration off a plugin that charges you every month. That is where the money comes from — not from crippling this plugin. Ask me from the “Help & Feedback” screen inside the plugin, or at https://translaterocket.com/support/ .

Do I need an AI key?

No — and without one you are not limited to typing by hand. Chrome and Edge on a computer carry a translator that runs on the device itself, and one button puts it to work on your whole site. It costs nothing, needs no account and no signup, and the text never leaves your machine. Quality sits below DeepL and the AI models, so it is the quickest way to a translated site rather than the finest one — but everything it translates is kept, so adding a provider later never repeats the work.

It needs Chrome, or Edge 148 or later, on a computer that can run the built-in model: Windows 10 or 11, macOS 13 or later, Linux or ChromeOS (not Windows Server), 16 GB of RAM or a graphics card with more than 4 GB, and 22 GB of free disk space, with the admin on https. Anywhere else, the copy-and-paste route works in any browser and still needs no key.

Beyond that you can click any text on the live page and type its translation, edit it again later, and publish it. 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.

Does it translate forms (Forminator, Contact Form 7, WPForms…)?

Yes. Labels, placeholders, options and buttons are translated with the rest of the page, whether the form is added with a shortcode, a block, a widget or a page builder such as Elementor. The messages the form plugin adds with JavaScript — validation errors, “message sent” — are translated too, on Forminator, Contact Form 7, WPForms, Gravity Forms, SureForms, Formidable and Ninja Forms. With Forminator, the thank-you message, forms loaded with “Load form using AJAX” and the e-mail notifications follow the language of the page the form was sent from; the wording of the form settings and e-mails appears under “Forms: messages and e-mails” in the translation screens once an administrator has viewed the form or a notification has been sent. To keep a notification (for example the copy for the site owner) in the source language, return false from the trrocket_forminator_translate_notification filter.

Is there a PHP function that returns the current language?

Yes, for theme and plugin code that needs it (the equivalent of Polylang’s pll_current_language()): trrocket_current_language() returns the code of the language of the current request, such as en, fr or pt-br — also in AJAX requests sent from a translated page — and trrocket_default_language() returns the site’s source language. Wrap calls in function_exists() so your code keeps working if the plugin is deactivated.

Which plugins can I import my translations from?

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.

Can I show something in one language only?

Yes. Wrap it in [translaterocket_language lang="it"]…[/translaterocket_language] — several languages work too, as lang="it,de" — or use not="it" to show it everywhere except Italian. In the block editor you do not need the shortcode: add the class trrocket-only-it or trrocket-hide-it in “Advanced Additional CSS class(es)” of any block, navigation links included. Content limited with lang= or trrocket-only- is taken to be written in that language, and is shown exactly as you wrote it.

Can a menu item appear only in some languages?

Yes. In Appearance Menus every item has a “Show in” row with one checkbox per language; nothing ticked means every language. Hiding an item hides its sub-items too. Block themes build menus with the Navigation block instead: there, give a link the class trrocket-only-it or trrocket-hide-it.

Can I translate with ChatGPT or Gemini without an API key?

Yes. Open a page in the visual editor, click “Translate page” and use “Copy with a translation prompt” — or the ChatGPT and Gemini links, which copy the same thing. The prompt carries your languages, the words you never translate, your glossary and your house style, and asks for the reply in a code block with the line numbers intact. Paste the reply in box 2 and apply it.

Great free plugin that works better than the paid one

By annapons on September 15, 2026

Our web-site needs to reach customers from different countries, all of them are talking different languages. For years we were using paid plugins that created a lot of troubles to the web-site work reducing our downloading speed capacities, creating conflicts with other plugins installed in wordpress, messing up with urls. We decided to try TranslateRocket with AI translation and actually did the best decision we could do. We are very happy with it's work and hopefully in future it will continue working in the same mode. The plugin is easy to use and is absolutely free! We are truly grateful for this service, Great job!

Perfetto

By diversamentearte on September 14, 2026

Il plugin è perfetto, il suo creatore meriterebbe più della donazione minima per l'impegno che ha impiegato per crearlo: è uno strumento estremamente semplice e affidabile

Sito in più lingue senza problemi e con facilità!!!

By santisposi on September 10, 2026

Veramente un bel tools che funziona veramente ed ha traduzioni affidabili e ben funzionanti!
Sono estremamente soddisfatto dal primo utilizzo e dalla bontà dell'applicazione.

Miglior applicazione sul mercato. Sito multilingue completo ed affidabile

By bob1982 on August 26, 2026

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

Used for multiple projects... waited a long time for a decent translation plugin

By zedjine on August 24, 2026

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

everything I needed at no cost

By scalia on August 19, 2026

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

Perfect for our B&B — our site now speaks every guest's language

By kerkent on July 22, 2026

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.

1.4.2

  • New: side by side, the preview is one click away. The Languages page shows a Preview panel with a button for each language, the admin bar has a Preview menu that opens the page you are looking at in another language (and a way back to the live site), and every published row in Pages and Posts has a Preview link. Before, the preview meant typing ?trr-preview= into the address.
  • Change: when the browser cannot translate, the panel now says what the translator built into Chrome and Edge needs (Windows 10 or 11, macOS 13+, Linux or ChromeOS but not Windows Server, 16 GB of RAM or a graphics card with more than 4 GB, 22 GB of free disk space, Edge 148+, https), instead of only saying that the browser has no translator.

1.4.1

  • Fix: validation and “message sent” messages of forms added with the Elementor widget, the Forminator block, a widget area or a template stayed in the source language; the message translator was loaded only when the form was a shortcode in the page content. It is now loaded whenever a Forminator, Contact Form 7, WPForms, Gravity Forms, SureForms, Formidable or Ninja Forms form actually appears on a translated page.
  • New: Forminator messages returned by the server (thank-you message, invalid form, field errors) and forms loaded with “Load form using AJAX” are shown in the visitor’s language.
  • New: Forminator e-mail notifications are sent in the language of the page the form was submitted from. Their subject and body, and the form’s messages, are listed under “Forms: messages and e-mails” in the translation screens. The trrocket_forminator_translate_notification filter keeps a notification in the source language.
  • New: PHP functions for developers, trrocket_current_language() and trrocket_default_language().
  • Fix: side-by-side mode no longer switches itself on when another translation plugin is activated on a site that TranslateRocket was already serving: the translated addresses stay online, and a notice offers “Run side by side” instead.
  • Fix: when the other translation plugin goes away without anyone opening wp-admin (WP-CLI, a folder removed, another site of a network), the translations are still shown to administrators only until “Go online”.
  • Fix: after “Go online”, languages that are still offline are named in the notice, with a link to switch them on.
  • Fix: side by side, the pages served by the other plugin in its own languages are no longer collected as source text.
  • Fix: side by side, blocks and menu items limited to some languages are not hidden on the other plugin’s pages.
  • Fix: on a previewed page (?trr-preview=xx) the links keep the preview; the “Translate my homepage now” button of the setup wizard opens a preview instead of the other plugin’s address. Preview pages also send noindex and no-cache headers.
  • Fix: on a fresh install the source language is derived correctly for Norwegian (nb_NO, nn_NO) and Traditional Chinese (zh_TW, zh_HK) sites, and falls back to English for locales the catalogue does not have instead of a code that matches nothing.
  • Fix: the forms message translator and Forminator only use languages that are online for visitors; an offline language stays private to administrators.
  • Fix: a form message, e-mail body or AJAX-loaded form containing a stray closing tag is left untouched instead of being cut short.
  • Fix: uninstalling with “delete data” also removes the side-by-side, wizard, log and cache options.
  • Fix: three interface strings that shipped untranslated (“%1$d of %2$d translated”, the “Want a hand with your site?” card).

1.4.0

  • New: side-by-side mode. TranslateRocket can now be activated next to WPML, Polylang, TranslatePress, Weglot, GTranslate, qTranslate-XT, WPGlobus, WP Multilang, Bogo or Multilanguage without changing anything on your public site. While the other plugin is active, visitors see the site exactly as before — the same addresses, language switcher, sitemap and language. Meanwhile you can import its translations, complete them and preview any page as an administrator by adding ?trr-preview= and a language code to the address (for example ?trr-preview=it).
  • New: going online is your decision. When the other translation plugin is deactivated, the translations are shown to administrators only, on their real addresses, until you have checked them and click “Go online”.
  • Change: “Review the separate pages”, which tidies up the copies Polylang, WPML or Bogo left behind, stays locked while that plugin is still active, so no page is taken off a site that is still using it.
  • Change: the languages you choose in the setup wizard now start offline, as they already did on the Languages page: only you see them while you translate, and you put each one online when it is ready.
  • Fix: activating the plugin no longer switches the site’s interface language (for example to Italian) before you have chosen any language to translate into.
  • Fix: on a new installation the source language is now the language of the site, instead of Italian.
  • Fix: the first-visit redirect to the visitor’s browser language no longer sends visitors to a language that is still offline.

1.3.0

  • New: tidy up the pages Polylang, WPML or Bogo left behind. Those plugins keep a separate page for every language; once their translations are imported, TranslateRocket translates the original page itself, so each copy is a second place to edit the same page. Under the importer, “Review the separate pages” lists every copy with what was found: copies whose text is all in TranslateRocket can go to the Trash, copies with text laid out differently can be kept as independent copies, and nothing is offered for the Trash before the import or while its language is not active. Nothing is deleted — pages go to the Trash — and the old address of each copy sends visitors and search engines to the translated page with a 301.
  • Fix: on a page opened through its translated address (for example /it/chi-siamo/), the hreflang links and the language switcher reused that Italian slug for every language, so they pointed at addresses that do not exist (/chi-siamo/, /es/chi-siamo/). Each language now gets its own address — the original slug, or its own translated one — exactly as the sitemap already did.
  • Fix: hreflang links no longer repeat the query string of the visit (?utm_source=…); they name the clean address of each version.
  • Fix: a page that does not exist (404) no longer prints hreflang links to the same missing address in every language.
  • Fix: WooCommerce block checkout — after placing an order in a translated language, customers landed on the “Order received” page in the site’s default language. They now stay in the language they shopped in, as the order e-mail already did.
  • Fix: translated addresses now work for WooCommerce products and every other custom post type. A translated slug on a product (/it/product/colazione-in-terrazza/) returned “page not found”, while the language switcher and hreflang already pointed there; product links in shop pages now use the translated slug too.

1.2.1

  • New: structured data is translated too. The FAQ questions and answers, article headlines and descriptions that themes and SEO plugins put in JSON-LD for search engines used to stay in the source language on every translated page, and an article on /de/ still declared itself English. They are now collected like the page title and description, translated in every language, and “inLanguage” states the language of the page. Names of people, companies, software and the site are never translated, a video keeps the language it was recorded in, and addresses, dates and prices are left exactly as they are. The data is read and rewritten as JSON, so a translation can never break it.
  • Fix: the flag shown for Chinese had a single star, which made it look like another country’s flag. It now has the large star with the four small ones beside it.
  • Change: Arabic no longer shows a national flag. It is official in more than twenty countries, so no single flag is right for it, and the one usually chosen for it carries a religious inscription that should not be redrawn or used as decoration. Arabic now shows a neutral “AR” marker. If you would rather have a flag, you can still choose one for that language in the custom flag field.
  • Fix: a floating language switcher placed along the bottom of the page opens upwards, so its menu is no longer cut off by the edge of the window.

1.2.0

  • New: show content in some languages only. Wrap it in [translaterocket_language lang="it,de"]…[/translaterocket_language], or use not="it" to hide it in some; in the block editor, add the class trrocket-only-it or trrocket-hide-it to any block, navigation links included. Content limited to a language is shown exactly as you wrote it and never re-translated.
  • New: menu items for some languages only. Every item in Appearance Menus has a “Show in” row of language checkboxes. Nothing ticked means every language, so existing menus look exactly as before; an item that is hidden takes its sub-items with it.
  • New: translate a whole page in ChatGPT or Gemini, with no API key. In the visual editor’s “Translate page” panel, one button copies the text of the page together with a prompt written for your site — your languages, the words you never translate, your glossary and your house style. The prompt asks the AI to keep the line numbers and the formatting markers, so its reply goes straight back into place.
  • The box you copy from now selects everything with one click, and the box you paste into selects its content on the first click, so a second paste replaces the first.
  • The changelog had grown past the 5,000-word limit of the plugin directory and was being cut off: releases from 1.0.0 onwards stay here, and the full history is in changelog.txt, shipped with the plugin.
  • Small tidy-ups: a clearer example in the “Words & phrases” exclusion box, and the LICENSE file now carries the plain GPLv2 text.

1.1.4

  • The plugin’s own header now sits on a night sky instead of the rainbow band, the same one used on the project website. The stars are drawn in CSS, so nothing extra is downloaded and the logo finally stands clear of its background.

1.1.3

  • Fix: opening the media library to pick an image for a language left the little “Choose image” buttons — and the image window itself — floating on top of it, over an apparently empty panel. They now step out of the way while the library is open and come back when it closes, Escape included.

1.1.2

  • Fix: a save that got no answer used to spin for ever. If your site did not reply — a proxy holding the connection, a dropped network, a security layer swallowing the request — the buttons kept turning with nothing on screen to explain it, and the sentence you had just written was lost if you gave up and closed the box. Requests now stop waiting after thirty seconds, your text stays in the box, and the message tells you whether the site refused the request (with the code) or did not answer at all.
  • Fix: the window for swapping an image now opens in the middle of the screen and can be dragged, with the same title bar as the text editor. It used to appear glued to the picture — which for a full-width photo at the top of a page meant squashed against the top edge — and its header was drawn with styles that did not exist, so the title, the move handle and the close button ran into each other.

1.1.1

  • New: a language you add now starts offline. Until now, ticking a language and pressing save made it public that same second — in the switcher, in your sitemap, in your hreflang tags — with nothing translated in it yet. Now it arrives with its switch grey, and you turn it green when you are ready. A language that was already on your site keeps the state it had.
  • New: the dashboard tells you when a page changed after it was last read. Text is detected while you look at a page while logged in — so if you edited a page in the block editor and never opened it again, its new sentences were never collected: they did not show up in your list of strings to translate, and on the translated pages they quietly stayed in your source language. That silence is over: the pages are listed by name, with a scan one click away, and the warning clears itself as soon as each page is read.
  • Fix: on the Languages screen the per-language progress bar was drawn without a colour, so it looked empty even at 98%. It now runs red to green like every other bar in the plugin.

1.1.0

  • New: add a language now, publish it when it is ready. Next to every language you enable there is a switch: green means your visitors see it, grey means only you do. While a language is offline it stays out of the switcher, out of your sitemap and out of the hreflang tags, and anyone landing on one of its URLs is sent to your default language — but you keep working on it on the real pages, because whoever can preview still sees everything. Nothing half-translated ever reaches your visitors or Google.
  • New: the SEO panel in the visual editor now holds everything search engines read, in one order: the address, the page title, the meta description, the social preview (Open Graph and X), the keywords, then every image on the page and every translatable attribute — titles, placeholders, ARIA labels. Each line takes you to the element: the page scrolls to it, it flashes, and the right editor opens. For a photo that means the image chooser; for its alt text, the text editor.
  • Fix: the social texts were never translated. If a SEO plugin such as Yoast or Rank Math set an og:title, an og:description or a twitter: card of its own — a different text from the page title, which is the normal case — that text was never collected, so it could never be translated: every share of a translated page went out in the source language. Those texts are now collected like any other, and they show up in the SEO panel.
  • Thanks to Simona, for the first donation TranslateRocket ever received.

1.0.0

  • New: import from Bogo. It keeps one post per language, linked by two post meta values, so the pairing is exact — title, excerpt and body all come across.
  • New: import from Multilanguage by BestWebSoft, read straight from its two tables, including category and tag names.
  • New: import the translations you wrote by hand with Loco Translate — the .po/.mo files in wp-content/languages/loco/. Only your own work is read, not the language packs WordPress downloads by itself: those are thousands of strings nobody on your site chose, and they would bury the useful ones. Entries still marked “fuzzy” are skipped, because nobody has checked them yet.
  • New: a different image for each language. In the visual editor every picture carries a small button: click it and choose another image from the media library for that language. The picture is swapped on the translated page, srcset included — without that the browser quietly reloads the original and the change looks broken. Image addresses are kept apart from the text and are never sent to a translator: a URL comes back mangled and the picture disappears from the page.
  • Fix: the Import screen no longer scans every post each time it is opened. It asked each importer whether it had anything, and the qTranslate one had to look inside the posts to answer — on a large site that made the screen crawl. The answer is now remembered for an hour.
  • Fix: in the switcher’s live preview the dropdown was stuck open. You could see the menu’s colours, but never how it opens — which is half of what a dropdown does. The preview now uses the same markup and CSS as the real switcher, so it opens and closes on click exactly like the one on your site.
  • Fix: the three settings that only apply to the dropdown layout — how it opens, the arrow, the opening animation — are now switched off when you choose the inline or list layout, instead of looking live while doing nothing. Their values are kept, so changing layout no longer resets them.
  • Fix: the live preview now follows you as you scroll the switcher settings, instead of scrolling away after the first section.
  • With this release the plugin imports from ten other plugins, plus CSV and TMX.

Earlier releases

Versions 0.1.0 to 0.10.0 are listed in changelog.txt, shipped with the
plugin and readable at
https://plugins.svn.wordpress.org/translate-rocket/trunk/changelog.txt

Back to top