Creating a bilingual WordPress

Creating a bilingual WordPress isn’t easy. After experimenting with the xili-plugins for about a week, I realized that:

  1. it is much more complicated than it should be to set up a multilingual site
  2. maybe I don’t even want a truly multilingual site

The requirements were:

  1. Some posts have to be in Swedish
  2. People that don’t read Swedish should not see posts in Swedish
  3. People that read Swedish should also see posts in English
  4. Google must find everything
  5. 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:

  1. Categories must exist in all languages but I do not intend to have any overlap of categories.
  2. 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.
  3. I had problems with the WPtouch theme, which did not present any selection of languages (no surprise really).
  4. Posts published using the WordPress app are not displayed on the front page, because the language is undefined by default.
  5. 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:

  1. I added another plugin called Simply Exclude
  2. 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.
  3. Using Simply Exclude, posts in the “In Swedish” category or descendants are excluded from the front page.
  4. 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.