Checklist for Multilingual website development

I sometimes wish if i could have a checklist or to do list to follow before actually starting developing something new. Checklists are great as they, in certain situations, prove to be more helpful than full length articles due to their short and precise nature. The checklist I am going to propose in this post is solely for those who want to have some idea about multilingual websites and the core steps involved in developing them. By just skimming through the steps below, one can calculate the amount of time required to translate a website into a another language. This checklist is nothing but merely a set of suggestions and recommendations based upon my very recent experience that I had while translating a website from English to Arabic.
  • First and foremost, a seperate style sheet can be created for each language. I have created two in my project en-US-main.css and ar-SA-main.css. Using a separate style sheet while doing the translation guarantees that the existing design and layout will remain intact.

  • We should never embed any content or label text/values directly into html page like this:
    <p>embedded text.</p>
    <input id="lblFirstName" type="label">First Name</input>
    <input id="lblLastName" type="label">Last Name</input>

    By using the above approach, we take away the privilege that we get through resource files to switch culture specific content at runtime. It is a best practice to create language specific resource files like *.RESOURCE or *.RESX which help setting labels and messages on the fly. In the below code i am calling GetLabelTring() function which pulls labels values either from en-US.resouces file or ar-SA.resources based upon the selected culture.
    <p>GetLabelString("L1000") </p> {html side}
    lblFirstName.Text = GetLabelString("L1001") {ASP side}
    lblLastName.Text = GetLabelString("L1002") {ASP side}

  • The current culture can be saved into session variables which will help maintain the same language across all of the pages for a specific session.

  • The labels and messages can be cached if the frequency of their modification is low which will result in better performance and speed.

  • We can use HTML DIR attribute if the language we are targeting is written right to left such as Arabic and Hebrew. This attribute specifies the base direction (RTL, LTR) of text, or sections of text.

    HTML Markup









    Resulting Display










    We can also specify a single base direction for all of the content available on the website by using the DIR attribute with HTML tag.

  • For everything else on the page other than content can be controlled through style sheets. If our website is blessed with DIV-based layout, we can be rest assured that the style sheet attributes such as float, background-position and margin/padding etc. will take care of the direction (right-to-left / left-to-right) for most of the HTML elements.

  • That’s all from the HTML side. I would like to add a couple of bits here in regards insertion of multilingual text in the database table. The idea is to insert a separate row for every culture and do it for all of the content pages of the website. Of course, we need to enable the Unicode support on the table.


    RecID

    PageName

    PageText

    LangID

    PageID

    PageTitle

    101

    My Website Home Page

    Welcome to my page

    1

    2002

    Home Page

    102

    الصفحة الرئيسية الموقع الخاص بي

    مرحباً بك في الصفحة الخاصة بي

    2

    2002

    الصفحة الرئيسية (Home Page)



  • Last but not least, there are many free translation tools available on the internet that can be of great help for cross-checking the content between the languages. Two such great tools that I have extensively used are Bing Translator and Google Translate.

Podcast - Vernon Bryce from Kenexa

Vernon Bryce, the managing partner of Kenexa was interviewed by dubaieye1038 radio station. Use the blow link to check it out.

Click to download the podcast

Default SMTP Server in Vista

If you are one of those who are running their development environment in Windows Vista and like to test email code, then you might be disappointed to know that default SMTP server is not included in vista. It used to be a part of Windows XP, but for some good reason Microsoft decided to take it out. The only reason I can think of is that Vista is not intended be used as a production server. It is suggested that developers using Vista in a development environment should target IIS6/Windows Server 2003 or IIS7/Longhorn Server in beta or release form starting next year.

Now, to test the email code there are multiple alternatives proposed over the internet. One of them is to use free smtp server like windows Free SMTP Server  and  SmarterMail

The solution which I opted was to target default virtual SMTP server in Windown Server 2003 which is almost always available as a testing server (local server) in software development houses. In order to successfully relaying an email message, you might need to provide authentication settings. Here is the picture of my settings on Vista to send email to local testing server (sh-sv-1) running windows 2003.


No more DAV Protocol for Outlook

Microsoft just announced that it is preparing to stop using DAV protocol for Outlook® which means that all the outlook users either will have to switch to Windows Live Mail (recommended) or change their outlook settings to use well known POP3 protocol to communicate with the mail server.

Get the full news here:

Alternatives to DAV for accessing Hotmail on Outlook, Outlook Express, or Entourage