WordPress Multisite: How to Make a Multilingual Website

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.

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.

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.

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:

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).

Domain

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.

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.

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

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

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.

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.

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.

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 http://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.

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.

Premium plugins

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.

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

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

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

About the Author

Irena is the creator of the blog WPLANG (WordPress Multilingual) and a professional specialized in website localization. Irena now helps others to create a WordPress website in one language or create a multilingual WordPress website.

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!

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!

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)

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

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?

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,

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?

Note that some articles of this blog contains affiliate links, so I make a few bucks if you use them. This won't cost you anything but helps me to keep the lights on (so to speak). Thank you very much. Irena