Web design and development experiment.

Multilingual solutions for a wordpress installation

From my point of view the internet has became a really crowded place. No more “build it and they will come” mentality. Today’s internet business have started to compete for every single user and the need to address all potential users is more important then ever.

This is where multilingual web-sites and web-applications come into place. Limiting your business to a single language or expanding it to target users from all over the world could mean the difference between failure and success.

The big players on the internet seem to get this. Google, Microsoft, Yahoo and many more offer they services in numerous languages. The introduction of tools like Google Language Tools, Yahoo! Babel Fish and similar ones have opened the multilingual doors for the masses. You can now view an entire web-page in your native language at the click of the mouse.

However things are not quite there! Even though the automated translation of a web-site is acceptable for getting a general idea of the content, mistakes are common and things can and are misinterpreted between languages.

The theory behind multilingual web-design

Implementing a static HTML web-site in multiple languages is quite simple. Just duplicate the content in a /lang1/ folder and translate the content. For web-sites that don’t need to be updated very often this a rather good solution, giving you a lot of flexibility. This type of multilingual implementation has been around from the birth of the internet.

With the appearance of dynamic web-site things started to get complicated. Content became separated from HTML to some extent and databases transformed the way we store data. To translate every piece of information in a modern web-site, things just had to be implemented differently. The old way of copy and paste in a different folder is no longer an option. Extra work needed to manage two, three or even more dynamic systems (one for each language) just isn’t justified. As a result complex implementations of the solution transformed the way we think about multilingual web-sites.

Multilingual WordPress

There are quite a few options out there for WordPress users to translate the content of their blogs or web-pages. I’ll first make a list of the different implementations and them try and talk more about each one in particular.

The “Two-Tree” concept ( we use “language” categories )

Automated translation (using google languages or babelfish)

Manual translation using plugins ( I could only find one really good plugin that can do that so we’ll look into that)

Semi-automated payed translation. (this is rather an ingenious concept and I believe the people who created the service will have a lot to gain from it)

All these solutions have both advantages and disadvantages. From my experience a multilingual web-site is an added complication with absolutely no easy way out. There are just so many things that could go wrong: encoding, special characters, the content to maintain increases with every extra lanuage, not everything can be easily translated (anything other then the post body and title needs extra steps to translate), communication between the site admin and the translators introduces a lot of undesired lag into the project and let’s not forget the big bill from a professional translator.

But as I said in the beginning all this effort could be well worth. Even if you are promoting a service or product that is difficult to ship / commercialize / support abroad the extra traffic alone could be worth a lot. A few trackbacks could significantly improve your google ranking in search that would in turn bring you even more traffic. The way business is done on the internet is that of a Three Way Market and every bit of extra traffic helps.

1. The “Two-Tree” concept

This is the “old” way to do it. This does not imply “old-fashioned” as if this is an inferior way to the new possibility! It just fits another purpose.

Both lang1 and lang2 web-sites are part of the same wordpress installation.

First you would need to create two pages: en and ro. Then create the rest of the pages for every other page you want. Our en page will be the home page for English and ro will be the home page for Romanian. When we create a new page, for example the Contact page, will select the page parent to be en. Repeat this for every page and language and by no time you’ll have a proper multilingual structure!

The listing in the edit pages tab inside wordpress would look something like this:

Next we’ll implement a similar structure for our categories. Two “en” and “ro” categories will hold out translated posts. A custom made theme would be required to display the right menus and content for each language in particular.

This might not be a really efficient way to translate one’s web-blog but it dosen’t require any plugins. Is quite SEO friendly but unless you make serious changes to the way your theme manages the menus it won’t be user friendly.

2. Automated translation (using google languages or babelfish)

This is one type of translation that is just great for blogs. It’s really simple to use, free, fast to implement (don’t have to send anything to a translator). Chances are your non English users will use these services directly from Google or Yahoo so this saves them quite a few clicks which is always a good thing.

The obvious disadvantage is the quality of the translation. By no means this should be used for a respectable business. While one can understand the meaning and general feeling of the article, even the smallest misspell in the initial language will render this service useless, there are grammar mistakes and the words are not always translated in their intended meaning (based on context).

There are quite a few plugins available for wordpress that automatically translate your content but the one I used and recommend is Global Translator.

With Global Translator plugin for WordPress one can:

translate the blog in 34 languages

provide the translations by using Google Translation Engine, Babel Fish, Promt or FreeTranslations.com

use the permalinks by adding the language code at the beginning of all your URI. For example the english version on www.domain.com/mycategory/mypost will be automatically transformed in www.domain.com/en/mycategory/mypost

use the built in Fast Caching System. Drastically reduction of the risk of temporarily ban from translation engines.

you can easily customize the appearance of the translation bar

As you can see you can do a lot with Global Translator. It also translates the front-end WordPress interface (words like Posts, Pages, Read More, etc). Again my recommendation is to use this plugin for your blog if you are trying to reach a larger audience but try and don’t use it for large web-sites unless you know what you are doing (due to the quality of the translation).

3. Manual translation using plugins

Translating your wordpress installation to the last word could be a really hard thing to do, especially for non-technical wordpress users. Although a blog has a really straight forward structure and dosen’t pose so many problems, developing a multilingual web-site using wordpress is a different story all together. A web-site can have different widgets on different pages, might use plugins that have an front-end interface that is not translatable and will need to have at least a contact form that will be available in several languages.

Solutions? One thing is certain: it’s not impossible . Although it might be somewhat unintuitive at first one can create a fully translated web-site (for a blog this is quite easy to do).

By unintuitive I mean users might have to use <!–:en–><!–:–> tags for widget translation and even template changes in order to get the entire web-site translated.

However there are good new. The latest version of the qTranslate plugin has a really easy to use interface when translating post and pages. They offer One-Click-Switching between the languages. One can change the language as easy as switching between Visual and HTML editors!

Here are a few screen-shots of the plugin:

Other options that make qTranslate such a great plugin includes:

No more for adding special characters or strings to separate your multilingual texts! – qTranslate will handle them almost everywhere for you

No need to edit the plugin file to get your language working! – Use the comfortable and intuitive Configuration Page

Comes with many languages already built in! – English, German, Simplified Chinese and a lot of others

Multilingual Text in Templates without the need to change Gettext Databases/.mo files – Use Language Tags with Gettext!

Choose one of 3 Modes to make your URLs pretty and SEO-friendly. – The everywhere compatible ?lang=en, simple and beautiful /en/foo/ or nice and neat en.yoursite.com

One language per URL – Users and SEO will thank you for not mixing content.

From all these options a few are really useful, particularly the SEO-friendly URLs and the automatic download of Gettext Database/.mo files that you should have otherwise downloaded then and then uploaded them to your WordPress installation.

There is a really useful forum available in case you need help with the plugin or have suggestions. Qian Qin ( the author ) responds fast to enquirers and there’s quite a big community around it.

4.Semi-automated payed translation

Their system fetches posts and pages that require translation (new or updated).

Professional translators do the translation. The translation retains all formating, embedded objects, links, etc.

Translation is saved on WordPress. It can be saved on the original blog or on an independent blog.

Comments are moderated in your own language. You can reply in your language and they’ll translate it instantly.

Sound good right? But wait there’s even more! You can even have a Multi-lingual contact form, where your visitors can contact you in their language and you can respond in your language.

If you have the cash to invest in a ongoing translation of your articles in different languages this plugin is for you. I haven’t personally tested their system and don’t know what is the quality of the translation (they are using payed translators so by all means it will be incomparable better then a automated translation).

The pricing is… well… compared to Romanian translators, expensive. They have a quote for text translation so you can paste your text and receive a instant price. For a word count of 470 I received a cost to translate per language of 32.9 USD. This means that for a larger article you could end up paying over 100$ per/language/article. If this is a good price for you then this service is the way to go!

Conclusions

Multilingual web-sites are the least an annoyance and can transform in a nightmare if you try to rush things up ( I think I lost an entire day on a past project because two persons worked on it with two different editors and different encoding and every special character was displayed as question mark or a square! ).

Luckily open source has evolved quite a lot in the past years and now we can make use of out of the box solutions that really make your life easy. Even if more powerful CMS’s like Joomla! or Drupal have advanced multilingual solutions, WordPress is not far behind and I hope this article can bring the reader a bit closer to solving it’s multilingual problems.

Also don’t forget if you ever need a localized theme for your project Thematic is that theme (currently translated in 7 languages)!

Disclaimer: I have no affiliation with iCanLocalize.com and do not receive commissions on sales.

good writeup. I looked at all the current wordpress translation tools. and I think qTranslate is the best. It worked right on install, whereas the others needed some tweaking to work properly. The latest version adds support for quick tags, so instead of the arcane you can just use [:en]the english here[:de]deutch heir[:es]espanol aqui. no need to even close the tags. Another thing I love about qtranslate is that it switches the language of the posts as well as the language of the theme and admin, all at once.

@Qian Qiu – I noticed that just a few days ago while upgrading to the latest version and browsing through the settings! I’ll try and make time to update the article! I really like your work and I can’t wait to see what other features you’ll to add to qTranslate (maybe slug translation? 😀 )

Hi, great post. Our company has developed a WordPress plugin for translation of websites. It povides high quality translation by allowing post-editing of machine translated content using a translation community. More information on http://wordpress.org/extend/plugins/gts-translation/

Thank you for introducing qTranslate! It’s really nice, but I am a traditionalist and still think that machines cannot really replace human work. Obviously, when you only need a basic message to be converted from one language system to another (even risking inconsistency, badly used vocabulary and major structure mistakes), a computer-based translator might be a perfect solution.

However, when you need a professional service and your important documents need translating and/or certifying, the best thing you can do is to use a professional translation agency, where the service is based on human translators deeply caring about your documents.