In this article I show you how to create a multilingual website using WordPress Multisite. Although many of the topics discussed in this guide will also help you in case you chose a single WordPress installation.
INDEX
1. Setting up a multilingual site using WordPress Multisite
1.1. Installing WordPress Multisite
1.2. Domain, sub-domain and sub-directory
1.3. WordPress core language files: po and mo files
1.4. Setup each network site: General settings
2. Install a multilingual theme (and multilanguage plugins)
2.1. Multilingual themes
2.2. Multilanguage plugins
3. Install a multilingual network plugin: synchronizing and cloning contents
3.1. Synchronizing the content (or not)
3.2. Multilingual network plugins
3.3. Cloning sites
4. A note on translation quality and translation management
4.1. Automatic versus human translation
4.2. Translation management
5. Translate content into other languages
5.1. Post, pages and custom post types
5.2. Taxonomies
5.3. Widgets
5.4. Author Bio
5.5. Menu
5.6. Contact forms
5.7. Sliders
5.8. SEO options
5.9. Social networks
6. Search engines and webmasters tools: Geographic target
Introduction
By default WordPress don’t support bilingual or multilingual versions. So if you want to create a WordPress site with two or more languages you have two basic options:
- Install a standalone WordPress environment and a multilingual plugin such as WPML (premium) or Polylang (free).
- Install WordPress Multisite and a multilingual network plugin such as Multisite Language Switcher (free), Zanto (free) or Multilingual Press Pro (Premium).
Which is the best option to create a multilanguage WordPress site? It depends on many factors. There is no single answer.
In any case if you are creating a large website and you are an advanced user I recommend using WordPress Multisite for your multilingual project. If you’re a WordPress beginner user or if you have a small or medium site I recommend using a single WordPress installation with WPML. In other cases it will depend on each project and user.
For more information about the best solution (single or multisite) please read this article: How To Make A Multilingual WordPress Site: best translation plugins
In this guide I show you how to make a WordPress site in two o more languages using WordPress Multisite. Although many of the topics discussed in this article will also help you in case you chose a WordPress single installation.
1. Setting up a multilingual site using WordPress Multisite
1.1. Installing WordPress Multisite
You have two options to create a network in WordPress:
- Existing WordPress site: Install WordPress Multisite in your current WordPress installation following these instructions: http://codex.wordpress.org/Create_A_Network
- New WordPress site. The easiest way to install WordPress Multisite is to do so via the Softaculous installer in cPanel. To enable Multisite, you need to check the Enable Multisite option on the WordPress installation page. Once the installation is completed, Multisite will be enabled in your WordPress.
1.2. Domain, sub-domain and sub-directory
Sub-domain
You can choose between sub-domain and sub-directory when installing WordPress Multisite. This website is using sub-domains:
- https://wplang.org (English)
- http://es.wplang.org (Spanish)
- http://de.wplang.org (German)
Note: You may need to set up a wildcard subdomain, and this can be done within your cPanel account. A wildcard DNS is specified by using the * symbol to create a record for the *.example.com (Configuring Wildcard Subdomains).
Subdirectory
Also, you can use subdirectories. Examples:
- https://wplang.org (English)
- https://wplang.org/es (Spanish)
- https://wplang.org/de (German)
Note: if WordPress is installed in the root of your domain, you may receive a warning that your installation must use sub-domains. This will happen if your WordPress website is older than one month.
Domain
A final option is using domains. Examples:
- https://wplang.org (English)
- http://wplang.es (Spanish)
- http://wplang.de (German)
In WordPress Multisite is possible to achieve these kinds of URL for each language by using the popular Domain Mapping plugin. This plugin allows users of a WordPress Multisite network to map their website to another domain.
More info: Domain, Subdomain, Subdirectory, Languages and WordPress
1.3. WordPress core language files: po and mo files
(IMPORTANT UPDATE 18/12/2014: Since WordPress 4.1 you don’t need to upload .po and .mo files. Just go to Settings > General > Site Language, and install new languages)
If you installed WordPress in English, you’ll need to create the languages folder inside wp-content directory and upload .PO and .MO WordPress core language files.
The .PO file includes the original texts and the translations in two columns. WordPress doesn’t use it. The .MO file includes the exact same contents as PO file. The two files differ in their format. While a PO file is easy for humans to read, MO files are compiled and are easy for computers to read. WordPress gets translations from .MO files.
There are WordPress core language files and theme/plugins language files (see paragraph 2)
For example, in Wplang.org I’ve uploaded Spanish and German language files. You can download these files from: http://i18n.svn.wordpress.org/. You have to upload four different files (po and mo): text strings in WordPress dashboard, text strings in network dashboard, name of continents and cities and text strings in WordPress front and backend. Examples:
- Spanish files
- admin-es_ES.mo
- admin-es_ES.po
- admin-network-es_ES.mo
- admin-network-es_ES.po
- continent-cities-es_ES.mo
- continent-cities-es_ES.po
- es_ES.mo
- es_ES.po
- German files
- admin-de_DE.mo
- admin-de_DE.po
- admin-network-de_DE.mo
- admin-network-de_DE.po
- continents-cities-de_DE.mo
- continents-cities-de_DE.po
- de_DE.mo
- de_DE.po
Note on translations: You might want to use a less formal language for your website or maybe you want to customize the text. In this case you need to use Poedit software to modify translations
More info: How to translate a WordPress theme (or plugin): .POT, .PO and .MO files
1.4. Setup each network site: General settings
Once you’ve uploaded the core language files, you can setup localization options on each site of the network.
Go to Settings > General to setup each network site:
- Site Title
- Tagline in the appropriate language
- Timezone. From the dropdown menu, choose a city in the same timezone as you. For example, under America, select New York if you reside in the Eastern of the United States.
- Date Format. The format in which to display dates on your site.
- Time Format. The format in which to display times on your site. More info: Documentation on date and time formatting (http://codex.wordpress.org/Formatting_Date_and_Time)
- Week starts on. Select your preferred start date for WordPress calendars from the drop-down menu.
- Site Language. It’s the language in which you write your website. Each site in WordPress Multisite has its own language setting.
2. Install a multilingual theme (and multilanguage plugins)
If you want to make a multilingual WordPress site, I recommend you to look for a theme translated into other languages or at least a multilingual ready theme (I mean ready to be translated into other languages with Poedit). This also applies to plugins
2.1. Multilingual themes
Free multilingual themes
You can find free translation ready themes in WordPress.org:
Premium multilingual themes
- StudioPress. You can translate Genesis Framework automatically into one of the available languages. No need to translate and upload .MO and .PO files. You only need to install Genesis Translations Plugin. Genesis Framework is translated into many languages: Spanish, French, German, Russian, Dutch, Portuguese, Romanian, etc.
- ThemeForest. In this link http://themeforest.net/tags/multilingual, you can find all multilingual themes. Note that some WordPress themes are multilingual and ready to be translated with WPML or Poedit, but also you can find themes with a complete solution (no need for any translations plugins – Example: Amplus).
- Elegant Themes. All themes have been localized for easy translation. Included with each theme are .MO and .PO files that can be used to translate the theme. They have also begun adding some translations to the themes for certain languages. At the time being, all themes come pre-translated to English, Russian and German. More information: http://www.elegantthemes.com/features/localization.html.
- WooThemes come packaged with a language file for easy WordPress theme translations into your language. Also, WooCommerce comes localization ready.
- DiyThemes (Thesis). How to Translate Thesis (or a skin) into Other Languages:
WordPress theme compatibility with Multisite
In theory, any theme work on multisite, but in practice not all work perfectly in a multisite installation.
More info about theme compatibility with Multisite
- http://premium.wpmudev.org/forums/topic/will-any-theme-work-in-a-multi-site-installation
- Diythemes: http://diythemes.com/thesis/rtfm/troubleshooting/multisite/
2.2. Multilanguage plugins
I also recommend you look for multilingual plugins translated into other languages or, at the very least, browse multilingual ready plugins.
The WordPress plugin repository doesn’t allow you to search for plugins that have been localized, so if you download a free plugin it’s best to check the plugin’s features list to see if it is translation ready or contact the developer for more information.
Most free popular plugins are multilingual ready. Also, most premium plugins are multilingual ready, but not all.
For example, if you want to make a multilingual contact form, Contact Form 7 plugin is an excellent option. You can create contact forms in two o more languages very easily. Click the Add new link, and select the language from the drop-down menu (More info: How to create multilingual contact forms for WordPress).
WordPress plugins compatibility with multisite
While there are hundred and thousand of WordPress plugins many of these may have compatibility issues with Multisites or the theme you are using. Check the plugin’s compatibility information before installing.
3. Install a multilingual network plugin: synchronizing and cloning contents
Now that you’ve configured your multilingual website with WordPress Multisite, you can start making your website and creating content in your language.
In this website the original contents have been created in English and in the primary domain https://wplang.org.
3.1. Synchronizing the content (or not)
Once you’ve designed the original website, you can start translating content into other languages. You have two options:
- If you do not need to synchronize the contents of each language, simply put a language switcher at the top of your website, so the user will be redirected to the home page when switching to another language.
- You may want to link the translated content in different languages (post, pages, taxonomies, etc) to avoid being redirected to the homepage when switching from one language to another. There are three plugins that allow you to synchronize contents in each language. Let’s review these plugins.
3.2. Multilingual network plugins
Free plugins
- Multisite Language Switcher. A simple and easy to use plugin to manage multilingual content in a multisite WordPress installation. This plugin enables you to manage translations of posts, pages, custom post types, categories, tags and custom taxonomies. You can use a widget to link to all sites with a language switcher. This website is using Multisite Language Switcher Plugin.
- Zanto. This plugin enables you to convert WordPress websites in a multisite installation into translations of each other. It provides a language switcher and keeps track of what has been translated and what has not. It provides an intuitive interface that allows you to manage translations.
- Multilingual Press (free version). With this plugin you can connect multiple sites as language alternatives and use a customizable widget to link to all sites.
Premium plugins
- Zanto. This plugin comes with paid add-ons that provide additional features: Translation manager ($54), Menu switcher ($9) and Better links ($19).
- Multilingual Press Pro. The pro-version offers many additional features: support for custom post types, redirection to the user’s preferred language version, the ability to edit all translations from the original post editor without the need to switch sites, duplicate sites, etc. Pro Version costs $75 (1 domain), $95 (5 domains) and $190 (10 domains). Annual renewal costs $45, $55 and $110, respectively.
More information about this plugin in this review: Multilingual Press Review: Create networks with multiple languages.
3.3. Cloning sites
If you have created a whole website in English, and you need to create the German or the Spanish version, you can completely duplicate the English version and replace the English content with German or Spanish content. This prevents you from having to redo theme customization, widgets, custom menus, links, images, etc.
Free plugins
- WordPress Importer. Go to Tools > Import/Export. It will ask you to install a plugin if it is not already installed.
- Blog copier. Enables users to copy existing sub-blogs to new sub-blogs. Note that it only allows you to select example.com/es (or es.example.com) as source but not example.com.
- NS Cloner – Site Copier. This plugin clone existing sites in a multisite network to a completely new site.
- Another interesting option is ThreeWP Broadcast that broadcast posts to other blogs in the network. Custom post types, attachments and taxonomies are supported. It’s a network plugin for PHP v5.4+.
Premium plugins
- Mutilingual Press Pro. If you buy the pro-version of this plugin you’ll be able to duplicate sites.
4. A note on translation quality and translation management
4.1. Automatic versus human translation
Before starting translation is very important to establish the kind of translation you want to perform: automatic or human. Make sure you chose the right option for the amount of time spent and content quality you want for your blog or website.
Let’s look at the different options from worst to best:
- Automatic translation. First, and worst, is using automatic Google translator (or any other automatic translator). Translations often don’t make sense and search engines could consider them as spam. On the other hand it’s the cheapest option. You don’t need to perform the costly task of translating your blog or hire a translator.
- Human translation:
- Cheap translation. You can go to Fiverr (or similar webpages) and hire a cheap translator. The work will be done by a translator but the quality of the translation may not be the best.
- Professional translation. A high quality translator can demand a price for their services, but I think is worth if you foresee serious growth in the different language versions.
- Professional translation + Proofreading. If you want to avoid potential errors in translations is always advisable to perform a proofreading.
4.2. Translation management
It is always advisable that the translation is carried out by a professional translator familiar with WordPress that can do their work from the WordPress admin panel. This way you avoid having to copy and paste text into Word.
Unlike other CMS, WordPress does not have the role of translator. One solution is to create a user with the role of editor or administrator (if you trust your translator). You can also use User Role Editor Plugin to manage users.
Another option is using Zanto Translation Manager. This way you can turn any user into a translator or reviewer. A translator is provided a special dashboard. The XLIFF feature enables you to export posts, pages or any custom post types (with its taxonomies, comments and post meta) to XLIFF. This file can be sent to any translation company or you can use your favorite CAT tool to do translations. When translations is complete, the XLIFF can be imported back.
5. Translate content into other languages
When translating a WordPress website there are many elements that must be translated. Many of these elements are often overlooked.
5.1. Post, pages and custom post types
Posts (or articles), pages (often used to present “static” information) and custom post types (portfolios, projects, libraries, etc) are the main contents to be translated. Each of them contains a number of elements that must be translated:
- Title
- Slug. Slugs are usually a URL friendly version of the post title, but a slug can be anything you like. Slugs must be translated.
- Content. You must translate not only text but also images, attachments, etc. Don’t forget to change internal links in each language.
Tips:
- Don’t forget to translate text images (you’ll need to edit the image before) and image title, alt text, caption and image description.
- Don’t forget to translate attachments (PDF files for example)
- Don’t forget to translate Error 404 page
- Don’t forget to translate comments if applicable
5.2. Taxonomies
Taxonomies allows classification of things. In WordPress, there are two taxonomies: categories and tags. It’s important to translate categories and tags. Often these elements are not translated in many websites.
Each category (and tag) contains a number of elements that must be translated:
- Category name
- Category slug
- Category description
- Category archive settings: headline and intro text
5.3. Widgets
WordPress Widgets add content to your Sidebars. Elements for translation:
- Widget title
- Widget content
- Widget button
- Etc…
Example (Jetpack Blog Subscriptions):
5.4. Author bio
Authors are shared throughout WordPress multisite, so the bio is the same on each site. The best option to translate the author bio is using a widget. In this website I’m using Genesis User Profile Widget (after entry).
Note. There is a plugin, called Individual Multisite Author, that enables individual author descriptions for each single website in a multisite network. So you can use it to translate the author description.
5.5. Menus
Elements for translation:
- Navigation label. This is what your visitors will see when they visit your site
- Title Attribute. The text displayed when a user’s mouse hovers over a menu item
5.6. Contact forms
When translating contact forms must take into account various texts:
- Visible texts
- Validation messages
- Error messages
- Button text
Example (I’m using Contact Form 7):
More info: How to create multilingual contact forms for WordPress
5.7. Sliders
Elements for translation:
- Slider text
- Images
- Links to pages or posts
5.8. SEO options
SEO Elements for translation:
- Homepage: Title and meta description
- All posts (and custom post types). Title and meta description
- All pages. Title and meta description
- Categories (and tags). Title and description
5.9. Social networks
Consider that there are other countries where different social networks predominate (For example, Vk.com in Russia)
6. Search engines and webmasters tools: Geographic target
Finally, once the website has been translated, you should enlist the website on major search engines and set your geographic target in webmaster tools.
Google is the world’s largest search engine but note that in some countries there are other major search engines: Yandex in Russia or Baidu in China, for example.
You can use Google XML sitemaps plugin (100% Multisite compatible) to generate and send a sitemap to search engines.
Most search engines returns the most relevant sites in response to a user query. For that reason, the results a search engine shows to a user in the United States can vary from the results returned to a user in the United Kingdom.
If your site has a generic top-level domain (.com, .org, .net, etc), and targets users in a particular geographic location, you can provide information to help search engines determine how your site appears in the search results..
If your site has a country-coded top-level domain (.es, .de, .ru, etc) it is already associated with a geographic region. In this case, you won’t be able to specify a geographic location.
In Google Webmasters tools you can set a country target from the International Targeting section (Country tab), check the Geographic target checkbox and choose your country target. If you don’t want your site associated with any location, you can select “Unlisted” (for example in your english version).
7. Conclusions
As you have seen, creating a multilingual website with WordPress Multisite is not a simple process. However, the existence of multilingual network plugins and plugins to clone entire websites makes things much easier.
In any case there are many aspects to consider when creating a multilingual website: sub-domain or sub-directory, the setup of each network site, translation quality, translation management, content synchronization, content translation, geographic target in webmasters tools , etc.
I hope this guide will help you create your multilingual WordPress website
iClickAndHost says
What a great guide! I tip my hat to you for your effort of putting all the great options into a single article.
You know, we are looking to make our website multilangual so I am bookmarking this 🙂
Irena Domingo says
Thank you very much. Glad that you find this guide useful 🙂
Sheiler says
Just wanted to say how much I appreciate this comprehensive guide. Really clear and well-written. I know this must have taken you a lot of time to get it right. I too am bookmarking this to use as a reference. Thanks very much!
Irena Domingo says
Hello Sheiler. Thank you very much for your comment!!!
Abdur says
Thank you so much
Irena Domingo says
You’re welcome
Alberto says
Good evening,
I’m going to build a 2 language site with Zanto. For each language (primary and secondary) I must use subfolders path (domain/primary, domain/secondary). How can I obtain that result? I installed WP in main domain (without folders), but Zanto prevented me to add a duplicate language located in primary folder. Are there others solutions instead of using a third language to do the main WP installation? Thank you!
Irena Domingo says
You can choose URL format in Zanto Blog Settings and add language to directories. You can read Zanto documentation in this linK:
Language URL formats
dexter says
Hi Good Article
What was not clear to me, is the sharing content in a MS site vs a standalone implementation.
Will the MS site have a separate database for each instance of WP or will it use a shared Database.
Irena Domingo says
WP Multisite uses one database but each site gets his own tables
Akira says
Hello, I’m encountering some problems explained in art. 1.4. all steps before I could succesfully complete. But I’m stuck now, I can’t seem to get into the dashboard of my other (sub)directory? i always end up in the dashboard of my primary website. so I can’t seem to configure the settings in my subdirectory… please help
(P.S. Very usefull article otherwise)
Carine says
Thank you Irena, you have given me the confidence to give it a go myself. I’d be grateful for some clarification:
I’m planning to clone as I only need 2 languages (main in EN and sub in FR) then I will manually translate. Therefore do I need a Multilanguage plugin as all I will need is a button for user to choose which language they prefer and that will take them to the home page?
Many thanks
Irena Domingo says
Hello Carine,
You don’t need a multilanguage plugin in that case. Just insert two links (in header or footer) that redirects to the homepage in each language.
Wendy says
Hi Irena, Thank you for the great article & the same question actually I have too. As you answered “Just insert two links(in header or footer)that redirects to the homepage in each language.”
Could you clarify this by more details? Do you mean to add the codes in header and footer area with link with language? By the name only or other short-code?
Looking forward to hearing from you shortly.
Regards, Wendy
Divya says
Hello,
I have a running stand alone WP website in EN(localhost), I have switched to multisite and have 3 sites as a network. I used Site cloner to copy all content from the main website to a sub-site, What is your recommendation for translating the content of a subsite?
Thank You very much,
Irena Domingo says
Manual translation
Divya says
Thank You!
Jimmy says
hi,
since a recent update of WordPress I can’t setup the default language, in Settings I choose a language, I update, I got a message saying settings are updated but it’s always come back to the initial settings (english), I’m not the only one who notice that but until now nobody find a solution… maybe you?
Irena Domingo says
No. Maybe it’s a problem with a translation plugin that you are using. Try to deactivate it and try again.
Jimmy says
not possible… I don’t use translation plugin!
I’m talking about “site language” on this screenshot http://wplang.org/wp-content/uploads/2014/10/Settings-General-WordPress-English.jpg
Antonio says
have you find a solution?
Patrick says
You say you’re not using a translation plugin, but are you also not using MultiSite Language Switcher? I had a similar issue and found the solution in there 🙂
Veronica says
Thank you for a great article!
Mike Benayoun says
Thanks for this insightful article Irena. I manage a bilingual blog with WPML. It’s working fine. However, the main reason why I am looking at the multisite option is to be able to split the current blog (www.196flavors.com + http://www.196flavors.com/fr) into 2 separate domains (www.196flavors.com + http://www.196flavors.fr) mainly for SEO optimization, as some results don’t show up as Google tends to favor the English version (without /fr subfolder). I feel like by splitting into 2 separate domains, Google would return both for the same keyword (in 2 different languages). Would you agree? What would be the best option for this setup?
Laura Rodd says
Very interesting article Irena, I really admire your knowledge on the topic. Totally agree with the importance of having a multilingual site, if your audience is made up of individuals representing different languages, putting forth the work toward creating a well-done multilingual WordPress website will create an awareness of your brand, product or service as being extremely inclusive and accommodating.
I think our latest blog post might be of interest to you as it also discusses the same subject of what we should take into consideration when building a multilingual WordPress website. Having your feedback regarding the article would be highly appreciated. https://goo.gl/BPHOiX
Mohammad Afshar says
Hey Guys!
I am going to have my site ( https://bahargate.biz/ ) in other languages. Some of them are RTL such as Arabic and Farsi and some others are LTR.
As Enfold is a translation ready theme, could you guys let me know the steps (1- 2 – 3 …) I need to take to create my website in other languages. I’ll start with Farsi.
Thanks,
Mohammad