Industry guru Dave Taylor offers free tech support on a wide variety of technical and business topics, including HTML, Apple iPhone, online advertising, Cascading Style Sheets, Web design, management, Unix, Linux, search engine optimization, online dating, Mac OS X, shell script programming 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 Stumble Upon    

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

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

The reason your does not work is your using a CMS system which uses GET method to retrieve the page information - as google is not the same URL anymore the GET method is not pointing correctly thus it wont work.

Posted by: Darren at May 28, 2008 2:56 AM

Hello,

I added the code but it doesn't work. I have no idea why, just nothing happens when I select another language.

Can you help?

Thanks so much, Val

Posted by: val at May 29, 2008 6:22 AM

Is there a way to somehow link back to the content in the original language? I could use some help with this.

TIA.

Posted by: Ron at August 15, 2008 11:56 AM

You could add a "back to main language" link or a home link to your domain, this will send the user back to the original language as by translatibng they actually navigate away from your site.

Posted by: Darren at August 19, 2008 2:25 AM

Does any one know how to use a translator in an outlook email so that it converts the email into other languages remaining inside the Outlook??

Posted by: Georgie Imtiaz at September 4, 2008 4:57 AM

Your may also be interested in http://www.conveythis.com which offers a free button you can insert into your layout (kind of like addthis.com) which creates a little pop-up/drown-down menu that allows visitors to select their translator and language of preference without having to ever actually leave the page. It's a pretty convenient and simple solution to this situation.

Posted by: Steven at October 2, 2008 10:31 AM

Does this work for all browsers? I am unfamiliar with java.

Posted by: .oOLimOo. at December 2, 2008 7:00 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.









Uniblue: Free Virus Scan

Follow me on Twitter @DaveTaylor

Search
Find just the answers you seek from among our 2300+ 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
Book Links
© 2002 - 2009 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]
"Ask Dave Taylor®" is a registered trademark of Intuitive Systems, LLC.