Showing posts with label i18n. Show all posts
Showing posts with label i18n. Show all posts

Monday, May 5, 2008

Google's AdSense for an international website


This is a technical post explaining how to use Google's AdSense on a multiple languages website.

The problem: having a dynamic website that is available in many languages is great but there has to be a way to let AdSense know which languages the user is currently using so relevant ads would appear in that user's language.

Solution: as I've researched the issue for colnect.com (available in 25 languages), it seems the only way to let AdSense know the page's language is by using different URIs for each language. There's currently no way to pass the language as a parameter to the JavaScript responsible for showing the ads.

The following pictures show the same page in different languages. Note that the AdSense ads match the language of the page.



On colnect.com, each link is now prefixed by two letters which signal which language is used. Thus:

http://telecards.colnect.com/fr/browse.php

Refers to a French-language (fr) page while:

http://telecards.colnect.com/es/browse.php

refers to a Spanish-language (es) page.

Calling the relevant PHP script and converting the language prefix to a parameter is easily done using Apache's mod_rewrite.

An important issue I had to address is what happens when one user sends a link or publishes a link. Let's say I know both Spanish and English and prefer to view colnect.com in Spanish. However, perhaps some of my contacts know Hebrew and English but not Spanish. Thus if I send a Spanish-language link to a Hebrew-speaking user, it would be a shame if the site would show up in Spanish and confuse the other person.

To address this issue the language information is saved in the session and the user is redirected to the appropriate link according to his session language. If no session information is found, the language referred to in the link is used. The language is also saved in the user's account so if one logs in using a page in any language, upon a successful log in the language is changed to the previously chosen one

Here's the example (the two letters note the language: es = Spanish, en = English):

If you're visiting the site for the first time, this link will show a Spanish page:

http://telecards.colnect.com/es/browsecoll.php?filter_country=y

Now, if you change the language to English (on the bottom of the side menu - there's a combo-box), you will be redirected to:

http://telecards.colnect.com/en/browsecoll.php?filter_country=y

So now, if you try a Spanish link such as:

http://telecards.colnect.com/es/browsecoll.php?filter_country=y&country=105

You'll automatically be redirected to:

http://telecards.colnect.com/en/browsecoll.php?filter_country=y&country=105

You can change into any of the 25 supported languages and you'll see the AdSense ads now appear in the correct language:

| English | العربية | Български | 汉字 | Hrvatski | Česky | Nederlands | Suomi | Français | Deutsch | Ελληνικά | עברית | Magyar | Italiano | 우리말 | Polski | Português BR | Português PT | Română | Русский | Slovenščina | Español | Svenska | ภาษาไทย | Türkçe |

Hopefully this post gave a sufficient outline to a working solution.

Sunday, May 4, 2008

Internationalizing the site


colnect.com is available in 25 languages:
English | العربية | Български | 汉字 | Hrvatski | Česky | Nederlands | Suomi | Français | Deutsch | Ελληνικά | עברית | Magyar | Italiano | 우리말 | Polski | Português BR | Português PT | Română | Русский | Slovenščina | Español | Svenska | ภาษาไทย | Türkçe |

Personally, I can communicate well in only 3 languages, fake some conversation in a few more and use some phrases to amuse an audience in a party. That still doesn't amount to 25 languages with their different scripts.

How was this done? The answer is simple: when your users love your project and enjoy its services, the nicer ones are keen to help when asked nicely.

The technology behind translations is quite straight-forward although different approaches exist. The important thing is to provide the translators with an easy interface they can understand. Handing out a text file full of expressions needing translations is a bad call for two reasons: it's boring for the translators and the translations may be out of context.

On the side of this post you can see the way translators (collectors) on colnect.com - Islands Phonecards Database are helping out. As they use the site, small "translate" icons appear next to expressions that haven't been translated yet. Clicking one such icon pops out a window that allows submitting the translation. When translated, the "translate" icon is gone. It can later be restored to correct the translation - that's why you see so many of them in the picture attached.

There are most issues about creating a multi-lingual collectors website but I prefer to keep my posts short.

Link and Search

Did you like reading it? Stay in the loop via RSS. Thanks :)