So, I live in Montreal, Quebec (that’s Canada). You might wonder why that is relevant information on a site like this, where we deal with WordPress development.
Over here, English and French are spoken. And so the issue of having a fully bilingual site comes up more often than not. Using WordPress, do we tackle this by creating 2 separate websites, each in its own language? Or maybe just create one site but have 2 versions for each and every individual post/page?
Sounds a little inefficient, but admittedly that’s what I used to do back in the day… Nowadays it’s a lot easier, with the aid of multilingual plugins. Let’s see what are options are!
In short: there’s only a handful of options that do the trick completely. At the top of the list of available plugins we find WPML, by far the most popular of them all. Even though it’s not free (more on this later), it has earned its popularity by simply being the most complete package. For a lot of people, this one is the baseline of all translation plugins and that all others are compared against.
So that’s exactly what we’re going to do, in three parts.
In the first part (this post), we’ll talk about the basic features of WPML (although soon enough, you’ll see that it’s so functional, “basic” doesn’t sound like the proper word for it).
Part 2 will deal with the more advanced features of WPML.
The 3rd and last part will look at some alternatives, as WPML is not the only translation method out there.
So, without further ado….let’s introduce WPML!
Installing WPML is easy. Once you obtain it from https://wpml.org, you install it like any other plugin (either by uploading the ZIP file through the Plugins menu in your admin, or by unzipping it and uploading the entire folder to your wp-content/plugins folder). After activation, a new menu item appears in your WordPress admin, where you can configure various kinds of settings that mostly speak for themselves. Which languages are you planning on using? Do you want your two languages in various subdomains and ) or subfolders and )? Do you want a language switch link as a dropdown menu or as a list item?
…and a few more. That’s the kind of overall setting you define here.
Your content in more than one language
At the very basic level, WPML lets you create translations for your content (posts and pages) quite easily. For every post or page, you can have one or more “counterparts” in another language.
Creating a translation of a post is a 2-step process.
The first step is to create a translated version of your original post — this only takes one click from your post editing screen. The result is a duplicate post that’s virtually a clone of the original (same title, same content, same categories).
The second step is to actually translate the title and content of the newly created post. That’s up to you of course, since WPML is not a translation tool, so you will do that like any other post or page.
You now have 2 posts, with different IDs, different titles and different content, but the system will know that both these posts are linked. WPML knows that these posts are translations of eachother and will keep them “linked” internally.
If this is done for all posts and pages in your site, you’re already almost done, since all your content now appears twice in your site (or more, depending on how many languages you want).
The beauty of this is that even though you now have at least twice the amount of content, your site only shows the posts and pages of ONE language at any given time. You won’t see all languages mixed up in your list of posts, and it’s very easy to switch between languages. One moment you see all posts in one language, and after a click you see all those posts in another.
On the web site, switching between languages is just as easy. Whether you’re viewing a single post, single page, or list/archive of posts, clicking the language switcher will take you directly to the translation(s) of whatever you’re viewing.
The whole idea about WPML is that no matter where you are on the site (or the admin), whatever you are viewing at any given time, a translated version of that is only a single click away.
Well…provided that the translation has been entered in the system, naturally.
For anything you’ve set up in Categories, it would make sense to create translated versions of those as well. A category is a form of content classification, and from a language point of view, a category is just a label that is attached to a post.
Once you’ve created a category in your original language, go into the editing screen and under “Translate”, select “Add” for the new translation. A new category will be automatically created, and all you have to do is name it properly, using your other language.
You can also do this right whenever you create a new category — just pick which language this category belongs to, and if it’s not your default language, you will be asked of which original category this is a translation of.
Once you have a post that is assigned to one or more categories, and you translate the post, it will automatically be assigned to the same categories in another language.
For example, you have an English category “News” with a French translation “Nouvelles”. Any post in the category “News” that will be translated to French, will then automaticlly be assigned to the category “Nouvelles”.
When you have any menus set up, with items that point to pages, it is just as easy to translate those. You can easily synchronize menus, and every menu item will then subsequently (and logically) point to the other language’s counterparts of those pages.
You have a menu item linking to an English “ABOUT” page? Translate the menu and that particular menu item will link to the other language of that same “ABOUT” page.
You can mix it up a little more, because sometimes menus contain “hard” links (to URLs, for example) and so once you’ve translated a menu, you may want to add a little more or change things around in another language.
Before you start translating your site, it pays to plan it properly. It makes sense to take care of the Categories first, because they need to be ready once you create posts.
Then create all your posts and pages — these need to be available once you create your menus.
Your menus can be created from that point, and then you are done with your website’s basic structure.
Of course, each of these three steps comes down to the same process; first, create your item in the original language, then with a click (or 2) create its counterpart in another language. Every time, you’re “cloning” your items in the isolated space of a different language.
And so here we have the generics of WPML. It may sound a little confusing, and sometimes it is. But, like many other plugins, it is also the kind of plugin you’ll “get” once you use it yourself.
Let’s discuss pricing before we move on to the more advanced features. If you’re OK with just having the basics translated (pretty much what we discussed above), you’ll pay €39 for a license in the first year. This comes with updates and support.
If you need more functionality, such as translation of widgets, themes, custom fields, attachment management, etc. (some of them we will address in the next part of this article), then the first year is €99.
However, two groups of people can get WPML for free: non-profits, and theme/plugin developers (as long as their work is distributed under the GPL license). You’ll have to request your license specifically though, and you may be asked to explain what it will be used for.
For a lot of people, this is already enough. But for developers who want to expand on the translation options and get more than these basics, there is a lot more available. We’ll address these additional features in part 2: WPML’s advanced features.