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.
Please, don’t forget to rate this plugin! 🙂
Thanks to all 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
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
- Multisite Language Switcher
- 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 Gutenberg block, the shortcode [sc_msls] and/or a content_filter which displays a hint to the user if a translation is available
- find also a shortcode for the widget [sc_msls_widget]
- 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 the dashboard in the settings of your user profile.
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.
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 should use the WordPress API function
get_locale()but you could also use code like that
use lloc\Msls\MslsBlogCollection; $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.
There is a separate Changelog for this project available.