WordPress

Translate WordPress without duplicating a single post

Install the plugin from the WordPress.org directory, paste one app key, and your site is multilingual. No second copy of every page, no re-translation when you edit a paragraph, and nothing to configure per page builder.

Two ways to do this, and the trade between them

The established WordPress plugins, WPML and Polylang, give you a separate post for each language. That is genuinely the right model if your languages need different content, and it is the only model that can translate URL slugs. The cost is that every page exists five times, and editing one means editing five.

We translate the rendered page instead. Your content stays in one place, translations happen automatically, and when you change a sentence the translation follows. The cost is that the slug stays as written, and you depend on a service rather than only your own database.

If you are weighing that up specifically, the WPML alternative comparison lays out both sides, including the cases where staying with WPML is the right answer.

Installing it

  1. Install Translate Your Website - WeLocale from the WordPress.org plugin directory and activate it.
  2. Create a WeLocale account and add your domain. The trial needs no card.
  3. Copy your public app key, a UUID, from the website's install screen.
  4. In WordPress open Settings, then WeLocale, paste the key and save.
  5. Pick your languages and run a scan. The switcher appears on the front end.

If you would rather not install a plugin at all, the same thing works with one script tag before the closing body tag, which is what we use on non-WordPress sites:

<script
  src="https://welocale.net/widget/latest/loader.js"
  data-appkey="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
</script>

One note that trips people up: the widget only loads on domains you have explicitly allowed, under Website then Settings then Allowed domains. That is deliberate, so nobody else can point your app key at their site.

What it covers on a WordPress site

  • Posts, pages and custom post types
  • Menus, widgets and theme strings that appear on the front end
  • WooCommerce product pages, categories, cart and checkout
  • Anything produced by Elementor, Divi, Bricks, Oxygen, Beaver Builder or Gutenberg, because we read the rendered output rather than the builder's data
  • A language switcher you can style, positioned where you want it
  • hreflang tags on Pro and Scale, so search engines understand the language of each page

What it does not do

  • Translate URL slugs. Your permalinks stay in the original language.
  • Give each language different content. This is a translation layer, not a per-language CMS.
  • Work offline from our service. If your plan lapses the widget stops serving translations, though nothing is deleted.

The full feature list keeps that list in one place. If you are comparing us against the other names in this category, there are honest write-ups of Weglot and of GTranslate which takes the opposite architectural approach. And if the site is not WordPress, here is where the snippet goes in Carrd, Framer, Bolt, Lovable and Base44 instead.

Free
$0 for 14 days

Try it on a real page

  • 10,000 translated words
  • 3 languages
  • 3,000 source words
  • 1 website
  • Widget scan (visited pages only)
  • Language detection
  • Support: community
  • No auto-crawl
  • WeLocale badge on your site
Start free trial
Starter
$15 /mo

Launch your first translated site

  • 120,000 translated words
  • 10 languages
  • 60,000 source words
  • 2 websites
  • Auto-crawl (depth 2)
  • Customizable switcher
  • Support: email (48h)
  • WeLocale badge on your site
Get started
Scale
$69 /mo

Large sites and agencies

  • 2,000,000 translated words
  • 50 languages
  • 400,000 source words
  • 8 websites
  • Auto-crawl (depth 5, 500 pages)
  • Page-specific translations
  • All switcher styles
  • SEO hreflang tags
  • No badge
  • Support: priority (4h)
Get started

Words are bought once. Nothing resets monthly, and editing a page you already translated does not spend your allowance again, so "translated words" means how much translated content you have, not how much you have ever generated.

Questions people ask

How do I translate a WordPress site into multiple languages?

There are two approaches. Translation management plugins such as WPML and Polylang create a separate post for every language and you fill each one in. Runtime tools like WeLocale translate the page as it is served, so there is nothing to duplicate. Install our plugin from the WordPress.org directory, paste your public app key in Settings, and the site is multilingual.

Does it work with Elementor, Divi and other page builders?

Yes, and this is where the runtime approach has a structural advantage. We translate the rendered HTML your visitor receives, so it does not matter which builder produced it. There is no per-builder integration to wait for and nothing breaks when a builder updates.

Does it work with WooCommerce?

Yes. Product titles, descriptions, categories, cart and checkout are all rendered text, so they are translated like any other page. You do not need a separate e-commerce add-on.

Will it slow my site down?

The loader is a single asynchronous script placed before the closing body tag, so it does not block rendering. Translations are cached in the browser after the first visit, so repeat page views do not call the API.

Do I need to change my URLs or DNS?

No. There is no proxy, no subdomain, no DNS record and no change to your permalinks. That also means we do not translate the slug itself, which is a real limitation and one of the reasons to prefer WPML or Polylang if translated URLs matter to you.

Is the plugin free?

The plugin is free from the WordPress.org directory. It is a connector: it loads the widget and holds your app key. The translation itself runs on your WeLocale plan, which starts with a 14-day free trial.

Put your WordPress site in three languages today

Fourteen days, no card, no developer.

Start free trial

Get the plugin on WordPress.org