The very first web site I wrote, back in 1999, was the original version of this site – a bunch of static HTML pages.
In early 2000, I wrote my first ASP 3.0 web site for the company where I was working. The office I worked at was in the US, but the company was Canadian, and had many branch offices in Canada. So, after building the site in English, they asked me to change it to also be in French.
I have to admit, the way I did it wasn’t very sophisticated.
The user could select their language (English or French) on the login page, I stored that in a session variable. At the top of each ASP page, I had an “if” statement that assigned text values to variables, based on the language stored in the session variable. Then, when writing out the HTML, I used the variable value for the labels on the pages.
Not fancy, but it was quick, simple, and it worked.
Since then, I worked for several large companies in the US, and never again was asked to make an application handle multiple languages, or deal with different date and numeric formats, based on the country.
However, I moved out of the US about three years ago, and have recently decided that my default way to write programs will be to build in internationalization capabilities from the start.
There are likely to be times when I decide it’s not appropriate – a custom Windows service that doesn’t output any messages, maybe some other apps. So this isn’t going to be some rule I blindly follow.
But, the web truly is global, and app stores are open to people from almost every country. It’s a matter of basic economics – if I want to have more users, and customers, instead of spending time writing more websites and apps, it would be much easier and faster to make the current ones available to more people.
Looking at the stats for this blog, over 18% of the visitors don’t have English as their preferred language. Since this is a programming blog, and many non-English-speaking programmers still know enough English to read technical documents, that probably isn’t a huge problem. But I take it as a sign that there is a demand to be more “global”.
So, I’m going to be writing more about how I do internationalization, globalization, and localization. I’m even considering doing a book on the techniques for developing global apps in .Net.
If that sounds like something you’d be interested in, please leave a comment and let me know what you’d like to learn.
And if you’re already internationalizing everything you write, please let me know what you’ve found. Has it helped, or has it just been a waste of time?