WordPress itself comes in many languages and anyone can choose their preferred language for the user interface. But what happens if you want to display your content in two languages or more? Creating two posts, two products, two everything is not an option you should consider; the site will soon become unmaintainable and your search engine ranking will soon sink.
Thankfully, WordPress comes with built-in mechanisms that allow translation of strings (pieces of text/content) and several plugins allow for a less painful creation of a multilingual site.
In this article, we will examine some WordPress plugins that will help you set up your bilingual/multilingual website. Before delving into the options, though, let us first examine the mechanism that allows WordPress to recognize the language and offer the correct translation.
Internationalization and localization
Also known as
i18n (internationalization) and
l10n (localization). These are basically the two parts of the process to make a software able to be translated. Let us examine again the earlier mentioned term strings:
A text string is a sequence of characters that does not hold any programming value. The computer does not parse it and does not act upon it, but simply takes it as it is. For example, when you login your WordPress dashboard, the words “Dashboard”, “Home”, “Updates”, “Welcome to WordPress”, etc, are strings of text that are useful to the end user but do not mean something specific for the software.
By listing all these strings, we can provide a translation for each:
|Welcome to WordPress!||Bienvenidos a WordPress!|
Listing all the strings of a software that can be translated is the internationalization – i18n process. Taking this list and providing the translation of the text strings to our preferred language is the localization – l10n part of the process.
Without getting into too many technical details, WordPress uses GNU gettext technology for localization. The list of translatable strings, and their translations, can be provided in a
.po file. This file is automatically converted to the machine-readable
.mo file and WordPress (or any translation-aware software) becomes aware of the translated language.
WordPress itself is translated in over 160 languages.
WordPress does not support a bilingual or multilingual website by default. However there are many free plugins, as well as a very widely used commercial one, that help to making the translating process seamless.
Here are a few ways to build your multilingual WordPress website:
1- Write in your preferred language and allow machine-generated translation of your content.
This is usually done by an external translation service, such as Google or Bing Translate. This is by far the easiest method for the website owner; nevertheless, it is the least user-friendly way, as the machine translations are usually pretty bad and can completely fail the intended message. Also, depending on the language you are translating from and the language you are translating to, the language rules can be so different, that the automatically translated content can be completely misleading.
2- Write a separate post for each language
Not manually, of course; as we mentioned in the introduction, manually doing this will result in a convoluted website. The idea of this method is to use a plugin to create many copies of the same content in different language and then link all translations together. From an administrator’s point of view, this method is as simple as running a one-language site, and everything on the page gets translated. However, it has the disadvantage that the database will grow exponentially bigger, causing more overhead, slower queries and a slowed page load speed.
3- Keep all translations in the same post
The content will be provided in multiple languages in the same post, but only the preferred language will be served to the user when they request the content. This method would be the perfect one, if it did not assume that all WordPress plugins and themes are constructed in a way that allows integration with the translation plugin (which, unfortunately, is not the case as of yet).
Best WordPress Plugins Multilingual
WPML is a premium WordPress plugin. While we strive to present free options in this article, we had to mention WPML first, as it is by far the most widely used and actively maintained plugin of the list.
WPML belongs to the “#2 – Write a separate post for each language” category. It created one separate database entry, with the post content and all associated metadata for every language. As such, it translates absolutely everything; using WPML feels much like managing a traditional, one-language WordPress site. Every plugin and theme that is translation-ready is compatible and every plugin and theme that has already a translation in your preferred language, with WPML will display everything in that language when it is selected.
It also offers a translations management panel directly on the WordPress dashboard. Your users don’t need to know anymore about
.po files, they can manage and monitor the translations from their dashboard.
In short, WPML is an all-around solution, very widely used, well-tested, robust and with awesome support. It does suffer with the aforementioned drawbacks – database size can grow too big, too fast, especially on a WooCommerce-based website, however it still the most complete solution available for a multilingual website.
In the same vein of WPML, Polylang is another “#2 – Write a separate post for each language” category plugin that is offered for free at wordpress.org plugin directory. Polylang‘s business model is to offer the base plugin for free, and extra features as well as support in their pro option.
Polylang is compatible with the API of WPML, which means that you can import your WPML translations and use them with the Polylang plugin.
Besides the basic plugin, their Pro plugin offers some extra features, such as use the same URL slug for translations, integration with various plugins and more. Additionally, the Polylang team offers an extra, premium addon for integration with WooCommerce. Price-wise, it seems more affordable to buy WPML, rather than use Polylang free plus WooCommerce integration addon.
qTranslate X is the descendant of an abandoned plugin called qTranslate, that has been adopted by the community and got updated to be compatible with more recent WordPress versions, and bumped with new features.
Unfortunately, qTranslate X plugin seems to also be in a state of abandonment, as the last update was over a year ago. There is clearly still some interest for the plugin and the community still submits patches to their GitHub repo, so maybe it gets revived.
The reason that this plugin made this list is that:
- It is a “#3 – Keep all translations in the same post” category plugin, keeping all the translations in the same post.
- It is very popular still, with over 100 000 active installs.
- The original codebase of Qian Qin’s qTranslate plugin, apparently was exceptionally good, which made the community to create numerous forks.
- It is completely open source, with no premium version.
Various free plugins strive to integrate qTranslate X with popular WordPress plugins, such as WooCommerce, Yoast SEO, Events Made Easy and Advanced Custom Fields. Many are in a similar state of abandonment; they do still work with WordPress v4.8.2, however some custom coding might be needed to ensure smooth functioning.
WPGlobus is a newer and interesting player in the field of multilingual WordPress sites. Like qTranslate X, it is a “#3 – Keep all translations in the same post” category plugin.
Its main advantages against qTranslate X are that:
- It is activelly developped.
- It has fairly good and active free support on WordPress support forum
- It has several additional addons, free or paid, that integrate it with popular plugins, such as Visual Composer, WooCommerce (paid addon), Events Calendar, MailChimp for WordPress and more.
I personally believe that WPGlobus should be a plugin to watch, as qTranslate X might fade away soon and the approach of adding all languages to one single entry, rather than multiplying the database entries exponentially seems more economical and solid for e-commerce sites with hundreds of products.
We felt that this list would not be complete without mentioning a “#1 – Write in your preferred language and allow machine-generated translation of your content” category plugin.
Google Language Translator seems to be a viable contender for this, as previous popular plugins such as Transposh WordPress Translation haven’t been updated in years.
Google Language Translator offers a shortcode to place in your posts and pages, as well as a dropdown language selector that allows your users to view a Google translated version of your content.
This obviously comes with all the drawbacks of machine-translation: Depending on the language you are translating from and the language you are translating to, the resulting translation can be more or less understandable, easy-to-read and accurate. A general rule of thumb would be that, machine translation from or to English, and from or to a Latin-based language (French, Italian, Spanish, etc) tends to be more accurate than translating from, say, Finnish to Thai.
Before drawing any conclusion, let us add a small note. WPML offers a comparison table between the features of various multilingual plugins. It comes up as a link to an exit-intend popup. It is worth mentioning that it is fairly inaccurate. Several features that it marks as non-existent in competitors’ plugins, are, in fact, provided from these plugins. We will not go into detail; however we believe that this comparison table might not have been updated in some time, and misses features that their competitors actually do offer.
Finally, as a concluding note, we believe that WPML is actually the most robust solution and the easiest one for administrators that do not have the technical skills or the time to fight their code for integration of their plugins with the multilingual versions of their websites.
However, the other options here are also well tested by the community and can offer a great starting point for building a multilingual website.