Wednesday, July 02, 2008

Localization

I realized yesterday that this work I've been doing lately is the third time I've been involved in making an English language website support multiple languages, and/or timezones, in one way or another.

The first was at Credit Union Central of British Columbia (now named Central 1, I gather), where we merged the online banking software with the content-managed website software, and made them support French, so the entire site could be translated to support credit unions in eastern Canada, where French is much more prominent. This was the first time I had ever had to deal with character encodings, character sets, and all that fun stuff. Anyone who's done this before will understand the very heavy sarcasm around the word "fun". We also had to make the site handle multiple timezones properly, so that when someone in Toronto wants a page to appear at 9am on some day, that it shows up at 9am Toronto time, not 9am Vancouver time, where the servers were. That was my first taste of how painful dealing with timezones in programming could be.

The second time was at Riptown Media (now known as Fiver Media. Don't ask.), where we made the bodog.com site (now bodoglife.com. sigh.) support proper character sets so that we could display the Euro currency symbol, though we didn't actually do any multilingual stuff before I left. Also while I was there, I was put in charge of making sure that our site could handle daylight savings transitions without any hiccups. Later, we had to handle timezones in the application for our European launch. We had a phrase there that holds a lot of truth: Time kicks all our asses.

Now, here I am doing multilingual again, dealing with character sets and encodings, fighting with timezones, getting text translated, and finding out that labels we share between different parts of the code can't be shared for some languages. All so much fun.

In other news, I start my new job on July 9th, after taking two much needed days off, to make a 4 day weekend.

No comments: