On my previous post I went over the problems I was facing while coming up with a plan to setup a multilingual site by using WordPress core alone. Since I was not happy with the management experience following that approach, I had to start looking for alternate solutions using a plugin available in the WordPress ecosystem.
In the latest projects that I’ve worked on I am usually provided with a set of plugins to bootstrap the development process and since this was what the clients had paid for (as part of the negotiations with the agencies I’ve worked with), I never had the necessity to research available options.
Here is what I managed to find with a quick search:
- WeGlot: Free version for small sites and one translation, otherwise you have to start paying. Because we are trying to go without “extra costs” I’m ruling this one out for the moment. It could be cost effective as they mention but right now I’m trying to involve only my time. Maybe in the future I’ll evaluate this.
- WPML: I’ve used this one previously in projects, but this was part of the general codebase that I was given. I always had thought this was a free one too. It was rather surprising to find out that it is not free and as it seems to be the trend, there’s a yearly subscription. It also has automatic translations with credits, so it might also provide t be useful later on.
- Translate Press: Similar to WPML, it is a yearly subscription if you want to keep receiving updates. It mentions automatic translations as well but no other mention on how it woks.
- Polylang: This one is free with a limited set of features, but from the basic list it looks like this might be the option we can go with.
Though I think could be useful in other scenarios, I won’t be creating a feature comparison table, mostly because what I’m going for is something free. So the option right now is Polylang.
The process to set it up is pretty straightforward. Install the plugin from the admin screen, set it up and pick your defaul language, then start adding translations for each page.
However, there are some annoyances with the free version:
- Duplication of Categories and Tags: If I have a tag let’s say “Mondays” I cannot just translate the label and keep the same category available cross language. I actually have to create category in spanish “Lunes” and then have english content tagged to Mondays and the translated version to “Lunes”. If I add more languages then I’m adding more (in my opinion) unnecesary content that just clutters the admin interface.
- Cannot reuse the same slug for different languages: To be fair, this was described on the features page. But such a basic and necessary feature being on the pro version feels like a way to force you to buy the pro version. The problem here is in the blog section of the site. Blog is the same in spanish and in english, so I cannot reuse the slug /blog to display the list of posts. That’s why I have blog for english and el-blog for spanish.
- More work to create a translation: Unlike some other systems (and this could be Guttemberg’s fault, not sure yet) I basically have to replicate all the layout of the source entry manually. So having to expend that extra time is bothersome.
- ACF support, not on free: So, I’m not sure if I’ll ever use ACF on this site. Basically Advanced Custom Fields is a way to setup your posts to have structured content. It’s a pretty cool plugin that makes WordPress feel more like Drupal. They have a free version and a pro version. Either way, it looks like Polylang requires payment to get this feature working.
Anyway, with that in place I was able to create this blog. Menus were easy to setup. I guess I will run into more issues once I start making more complicated stuff. However, it’s kind of sad (and could be my lack of familiarity in the ecosystem) to see that, out of the box, multilingual sites are not straightforward to set up and you actually have to start budgeting costs to figure out what is going to work. That aside, as I mentioned on the title of this post, I can live with it for the time being. I’m just happy to know that I will be able to do this with Drupal as soon as I setup the site and that I won’t need to create duplicate items.