Industry guru Dave Taylor answers free tech support questions about a wide variety of business and technical topics, including blogging, Google AdSense, MySpace, Sony PSP, Apple iPod, Mp3 players, management, Linux, SEO, Mac OS X, Facebook, Twitter, LinkedIn and Microsoft Windows.

How can I make my site available in multiple languages?

I know that it's not optimal, but I want to make the product information pages on my online store available in a bunch of different languages without paying the major bucks to get a professional translator to maintain them. I know that services like Babelfish let you enter a URL and get the contents translated automatically, but is there some way to hook that into a site directly?


Dave's Answer:

You're right, and you're right. It is the case that machine translation through services like Altavista's Babelfish are inferior to having a human translate them (for a good discussion of why this is the case, please see my earlier article why human translators are better than machine translation).

Nonetheless, if you want something quick and dirty and are willing to accept that the results might be somewhat cockeyed, weird, puzzling or inadvertently amusing, then automated machine translation can be a good option.

Rather than Altavista's service, however, I'm more of a fan of Google's Translation Service (I swear, I'm not on Google's payroll, I just like their products and services!).

Fortunately for both of us, my friend Brad Feld recently added an automatic-translation feature to his popular blog and his programmer blogged about it, including showing his custom code to achieve the translation. Sweet indeed!

Ross (the programmer) shows the following as a self-contained snippet of Javascript + HTML to have a pull-down translation capability:

<select name="translate" style="height:18px; font-size:10px;" onchange="javascript:window.location = http://www.google.com/translate_c?hl=en&langpair=en%7C' + this.value + '&u=' + window.location.href;">
    <option value="">Translate This Page</option>
    <option value="ar">Arabic</option>
    <option value="zh-CN">Chinese Simplified</option>
    <option value="zh-TW">Chinese Traditional</option>
    <option value="nl">Dutch</option>
    <option value="fr">French</option>
    <option value="de">German</option>
    <option value="el">Greek</option>
    <option value="it">Italian</option>
    <option value="ja">Japanese</option>
    <option value="ko">Korean</option>
    <option value="pt">Portuguese</option>
    <option value="ru">Russian</option>
    <option value="es">Spanish</option>           
</select>

As you can see, it supports quite a few of the languages Google offers, for better or worse. If you don't want to support them all, just axe a few lines from the code block, so you can, for example, just offer translation into French, Spanish and Italian if you wanted.

How's it work? Well, here's an example with the code actually live:

Try it, check out this very page in Russian or Greek. Cool, eh?

You'll notice that Ross has added some CSS style attributes to the select statement too: if you don't like how he's set things up, you can definitely tweak 'em to get a different result.

Hope that helps you add this capability to your site. Let us know how it works out with your overseas and non-English speaking customers.



Help others find this article at Del.icio.us, Digg, Netscape, Reddit, and Simpy.

Subscribe!

Never miss another useful Q&A article again! Subscribe to AskDaveTaylor with Google Reader.

Comments

This is great, we have a small business in the uk and have many European customers.. It works nicely, how do you automatically remove the google frame?

Posted by: daily at February 14, 2008 8:30 AM

how do you automatically remove the google frame?

Posted by: VINCE at February 21, 2008 1:46 AM

for some reason i keep getting a error on my website have any ideas how to fix it? check it out www.ocsc.info

Posted by: rambow245 at March 16, 2008 7:18 PM

Hi Dave,

It would be really useful if you could figure how to automatically remove the frame.

Posted by: Darren at April 8, 2008 2:25 AM

Hi Guys,

I now know how to remove the frame, it dones by a simple break out script. Include the below in the body of the website you are translating:

<script language="javascript" type="text/javascript">
if (top.location != self.location) {
top.location.replace(self.location); // pop to top
}
</script>

It will remove the frame after translation.

Posted by: Darren at April 9, 2008 9:44 AM

I have a lot to say, but ...
Starbucks coffee cup I have a lot to say, and questions of my own for that matter, but most of all I'd like to say thank you for all your efforts on this Web site by buying you a chai!

I do have a comment, now that you mention it!









Remember personal info?


Please note that I will never send you any unsolicited commercial email. Ever.

While I'm at it, please note that by submitting a question or comment you're agreeing to my terms of service, which are: you relinquish any subsequent rights of ownership to your material by submitting it on this site.









Search
Find just the answers you seek from among our 1700+ free tech support articles by using our Lijit search engine.


Help!





Subscribe to
Ask Dave Taylor!

Add to Google Reader
Add to My Yahoo!
Subscribe in NewsGator Online

RDF   XML

Free Updates!
Sign up and get free weekly updates and special offers on books, seminars, workshops and more.


Recent Entries
Join the List!
Join my author info mailing list, where you'll learn about my upcoming books, speaking gigs, and more!


Book Links
© 2002 - 2008 by Dave Taylor. All Rights Reserved.

Note: This web site is for the purpose of disseminating information for educational purposes, free of charge, for the benefit of all visitors. We take great care to provide quality information. However, we do not guarantee, and accept no legal liability whatsoever arising from or connected to, the accuracy, reliability, currency or completeness of any material contained on this web site or on any linked site.

[whiteboard marker tray]