Multisite Language Switcher
A simple, powerful and easy-to-use plugin that will help you to manage multilingual content in a multisite WordPress installation.
Solid choice
Multisite Language Switcher is a solid plugin choice in 2026, with a few things worth checking first. It runs on 3K+ sites, is rated 4.8/5 and was last updated 2 weeks ago, and scores 76/100 on our health check.
- Loved by users — 4.8/5 from 99 reviews
- Actively developed — last update 2 weeks ago
- Tested with the latest WordPress (7.1)
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Multisite Language Switcher stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| language | #6 |
| localization | #24 |
| multilingual | #62 |
| multisite | #4 |
| switcher | #7 |
Version adoption
Share of active sites per release.
Rating breakdown
★★★★★★★★★★ 4.8 from 99 reviews
About Multisite Language Switcher
From the official readme · v3.0.3Description
A simple, powerful, and user-friendly plugin that adds multilingual support to your WordPress multisite installation, whether using multiple subdomains or folders. Multisite Language Switcher allows you to effortlessly manage translations for posts, pages, custom post types, categories, tags, and custom taxonomies.
The plugin uses flag icons from FamFamFam. Thanks to Mark James for his great work. In addition, I would like to thank Jürgen Mayer for creating the plugin’s banner.
Please, don’t forget to rate this plugin! 🙂
Translators
Thanks to all the translators for their great work.
- German (de_DE) – Dennis Ploetner
- Italian (it_IT) – Antonella Cucinelli
- Dutch (nl_NL) – Alexandra Kleijn
- Brazillian Portuguese (pt_BR) – Coolweb
- Spanish (es_ES) – Andreas Breitschopp
- French (fr_FR) – Andreas Breitschopp
- Russian (ru_RU) – Andrey Vystavkin
- Ukrainian (uk) – Victor Melnichenko
- Croatian (hr_HR) – Brankec69
- Romanian (ro_RO) – Armand K
- Polish (pl_PL) – Kamil Frejlich
- Lithuanian (lt_LT) – Ovidijus Pukys
- Catalan (ca_ES) – Joan López
- Czech (cs_CZ) – Rastr
- Hungarian (hu_HU) – RobiG
- Georgian (ka_GE) – Jas Saran
- Greek (el) – Christoforos Aivazidis
- Serbian (sr_RS) – Web Hosting Hub
- Turkish (tr) – Alican Cakil
- Armenian (hy_AM) – Yeghishe Nersisyan
- Bengali (bn_BD) – Md. Nazmul Huda
- Japanese (ja) – ThemeBoy
- Swedish (sv_SE) – Erik Bernskiold
- Traditional & Simplified Chinese (zh_CN & zh_TW) – DrBenson
- Arabic (ar) – Mohamed Elwan
- Norwegian (nb_NO) – Ibrahim Qraiqe
- Bulgarian (bg_BG) – Vencislav Raev
- Mexican Spanish (es_MX) – Fernando Mata
You can translate this plugin on translate.wordpress.org, or if you prefer and have created your language pack, or have an update of an existing one, you can send me your Gettext PO and MO so that I can
bundle it into the Multisite Language Switcher. You can download the latest POT file
from here.
Installation
- Use the WordPress admin to install the plugin from there or
- Download the plugin and uncompress it with your preferred unzip programme and copy the entire directory in the plugin directory of your WordPress blog (/wp-content/plugins)
- Activate the plugin in your plugin administration page (by the network administrator on all the blogs or by the blog administrator for each particular blog).
- After activation, configure the plugin once in each blog under
Settings->Multisite Language Switcher
Now you can:
- Connect your translated pages and posts in
Posts->EditorPages->Edit - Connect your translated categories and tags in
Posts->CategoriesorPosts->Tags - connect your Custom Post Types and Custom Taxonomies across languages
- create a missing translation in one step – straight from the editor metabox, or from the
Add from Translationsubmenu, which lists everything that is not translated yet and can create translations in bulk (Quick Create, new in 3.0) - use the widget, the Gutenberg block, the shortcode [sc_msls] and/or a content_filter which displays a hint to the user if a translation is available
- you can find also a shortcode for the widget [sc_msls_widget]
- optionally you can place the code
<?php if ( function_exists( 'msls_the_switcher' ) ) msls_the_switcher(); ?>directly in your theme files
Review the Multisite Language Switcher Website for more information.
Developers will find the API functions, every action and filter, and a set of integration
snippets in the developer documentation.
Frequently asked questions
I have no language options in the General settings.
You might read first WordPress in your language.
But I’d like the interface to stay in English.
You can choose the language of the dashboard in the settings of your user profile.
Do I need a multisite?
It’s up to you – of course. But yes, if you want to use the Multisite Language Switcher.
How can I automatically redirect users based on the browser language?
The Multisite Language Switcher does not redirect the users automatically. I’m not sure if the plugin should do that.
How can I add the Multisite Language Switcher to the nav menu of my blog?
Please check the add-on MslsMenu out.
I want to have the languages in an HTML select. How can I do that?
Please check the add-on MslsSelect out.
Can I call a function to get the language of the page the user is viewing?
Yes, you should use the WordPress API function get_locale() but you could also use code like that $blog = msls_blog_collection()->get_current_blog(); $language = $blog->get_language(); The class behind it moved to lloc\Msls\Blog\Collection in version 3.0.0. The old name lloc\Msls\MslsBlogCollection still resolves, so existing code keeps working.
If I have another question, where can I ask?
Please visit the MSLS website or use the WordPress support forum for more information.
Changelog
Maintenance release for PHP 7.4 installations. One of the plugin's dependencies required PHP 8, which broke the installation on the PHP version MSLS documents as its minimum. No changes to the plugin's behaviour.
3.0.3
- Fixed: on PHP 7.4 the plugin’s dependencies could not be installed, because one of them required PHP 8. MSLS supports PHP 7.4 again, as documented.
3.0.2
- Fixed: with more than 100 users on a blog, opening the settings page raised a PHP notice that ended up in the error log (and in services such as Sentry). The truncated user list is now reported as a hint below the “Reference user” dropdown instead.
- Changed: MSLS no longer runs
count_users()to detect the truncation, which removes a costly query from the settings page on blogs with many users.
3.0.1
- Fixed: 3.0.0 could not be published on WordPress.org
- The plugin code is identical to 3.0.0.
3.0.0
- New: Quick Create – create the translated post straight from the editor metabox, or pick a source post on the new
Add from Translationsubmenu (single and bulk). Backed by a REST endpoint and switchable in the settings. - New:
msls_quick_create_capabilitylets integrations override the Quick Create permission checks. Additional filters cover the post data, the inserted post, the REST response, the untranslated-posts list and the mapped taxonomy terms. - New: filter hooks for the AJAX suggest results of the post and term metaboxes.
- New: a developer reference in
docs/– public API, every hook, integration snippets and the Playwright setup. - Changed: the
lloc\Msls\namespace is split into per-concern sub-namespaces. Every pre-3.0 class name (MslsOptions,MslsLink,MslsOutput, …) keeps working through a backwards-compatibility alias, so add-ons and custom code do not need changes. - Changed: the public helper functions moved to
includes/api.php, and the$attrargument ofmsls_get_switcher()is now optional. - Fixed: add-ons such as MslsMenu and MslsSelect could be silently disabled because the plugin registered its classes too late. Aliases and API functions are now available the moment the plugin file is loaded.
- Fixed: authorization is checked on the destination post during content import, and the ContentImporter permission and post type checks were corrected.
- Fixed: no
home_url()fallback for taxonomy and query archives anymore. - Fixed: broken links on the page for the latest posts.
- Fixed: several issues in the blog collection.
- Internal: strict typing throughout, PHPStan level 8 clean,
ABSPATHguards, Plugin Check and PHPCS findings addressed, a wp-env based local multisite and a Playwright end-to-end suite.
2.10.1
- Fixed: deprecated function warning pointed to a non-existent function.
- Documentation: README.md code snippets reflect the new function names.
2.10.0
- New: prefixed public helper functions (
msls_get_*,msls_the_switcher) with deprecation shims for the legacy names. - New: action hook names are exposed as constants for safer programmatic use.
- Accessibility:
aria-current="page"on the active language link. - Fixed: path-related issue affecting asset/loader resolution.
The full history is kept in the separate Changelog.
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Multisite Language Switcher alternatives
All language plugins →FAQ
Multisite Language Switcher: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Sep 26, 2026
Is Multisite Language Switcher free?
Yes. Multisite Language Switcher is free to download and use from the official WordPress.org plugin directory.
Is Multisite Language Switcher safe to use in 2026?
Multisite Language Switcher is a solid plugin choice in 2026, with a few things worth checking first. It runs on 3K+ sites, is rated 4.8/5 and was last updated 2 weeks ago, and scores 76/100 on our health check.
How many websites use Multisite Language Switcher?
Multisite Language Switcher is active on 3K+ WordPress websites and has been downloaded 674,864 times since it launched in June 2011. It was downloaded 7,307 times in the last 30 days.
Does Multisite Language Switcher work with WordPress 7.1?
Yes. The developer has tested Multisite Language Switcher up to WordPress 7.1.2, the latest release. It requires WordPress 6.1 or newer.
What PHP version does Multisite Language Switcher need?
Multisite Language Switcher requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Multisite Language Switcher last updated?
The latest version, 3.0.3, was released on September 10, 2026 (2 weeks ago).
Who makes Multisite Language Switcher?
Multisite Language Switcher is developed and maintained by Dennis Ploetner.
What are the best alternatives to Multisite Language Switcher?
The most popular alternatives to Multisite Language Switcher are Loco Translate (1M+ installs), Translate WordPress with GT… (900K+ installs) and Polylang (800K+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card






