About the author
I recently started Journeyman Consultancy & Services, a business that is focused on IT support, IT maintenance, solutions and software in Singapore. Initially, the site was designed in simple HTML, and in English. Subsequently, when I had a Chinese customer, it occurred to me that I should display Chinese in my website as well.
Since I'm hosting my own site, and using ASP.NET, I decided to localize nearly the entire website. Initially, the web site auto-detected the visitor's display language (only Chinese and English are supported) and customized the output accordingly. Then, while examining the web logs, it occurred to me that I did not cater for the use case where a web crawler visited my site. So I added two links, one English, and one 中文. There's two reasons for this.
Firstly, web crawlers do not display what they search, so they do not inform the site what language it can read, which is the reason why I provided the two links, so that web crawlers can index my site in the two languages.
Secondly, other people who visited my site typically gets their language displayed correctly, but in case they do not, the two links above provide a proper localized version of my site.
How is the localization done? It is done by using ASP.NET's support for localization, for example, here's how the keywords for my site are written:
The <%$Resources:Keywords%> markup informs ASP.NET to look into the appropriate language resource file for a key named Keywords, take its value and place it in the location where the markup occur.
In addition, I also wrote some C# code that detects some of the visiting browser's parameters and adjusted the output accordingly.
The two language links are written as follows:
The rest of my entire web site uses the same <%$Resources: Key%> pattern for localization as well.
That covers the technical design of the web site. The implementation is even way more simpler.
I set up Microsoft IIS 7 to point to a directory, and copied the files that comprised the web site to the directory. Since the web server hosts multiple sites, I had to set the host name for my site as well. I then updated the DNS accordingly. In anticipation of lots of visitors, I enabled caching on IIS, and also set an expiry on the site files so that visitors always get updated information.
Summary of Technologies used: C#, HTML, ASP.NET, IIS, DNS, localization
I began the design of my web site with a few goals. They are as follows: One main page One contact us
A method pointer is now the same as a global procedure, ie, procedure of object = procedure.