WorkMore Site Translator

Description

WorkMore Site Translator makes a WordPress site multilingual the way WordPress works best: every translation is a real post or page. Your existing content stays exactly as it is and is served at the root of your site; every other language — as many as you need — lives under its own prefix (for example /th/ or /ja/), and translations are written in whatever editor you already use — the block editor, Elementor, Flatsome’s UX Builder or any other — because a translation is simply another post.

Translate by copying

  • Posts and pages, and any custom post type you tick in the settings (portfolios, Elementor templates, Flatsome UX Blocks…), show a Languages column in their lists. One click creates a draft copy in another language — content, excerpt, featured image, template, parent, builder data and custom fields included — and opens it for translation.
  • Categories, tags and custom taxonomies are translated the same way, and a copied post is filed under the translated terms automatically (created on the fly when missing).
  • Translations are linked, so the switcher, the hreflang tags and the admin bar always know where the other languages live.

Clean URLs, correct SEO

  • Sub-directory URLs (example.com/, example.com/th/, example.com/ja/…) that search engines index separately, one URL per post; a post opened under the wrong prefix is redirected to its own.
  • hreflang alternates and x-default on every translated page, self-referencing canonical URLs, per-language sitemaps advertised in robots.txt — with WordPress’ built-in sitemap, Yoast SEO and Rank Math.
  • Visitors on /th/ only see Thai content: archives, search, feeds, category lists, page lists, previous/next links and sticky posts are all scoped to the language. The front page and the posts page map to their translations.

Menus, switcher, site title

  • Every menu location of your theme gets a twin per language under Appearance Menus Manage Locations. Assign a menu built in that language and the theme shows it on translated pages — no theme changes.
  • A language switcher in four styles — inline links, list, pills or dropdown, with an optional accent color and a live preview in the settings — as a menu item, a widget, the [wmst_switcher] shortcode or the wmst_language_switcher() template tag. It links to the translation of the current content and loads no JavaScript.
  • The site title and tagline can be set per language.

Language packs do the interface

On translated pages WordPress loads the language’s own packs, so core, your theme and your plugins show their interface text (buttons, dates, form labels) in that language automatically. A one-click installer for the pack lives in the settings.

Light

  • Language is a normal, indexed term relationship; lists are filtered by one clause. No output buffering, no HTML parsing, no cookies.
  • No JavaScript and no stylesheet files on the frontend. Pages that show a language switcher get its CSS (1–3 KB) inline, through WordPress’ own style API.

Source code

The plugin’s JavaScript ships minified for performance; the human-readable source is included in the plugin’s src/ directory together with the build configuration (vite.config.js).

Pro add-on

Everything above is free and complete, whatever the number of languages or content types. A separate Pro plugin, sold on workmore.connextsystem.com, adds a WooCommerce integration: products, variations, categories and attributes, synced price and stock, shop, cart, checkout and account pages per language, cart and order language, customer emails in the customer’s language. Inside this plugin the add-on is only mentioned on the “Upgrade to Pro” settings tab; nothing here is locked or limited.

Screenshots

FAQ

How do I translate a page?

Open Pages, find the page and click the “+” in its Languages column. A draft copy opens in your editor; translate it and publish. The two pages are linked from then on.

How many languages can I add?

As many as you need. Settings Site Translator lists them; each one gets its own URL prefix, its own menu locations, its own site title and tagline, and a place in the language switcher.

Can I translate custom post types and taxonomies?

Yes. The Content card under Settings Site Translator lists every post type and taxonomy that has an admin screen; tick the ones that should carry a language. Unticked content is shown in every language as it is.

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

Yes. A translation is a copy of the page including the builder’s data, so it opens in Elementor, Flatsome’s UX Builder or any other builder exactly like the original — you translate the texts in place.

What about my existing content?

Everything that exists when you activate the plugin is in your default language and keeps its URL. Nothing is copied or changed until you create a translation.

Which language should be the default?

The language most of your content is written in. Visitors get that language at your plain URLs and every other language under its prefix (/th/, /en/, …). The default language also decides which core, theme and plugin translations the visitor side loads — independently of Settings General Site Language, which keeps governing the dashboard. If you already have content in several languages, pick the biggest one as the default and mark the rest in the Language box or with Tools Assign.

How do I add the language switcher?

Three ways, all set up under Settings Site Translator, where you pick the style (inline links, list, pills or a dropdown), the label (native name, English name or code) and an optional accent color, and see a live preview: as a menu item (Appearance Menus “Language switcher”), as a widget, or with the [wmst_switcher] shortcode / wmst_language_switcher() template tag anywhere in your content, builder or theme. No JavaScript is loaded; the switcher takes the color of the text around it, so it fits light and dark headers alike, and color="…" / bg="…" on the shortcode (or a few CSS variables, listed in the settings) recolor it.

Can I translate menus?

Yes. Build a menu in another language and assign it to that language’s twin of a location under Appearance Menus Manage Locations. A language switcher can be added to any menu as well.

Does it work with WooCommerce?

Your posts, pages and other content translate as usual on a WooCommerce site. Products themselves are not offered for translation: copying a product takes more than copying a post (variations, SKU, stock). That is what the separately sold Pro add-on does — translated products, variations, categories and attributes, synced price and stock, shop/cart/checkout/account pages per language, cart and order language, customer emails.

Does the plugin slow my site down?

No. A language is an ordinary term on each post; lists are filtered by one indexed clause, translations are read from the object cache, and the only frontend output besides the hreflang tags is the switcher’s small inline CSS on pages that show a switcher.

Does the plugin connect to any external service?

No. The plugin makes no network requests of its own. The optional “Install language pack” button on the settings screen uses WordPress’ own language-pack installer, which downloads from WordPress.org exactly as Settings General does. The only outbound link is the “Upgrade to Pro” button, which opens our website when you click it.

What happens if I uninstall the plugin?

Deactivating never deletes anything. Uninstalling removes language assignments, translation links and settings only if you opted in to “Delete language data and settings when the plugin is uninstalled”. Translated posts and pages are ordinary content and are never deleted.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“WorkMore Site Translator” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.2

  • Fix: the settings screen asks WordPress for answers in your own profile language, so the labels it loads (the site title fields, language-pack messages) match the rest of the screen when your language differs from the site’s.
  • Fix: requests the admin screens make to the REST API keep your profile language from the very start, so text translated early in the request (a widget’s name) no longer falls back to the site language.

1.1.1

  • Fix: the language dropdown in the block editor’s sidebar no longer runs past the edge of its box.

1.1.0

  • Any number of languages: add, remove and order them on the settings screen.
  • Any post type and taxonomy with an admin screen can be made translatable on the settings screen.
  • Translations come from translate.wordpress.org; the plugin no longer bundles its own.

1.0.0

  • Initial release: a second language under a sub-directory prefix; translations as linked copies of posts, pages, categories and tags; language-scoped lists, front page and posts page mapping, one-URL-per-post redirects; per-language menu locations, language switcher (menu item, widget, shortcode, template tag), site title/tagline per language; hreflang, canonical and per-language sitemaps; language-pack installer; opt-in clean uninstall.