Multisite Language Switcher


A simple, powerful and easy to use plugin that will add multilingual support to a WordPress multisite
installation, i.e. multiple subdomains or folders (if you need to set up multiple sites across multiple domains, you’ll also want to use the WordPress MU
Domain Mapping
plugin as well – as long as the domains are all hosted on the same server.).

The Multisite Language Switcher enables you to manage translations of 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.


Thanks to all translators for their great work.

If you have created your own 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.


  • Plugin configuration
  • Elenco degli articoli
  • Modifica articolo
  • widget


  • Download the plugin and uncompress it with your preferred unzip programme
  • Copy the entire directory in your 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 root blog administrator for each particular blog).
  • You need to activate the plugin once in each blog, set the configuration in Settings -> Multisite Language Switcher

Now you can:

  • connect your translated pages and posts in Posts -> Edit or Page -> Edit
  • connect your translated categories and tags in Posts -> Categories or Post -> Tags
  • connect your Custom Post Types and Custom Taxonomies across languages
  • use the widget, the shortcode [sc_msls] and/or a content_filter which displays a hint to the user if a translation is available
  • optionally you can place the code <?php if ( function_exists( 'the_msls' ) ) the_msls(); ?> directly in your theme files

Review the Multisite Language Switcher Website for more information.


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 every website and the dashboard in the settings page of the plugin.

Do I really 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. You might check out this jQuery plugin or this approach with a theme
if you need such functionality.

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.

I don’t want to upload the same media files for every site. What can I do?

You could try the plugin Network Shared Media. It adds a new tab to the “Add Media” window, allowing you to access the media files in the other sites in your multisite.

Is there a function I can call to get the language of the page the user is currently viewing?

Yes, you can get the language like that

$blog     = MslsBlogCollection::instance()->get_current_blog();
$language = $blog->get_language();
How can I move from WPML to MSLS?

There is a plugin which comes handy in here.


Best multilingual solution

Like others I have used several solutions for website localization and this one is the best and the most flexible. This plugin is simple and effective. All wordpdress plugins (compatible with wordpress network) can be used.

Really good

Love this plugin!

But in the latest version there is a little bug with che blog structure permalinks

Leggi tutte le 68 recensioni

Contributori & Sviluppatori

“Multisite Language Switcher” è un software open source. Le persone che hanno contribuito allo sviluppo di questo plugin sono indicate di seguito.


“Multisite Language Switcher” è stato tradotto in 10 lingue. Grazie ai traduttori per i loro contributi.

Traduci “Multisite Language Switcher” nella tua lingua.

Interessato allo sviluppo?

Sfoglia il codice, accedi al repository SVN, oppure iscriviti al log di sviluppo tramite RSS.



  • Fix and enhancements for translated slugs



  • text domain is now ‘multisite-language-switcher’, translation files moved to refelect this change


  • language files for Bulgarian (bg_BG) by Vencislav Raev added
  • admin options page heading is now h1 instead of h2



  • language files for Arabic (ar) by Mohamed Elwan added


  • Bugfix: alternate hreflang for the current blog was empty
  • Filter: ‘msls_options_get_flag_icon’ introduced
  • Shortcode [sc_msls] added


  • Bugfix: term links were damaged when term_base option were used
  • Bugfix: en_GB & en_US both displayed as ‘English’ in Settings > MLS >Blog & Admin language
  • Filter ‘msls_meta_box_render_input_button’ introduced


  • Bugfix: filter internal types from get_post_stati


  • you can choose now your frontend/backend language from the installed languages in the plugins settings
  • support for 25 languages
  • numerous enhancements and fixes (coding style, sql cache, performance, api docs, unit tests …)



  • Option to transform the dropdowns for choosing the connections into text-inputs with jquery-ui autocomplete
  • Plugin cleans up the option-tables now when uninstalled
  • Problem with multiple admin resolved, there is now a “Reference User”-option available
  • a lot of new filters/action, more on this later in the Wiki
  • now you can use <?php if ( function_exists( 'msls_filter_string' ) ) msls_filter_string(); ?> if you’ld like to print the “hint”-string anywhere in your templates
  • language files for ca_ES by Joan López, cs_CZ by Rastr and bn_BD by Md. Nazmul Huda added
  • MslsCustomFilter-Class by Maciej Czerpiński
  • and tons of other minor improvements



  • Fix of the “MslsOptionsQueryDay.php”-bug
  • language files for es_ES updated by José Luis Pajares


  • further bugfixes and enhancements


  • a lot of bugfixes and enhancements
  • some modifications – how the meta box handles hierarchical post types – by Joost de Keijzer
  • behaviour – how the plugin collects the blogs – changed
  • language files for ro_RO added


  • new: Support for author- and date-archives
  • language files for hr_HR added
  • some modifications of the image path handling by Tobias Bäthge



  • first version