Title: WorkMore Site Translator
Author: Work More
Published: <strong>September 25, 2026</strong>
Last modified: September 25, 2026

---

Search plugins

![](https://ps.w.org/workmore-site-translator/assets/banner-772x250.png?rev=3712365)

![](https://ps.w.org/workmore-site-translator/assets/icon.svg?rev=3712365)

# WorkMore Site Translator

 By [Work More](https://profiles.wordpress.org/connextsystem/)

[Download](https://downloads.wordpress.org/plugin/workmore-site-translator.1.1.2.zip)

 * [Details](https://wordpress.org/plugins/workmore-site-translator/#description)
 * [Reviews](https://wordpress.org/plugins/workmore-site-translator/#reviews)
 * [Development](https://wordpress.org/plugins/workmore-site-translator/#developers)

 [Support](https://wordpress.org/support/plugin/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](https://workmore.connextsystem.com/site-translator),
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

[⌊The Pages list with the Languages column: each page's language, its translations
and "+" to create one.⌉⌊The Pages list with the Languages column: each page's language,
its translations and "+" to create one.⌉[

The Pages list with the Languages column: each page’s language, its translations
and “+” to create one.

[⌊The Language box in the block editor: the language of the content and links to
its translations.⌉⌊The Language box in the block editor: the language of the content
and links to its translations.⌉[

The Language box in the block editor: the language of the content and links to its
translations.

[⌊A translated page under its own URL, with the language switcher in the menu and
in the content.⌉⌊A translated page under its own URL, with the language switcher
in the menu and in the content.⌉[

A translated page under its own URL, with the language switcher in the menu and 
in the content.

[⌊Appearance → Menus → Manage Locations: a twin of every menu location for each 
language.⌉⌊Appearance → Menus → Manage Locations: a twin of every menu location 
for each language.⌉[

Appearance  Menus  Manage Locations: a twin of every menu location for each language.

[⌊Settings: any number of languages with their URLs and language packs, and the 
content types to translate.⌉⌊Settings: any number of languages with their URLs and
language packs, and the content types to translate.⌉[

Settings: any number of languages with their URLs and language packs, and the content
types to translate.

[⌊Settings: site title and tagline per language, and the language switcher with 
a live preview.⌉⌊Settings: site title and tagline per language, and the language
switcher with a live preview.⌉[

Settings: site title and tagline per language, and the language switcher with a 
live preview.

[⌊hreflang and canonical tags on a translated page, and a sitemap per language in
robots.txt.⌉⌊hreflang and canonical tags on a translated page, and a sitemap per
language in robots.txt.⌉[

hreflang and canonical tags on a translated page, and a sitemap per language in 
robots.txt.

## 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

 *   [ Work More ](https://profiles.wordpress.org/connextsystem/)

[Translate “WorkMore Site Translator” into your language.](https://translate.wordpress.org/projects/wp-plugins/workmore-site-translator)

### Interested in development?

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

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

## Meta

 *  Version **1.1.2**
 *  Last updated **12 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [bilingual](https://wordpress.org/plugins/tags/bilingual/)[hreflang](https://wordpress.org/plugins/tags/hreflang/)
   [language switcher](https://wordpress.org/plugins/tags/language-switcher/)[multilingual](https://wordpress.org/plugins/tags/multilingual/)
   [translation](https://wordpress.org/plugins/tags/translation/)
 *  [Advanced View](https://wordpress.org/plugins/workmore-site-translator/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/workmore-site-translator/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/workmore-site-translator/reviews/)

## Contributors

 *   [ Work More ](https://profiles.wordpress.org/connextsystem/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/workmore-site-translator/)