How to Build a Multilingual Site in WordPress
There are several benefits to making your website multilingual. Presenting your site in different languages means it is more user-friendly to people from different countries and can help your site move up the rankings in these countries instead of just the English-speaking market.
WordPress is not multilingual by default, however there are a number of methods to translate all your content into as many languages as you wish with minimum effort.
You don’t have to create a new site for each language either, although this is an option you may wish to consider. There are multiple ways of achieving a multilingual WordPress site, as I’ll discuss below:
Choosing Between Human and Machine Translation
Before you decide on a method for switching between different language versions of your site, you have to decide how you will handle the translation in the first place.
There are basically two options: Human or machine translation.
Getting an actual human to translate the content on your site will give a much higher quality result and is probably a better option if it is very important that the alternative language versions of your site are professional and make perfect grammatical sense.
The downside of this method is that it’s more labor-intensive and can cost a lot more. Unless you’re a polyglot and can translate the site yourself, you’ll need to pay somebody (or several people) to handle the translations and this will be an ongoing process. Every time you add new content to your site or make a change to an existing page, you’ll also have to get the page retranslated.
There are various specialist translation services that can provide translators to work on the content for your website and some plugins integrate these services for you. You could also hire a freelancer from a site like Upwork or Freelancer.
Machine translation uses software or an online service such as Google Translate to translate the text into different languages. The translations won’t be as good quality as a human translation, but may be suitable for your purposes if you just want speakers of other languages to understand the gist of your conent and it’s not important for it to be perfect.
The main advantage of this method is that it’s a lot cheaper and easier than manually translating each page. You can also translate pages on-demand and there’s no need to worry about retranslating pages to keep them up to date.
Google Translate and other machine translation services tend to work better on some languages than others – you may want to experiment before you decide if it’s a viable option for your needs.
How to Choose a Translation Plugin for Your WordPress Site
WordPress translation plugins come in a number of different categories that work in different ways to translate the content of your site.
You should take some time to consider your individual needs before choosing a translation method. This may depend on the number of posts and pages on your site, how important the end-user experience is to you, and how much time and resources you have available for managing translations and different versions of your site.
All WordPress translation plugins work in one of these main ways:
- Creating Different WordPress Posts for Each Language – these plugins work by linking together translations of posts so that changing the language of the site will switch between the posts. Translating your site in this way has the advantage of maintaining your database integrity for the original language of your site so it’s easy to install or uninstall the plugin if you want to switch back to a single-language site
- Adding Multiple Translations to the Same WordPress Post – These plugins use a single post or page that is used on all different language versions of the site. The plugin will render only the content that is in the correct language for the site. It can be easier to manage a site translated like this as you can make edits for each translation side by side. However if you ever want to uninstall the plugin and return to a single-language version of your site, it can be more complicated to extract the multiple language content from each post. Post permalinks may also not be translatable.
- Automatically Generating Translated Posts or Directing to an External Translation Service – these plugins will create a generated translation of each post. This is a good option for those choosing machine over human translation. The main advantage of this type of plugin is that they’re really easy to implement and don’t make any changes to the basic structure of your site. The main disadvantage is that the quality of translation may not be great so it’s not an ideal solution for presenting a professional image in other countries, if this is an important factor for you.
- Different WordPress Installations for Each Language – It’s also an option to set up an entirely different site for each language. The advantages of this method is that the individual sites can work independently of each other (although they still have to use the same theme) and the plugin can be deactivated without affecting the content on each site. However setting up multiple sites can increase management time significantly and needs to be considered carefully before choosing this option.
Popular WordPress Translation Plugins
As well as deciding on the type of translation that will work best for your site, it’s important to consider the advantages and disadvantages of different individual plugins. To help in your decision, you can review the main features of the most popular plugins below:
WPML is a premium plugin that many WordPress users consider to be the best multilingual plugin. It is used on over 400,000 sites, worldwide.
The main features include:
- Translation of posts, pages, custom types, taxonomy, menu, and theme text
- All page elements translated
- Comes with 40 languages and additional languages can be added manually
- Compatible with other themes and plugins
- Full developer support.
To switch between different languages, a language switcher is displayed with optional flags:
The plugin changes the default WordPress dashboard so it’s easy to view and edit all your translations from one screen:
WPML is available in two different versions: Multilingual Blog and Multilingual CMS. The Blog license costs $29 for unlimited sites and the CMS version costs $79 for unlimited sites.
Multilingual CMS has several additional features including:
- Translation management module
- Automatically generated menus for translated versions
- Translate pages created with page builders
- Translate site title and description
- Translate theme and plugin texts
- Translate products in WooCommerce
- Integration with translation services.
With WPML CMS translation management you can set up a new user type – “translators”, who only have permissions to translate content. The translation management dashboard allows you to see at a glance what needs translating and send it to a translator:
The translator will see a side-by-side editor that allows them to translate each field of the post.
Connecting to a professional translation service and ordering translated content directly from your dashboard is also possible.
Polylang is another very popular multilingual plugin that has both a free and pro version. It allows you to create posts in any language you choose and translation is optional.
- Unlimited languages
- Translate posts, pages, media, categories, post tags, menus, and widgets
- Supports custom post types, custom taxonomies, sticky posts, RSS feeds, and widgets
- Set language by content or language code, or use a different subdomain or domain per language
- Categories and tags are automatically copied when translating a post or page
- Customizable language switcher available as a widget or in the navigation menu
- Compatible with major SEO plugins
- Uses taxonomies rather than extra tables so won’t reduce website performance.
Additional features in the pro version include:
- Option for translated posts to share the same slug
- Translate slugs in URLS
- Duplicate content when creating a translation
- Enable or disable languages
- Enhanced support.
Translating a post is similar to the way that WPML works but instead of selecting the language to edit from the posts page, you change it in a dropdown in each individual post:
The pro plugin costs 99€ for one site license. Polylang for WooCommerce is also currently in beta development and costs 49€ or 99€ for the pro version.
If you’re interested in using a professional, community-sourced, or automatic translation service, you might also want to check out the Lingotek plugin that integrates with Polylang.
Xili-language free multilingual plugin allows you to set the language of the post or page and automatically changes the theme to match, provided the correct .mo file is included in the theme
Current translations of each post are easily viewable and editable from the main editing screen:
Translations are also visible from the posts dashboard:
Other features include
- Change dashboard language
- Works on single or Multisite WordPress installation
- Uses custom taxonomy to specify post and page language – does not create additional database tables that can slow down performance.
The setup and installation of this plugin requires a little more work than some similar plugins but it’s a good choice for those who are comfortable with the more technical aspects of WordPress.
One thing to be aware of is that this plugin has not been updated for 7 months to date, which means the developers don’t seem to be currently working on it. For this reason it may be better to choose a different plugin to ensure regular updates.
Bogo is another free multilingual plugin that uses WordPress’s built-in localization capability to translate the dashboard and theme into other languages.
Like other plugins in this category, it assigns one language per post and does not create additional tables in your database that may impact performance.
A main language can be chosen for your admin panel, and you can translate posts and pages into any language you choose to install. A language switcher is included as a shortcode.
This plugin is great for beginners to WordPress as it’s very easy to install and the interface is straightforward and simple to use.
WPGlobus is a free plugin that stores translations using a special format within each post. This means you only need one post for multiple translations, but you’ll need to run a special cleanup tool if you decide to uninstall the plugin.
- Translate posts, pages, categories, tags, menus, and widgets
- Enable multilingual SEO with Yoast SEO and All in One SEO plugins
- Switch languages on site with a dropdown menu or customizable widget
- Change language of admin panel.
The easy-to-use interface allows you to edit each post in multiple languages:
There are also several free and paid add-ons available to extend the functionality:
- Set different featured images for each language
- Translate strings for certain themes and third-party plugins
- Add multilingual capabilities to TinyMCE widget
- Translate URLs (premium)
- Create multilingual WooCommerce site (premium)
- Display different header images depending on language (premium)
- Show or hide menu items depending on language (premium)
- Make language switcher mobile-friendly (premium)
- Adds multilingual capabilities to Slider Revolution plugin (premium).
6. qTranslate X
qTranslate X is another free plugin that works in a similar way to WPGlobus by allowing you to add multiple languages to a single post.
This plugin works with dynamic content by adding language switching buttons to admin editing pages, which allow fields to be filled in with the appropriate language. Each field can be designated as Multilanguage by the user.
- One-click local switching between languages
- Several languages built-in and supports unlimited languages
- Language customization without changing .mo and .po files
- Multilingual date and time
- One language for each URL
- Menu language switcher
The post composing and editing screen has language switcher buttons, making it easy to switch between different languages when editing posts:
Like Xili-language, qTranslate X has also not been updated for a significant amount of time (9 months at time of writing), so I would not currently recommend choosing it over other more up to date plugins.
Transposh was last updated in May 2016 (although the version in the official WordPress repository is over 2 years out of date) so it’s not the most regularly updated plugin, but I wanted to include it as it’s a popular plugin and one of the few that works by generating translations in real-time.
Rather than relying on a single source for translations, Transposh gives you the option of automatically translating text using Google, Bing, Yandex, or Baidu translation engines. This gives better results, particularly for Russian or Chinese languages.
Users also have the option to combine the automatic translation with human translation for an improved result.
8. Multisite Language Switcher
If you prefer to set up completely different sites for each language option you offer, Multisite Language Switcher is one of the most popular plugins that adds multilingual support to a Multisite installation.
The plugin translates posts, pages, custom post types, categories, tags, and custom taxonomies. At the front end the user can easily switch to a different language version of the site by using flag icons that are displayed via a shortcode or widget.
Although you’ll be creating separate posts on separate sites for each language, the plugin allows you to see everything in one dashboard and switch between the different language versions from the post editing screen easily:
MultilingualPress works in a very similar way to Multisite Language Switcher by allowing both admins and frontend users to switch between different languages in a Multisite WordPress installation. A new field is provided to create a link between posts in different languages.
- Unlimited site relationships
- Language manager with 174 languages
- Editing of posts in multiple languages from a single post editor
- Translation links provided in widget
- Translate posts, pages, categories, and tags
- All sites will still work after plugin is deactivated
- SEO-friendly URLs and permalinks
- Automatic redirection to preferred language version of post
- Ability to duplicate sites
- Set language of admin dashboard.
GTranslate is a good plugin option if you don’t want to worry about keeping your translations up to date as you edit your content and a machine-generated translation is good enough for you.
This plugin uses Google Translate to automatically translate content into one or several of the 103 languages available.
Using the plugin is a better option than just redirecting site visitors to Google Translate, as it removes the Google top frame and the “suggest better translation” text, resulting in a more professional looking translated site and a better user experience.
Other features include a language switcher widget as a dropdown or flags and Google Analytics integration.
Because this plugin doesn’t actually make any changes to the structure of your site, it’s also one of the easiest to install and use.
The plugin is free but there is also a paid version that allows you to manually edit translations, create a sub-directory or sub-domain structure for each language, and translate URLS
Summary: The Best WordPress Multilingual Plugin?
As there are so many translation plugins available for WordPress, deciding on the right one for your site can be somewhat of a challenge.
For most sites I’d recommend one of the plugins that translate pages rather than working with multiple sites, unless you have a specific reason to create a new site for each language. WPML is considered by many to be the industry standard and Polylang is a good free substitute.
You may wish to avoid plugins that have not been updated in a long time as any future updates are likely to be sporadic and support may be limited. However many of these plugins also have great reviews and work well even though the code hasn’t been changed for many months. These plugins include Xili-language, qTranslate X, Transposh, Global Translator.