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.
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
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
- 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.
Absolutely LOVE this plugin! So very helpful in so many ways, I cannot recommend it highly enough if you are using a multisite setup for different languages.
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.
A great plugin with awesome support just about sums it up! 😀
Love this plugin!
But in the latest version there is a little bug with che blog structure permalinks
no more to say, good as always.
Easy to use. Even for WP dummies 😉
Contributors & Developers
“Multisite Language Switcher” is open source software. The following people have contributed to this plugin.Contributors
“Multisite Language Switcher” has been translated into these 10 locales: Bulgarian, French, Japanese, German, Croatian, Italian, Swedish, Albanian, English (UK), English (Canada). Thank you to the translators for their contributions.
Interested in development?
- Fix and enhancements for translated slugs
- Bugfix for issue American English doesn’t work with WordPress 4.3
- 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
- Filter ‘msls_meta_box_render_select_hierarchical’ closes issue 64
- Bugfix for issue 73
- language files for Norwegian (nb_NO) by Ibrahim Qraiqe added
- Bugfix for issue Multisite Language Switcher Options is empty
- 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