By default, WordPress is not a multi-lingual platform. It was not designed to support more than one language at a time. Fortunately the WordPress community has solved this problem by developing plugins that will translate your website or content into another language.
There are several methods to making your WordPress site multi-lingual. Some are more difficult than others and some get quite complex. In general, making your WordPress site multi-lingual is done by installing WordPress in more than one language and using a plugin so that users can switch between them. Most plugins will require you to manually install .mo language files. Many of them make this easy by letting you choose the languages from a list and selecting to install them. The languages are then installed for you.
There are several plugins for making your WordPress site multi-lingual. They work in different ways and some might be better suited to your specific needs than others. The WordPress codex describes several methods of making your WordPress site multi-lingual. Here is a look at the methods.
Manage multilingual posts in one post per language
Plugins use language files to perform the translation. Translations are linked together creating a group. Users can switch between the translations. This creates a complex architecture.
Store all language alternatives for each post in the same post
This one uses meta tags to determine the languages and only displays the active language the user is using. You can edit each language side by side. Language tags might have to be installed manually.
Manage translations on the generated page instead of using a post context
The plugin will perform a machine-generated translation on the fly as it is asked by the user. Users can even help with the translation by making suggestions or by making changes manually. This is a great choice because it can translate anything. It doesn’t have to be content that was pre-created or tagged. Unfortunately, machine-translation can be iffy and won’t always provide good results.
Plugins that direct you to external translation services
This works by an automatic translation that is outside of the website. It uses outside services such as Google Translate. These are easy to install and use and any content can be translated. This one also has the issue of automated translation being iffy and not always providing good results.
Plugins that link together separate WordPress network (multisite) installations for each language by pinging back and forth
Separate sites, all in different languages and on the same domain or server, connected together. They will run the same theme and plugin. This method works smoothly, but requires independent management of multiple sites. Due to the multiple site administration I don’t recommend this method as your first option as it becomes time-consuming. It requires server administration experience.
There are a few basic types of multilingual plugins. They use differing methods to supply the translation. Here is a quick look at some of the best plugins in each category.
This plugin will let you manage multilingual posts in one post per language. It will translate your pages, posts, custom types, menus, and the text within your theme. It runs a multilingual site from a single WordPress install. You can choose from over 40 languages and add your own language variants. You can also arrange different language contents in the same domain under different language directories, in sub-domains, or in different domains. It’s completely compatible with all WordPress themes and plugins.
This is a premium plugin with several options for purchase. The first is Multilingual Blog for $29 for the first year. It will translate posts, pages, custom types, tags, categories, custom taxonomy, and menus. It includes standard translation controls and browser language detection. The second is Multilingual CMS for $79 for the first year. It adds translation of custom fields, e-commerce support, translation of widgets, texts in theme and plugins, manage attachments in different languages, multi-user translation management, XLIFF interface, CMS navigation, and sticky links. The next is Multilingual CMS Lifetime for $195. It is a lifetime membership and never needs renewing.
This is another plugin that will let you manage multilingual posts in one post per language. It is one of the most downloaded and highest rated multilingual plugins, and for good reason. It packs a lot of the power and features of WPML in a free package. It is very easy to use and has lots of translation options. You write your posts, pages, categories, and tags as normal, and then define the language for it to be translated into. You can use as many languages as you want.
It will translate posts, pages, media, categories, post tags, menus, widgets, custom post types, custom taxonomies, sticky posts, post formats, and RSS feeds. The language can be set by the content or by the language code in URL. You can also use a different domain for each language if you want. It even includes a customizable language switcher that can be used as a widget or in the navigation menu.
Using it is fairly straightforward. You add the languages you want by selecting them from the dropdown menu and selecting the Add New Language button. Then you can set all of your default settings, which determines what the default language is and what gets translated and what does not. Then you drag and drop a widget that provides the languages to translate into from a menu. This places the names of the languages that you’ve chosen in the sidebar for visitors to select from.
It also gives you a box in the visual editor with languages to choose from.
I found this one to be easy to set up and use. For free this is not a bad way to convert your WordPress site into a multi-lingual site.
This one allows you to manage multilingual posts in one post per language. You can translate your content into multiple languages and provides a nice widget so readers can select the language that they want to see.
You add languages by selecting them from the list in the dashboard (including Klingon, and yes I had to add it just because). You can set the order that it appears in the list. Once you add the language you have to choose the server to update the .mo files from before any translation will occur.
Once you’ve installed the languages you want, you simply write your post as normal and publish. Then you can come back to it and select to copy the post into another language. The post will translate into the new language and saves as a draft. You can publish that post for readers in that language to see. You can refresh the list and translate again into another language.
It comes with three widgets:
- List of languages
- List of recent posts
- Recent comments list
You can use any or all of them in your sidebar.
The list of languages includes HTML tags so you can mark them up any way you want. The names of the languages appear in the sidebar as links. Clicking on a link changes to the content that was written for that language.
This one isn’t bad for free. It does have a lot of setup that you have to go through before it will do any translating.
Bogo lets you create a multi-lingual blog from a single WordPress install by using WordPress’s built-in localization capability. You can manage multilingual posts in one post per language. It adds a dropdown list at the top of your site that users can select their languages from. You can also include the language switcher in a post, page, or widget as a shortcode. Users can also choose their language on the dashboard or in their profile page. It will translate posts and pages.
In order to use it you have to install the languages on your site. Bogo has a long list of languages that you can install. You click on the ones you want and it will install it for you. It will change your dashboard to match your selected language. You can change it easily from the language switcher at the top of the screen.
This is one of the easiest to use of all the multi-lingual plugins that I tried. You just choose the languages you want installed and they appear as options in the language switcher.
This free plugin lets you store all language alternatives for each post in the same post. It is an update to another plugin that has not updated in a while known as qTranslate. This one replaces it and brings those same features to the latest edition of WordPress.
It includes a language chooser widget. Your readers can select the language they want and it changes your content (or at least the content that was created after the install) to that language. It also changes your menus.
When you add a post it gives you fields so you can type in a title for each language, and tabs so you can create content for each language. If you only post the title in one language, when the reader switches to a different language the title will show the original language in parenthesis.
This is definitely one of the easiest multi-lingual plugins that I’ve used.
This one lets you manage translations on the generated page instead of using a post context. It has lots of advanced features. It will automatically translate 92 languages. It actually allows your users to help in the translation process. It will also integrate with a professional translation service (subscription required). It has a widget that you can place in your sidebar. Your visitors can choose a language from the dropdown box.
It has a nice dashboard with lots of features. To get started, you first choose the languages that you want. Next, place the widget where you want it and you’re done! Your visitors can choose from the dropdown box and every element of your site is translated into the language they selected.
This free plugin is extremely easy to set up and use. One thing that I like about this one is you don’t have to create content in each language. Also, all of your previous content gets translated. This is a major improvement over some of the other plugins. They will only translate posts that were created with the plugin installed.
For translation settings you can connect to your MSN API, Google API, and a professional translating service called One Hour Translation.
Google Language Translator
This free plugin connects to the Google Translate external translation service. It provides translations for 81 languages. It places a small box on your site that users can click on to perform the translation. You can also post the button in pages, posts, and in the sidebar with a shortcode.
You choose the languages you want in the settings menu. The flags of these languages will show when users click on the widget that shows at the bottom right corner of your page. It will show the Google Translate toolbar at the top after it does the translation.
There are lots of adjustments in the settings. You can adjust the size of the flags, apply CSS styles, change how and where the widget displays, turn the flags on or off, use translation management, apply Google Analytics, and more. You can place it in the header or footer of your theme. You can also save a single language usage in your navigation, posts, and pages.
This one is easy to install and simple to use. There is also a premium version for $15 that adds a manual translation module, allows you to exclude content from being translated, allows you to drag and drop flags into a different order, full support, and lots more.
The button doesn’t take much space and the flags look elegant.
Multisite Language Switcher
Plugins that link together separate WordPress network (multisite) installations for each language by pinging back and forth. If you do decide to use a multisite installation, Multisite Language Switcher is the most popular choice. It lets you manage translations of posts, pages, custom post types, categories, tags, and custom taxonomies. It will work with the WordPress MU Domain Mapping plugin to set up multiple sites across multiple domains on the same server.
You can use the widget, a shortcode, or a content_filter which displays a hint to the user if a translation is available. It places a switcher on the site that users can use to change from one language to another.
You can even add it directly into your theme files using this the code:
<?php if ( function_exists( ‘the_msls’ ) ) the_msls(); ?>
It’s free and only works with multisite installations. I recommend trying one of the other methods first as this method requires you to maintain multiple sites.
Spend some time evaluating your options before settling on a plugin. Some plugins are easier to change than others. For a plugin that creates a new post for each language, if you change to another plugin you might have to start over with creating the posts.
Choose the model that best adapts to your content strategy.
Make a backup of your database first. Depending on which plugins you choose, they can make significant modifications to your database.
Use a test server if one is available. This will help ensure that the plugin is compatible with your theme and plugins before going live.
These plugins offer great translation abilities, but they do so using different methods. You are sure to find one on this list that will fit your specific needs.
How about you? Have you made your WordPress site multi-lingual? Did you use one of the methods described here, or did you use a different method? Do you have anything to add? I’d like to hear about it in the comments below!