Creating a bilingual WordPress isn’t easy. After experimenting with the xili-plugins for about a week, I realized that:
- it is much more complicated than it should be to set up a multilingual site
- maybe I don’t even want a truly multilingual site
The requirements were:
- Some posts have to be in Swedish
- People that don’t read Swedish should not see posts in Swedish
- People that read Swedish should also see posts in English
- Google must find everything
- The choice of language should be straight forward
At first I tried the xili-language, xili-tidy-tags and xili-dictionary plugins. While they seemed to provide what I needed, I had a few problems:
- Categories must exist in all languages but I do not intend to have any overlap of categories.
- A category might display a non-zero number of posts in the category widget, but no posts are returned when clicked on, because the posts were in another language than the one currently selected.
- I had problems with the WPtouch theme, which did not present any selection of languages (no surprise really).
- Posts published using the WordPress app are not displayed on the front page, because the language is undefined by default.
- I found the documentation and interface labels and descriptions of the xili plugin suite unusually hard to comprehend.
While I am sure most of these issues can be resolved by massaging the plugins a bit, I felt that, either I am using a product (in which case I should not have to write code) or I am developing a product (in which case I wouldn’t have downloaded a plugin in the first place).
Here’s what I did instead:
- I added another plugin called Simply Exclude
- Since English is the main language, I created a category called “in swedish”. Any other category needed for posts in Swedish will be placed with this as its ancestor.
- Using Simply Exclude, posts in the “In Swedish” category or descendants are excluded from the front page.
- I kept xili-tidy-tags, because I found it neat to have a tag cloud excluding tags in Swedish.
This solution better matches my requirements, and does not cause any problems with the mobile theme and app.