Following on from my last post about translating your website, Dennis alerted me to the fact that there are WordPress plugins to do this too. Well, I don’t know why I didn’t think of that – I haven’t yet been able to think up a desirable bit of functionality that isn’t contained in a plugin – why should website translation be any different!
Sure enough, a quick search turned up several candidates. The Global Translator plugin looked the best, so I went right ahead and installed it – it’s those bunch of flags near the top of my sidebar.
From what I’ve seen so far, this plugin has the following benefits over using the plain Google widget:
Translation occurs at the site level
What I mean by that is that once you select a language, any other pages from the site will be shown to you in the same language (as opposed to the widget approach where you have to translate each page individually). This makes for a much more seamless user experience.
Choice of translation service
The plugin currently supports four translation services: Google Translation Engine, Babel Fish, Promt and FreeTranslations.com. Which one you use is completely up to you, and invisible to your site visitors. So if one isn’t giving you the results you need, you can switch to a different one in the background without a problem.
Translated pages are cached
Translated versions of your pages and posts are stored locally within your site, from where they can be served directly to visitors without having to be re-translated with each request. For medium- to high-traffic sites this drastically reduces the load on the translation service, which is to your benefit because if you make too many requests to these services you risk being banned – this is certainly the case with the Google service; I’m not sure about the others.
The cache is non-intrusive
Cached pages are created in ordinary files, not in your database. To be honest, I can’t see that it would be a problem if they were in the database – most other plugins don’t have any such qualms – but there you go. And before you start worrying about how much space this is going to consume, relax – there is an option to compress the cache, which seems to work just fine.
Automatic locale-specific URLs
The plugin automatically inserts specific language codes into the URLs of your translated pages. So, for example the German version of a post becomes
http://some-domain.com/de/the-url, the Dutch becomes
http://some-domain.com/nl/the-url, etc. An interesting question is how these are handled by the search engine bots, and whether these translated pages will start to show up in other-locale versions of Google etc? I’m speculating a little bit here, but because the URL is unique for each language-version of the page, I think they will be viewed (and thus indexed) as seperate pages. And because they’re in different languages, they will not be regarded as duplicate content. If this is the case, it seems to me like a great way of attracting more search traffic – you can bet I’ll be watching my stats over the next couple of weeks to see if this is indeed the case!
This is pure personal taste, but I prefer the look of the flags to the Google widget, and you also have more control over how they’re displayed.
Banned for excessive numbers of requests
I’ve seen various references around and about to the translation services banning different sites because of making too many (or too frequent) requests. I believe this issue has been resolved in the Global Translator plugin by building in a configurable throttle setting to prevent this from happening (this is also where the cache comes into its own). Because of this though, don’t expect your entire site to be indexed immediately. With a 5-minute delay between requests (the default), it’s going to take a few days for most average-size sites to be translated into all 30-odd languages that are available.
All-in-all this looks like a nifty bit of code, so hats off to the guys at Nothing2Hide for all the hard work. I for one am looking forward to seeing how it performs over the next few weeks.