ASP.NET設計國際電子商務項目中的本地化支援

來源:互聯網
上載者:User
    在之前的文章中,我已經討論過如何進行多語言的處理,但是最近發現,本地化支援中,多語言也只能算做其中一部分,還有其它一些同樣重要的內容需要考慮,比如日期格式和數字格式。其實這部分都是出現在表現層的,不影響資料庫裡的儲存,也不影響實際業務的操作,但是如果處理不當,卻會引起非常大的麻煩,比如日期格式,中國和印尼的樣式就是不一樣的,“月”和“日”所處的位置不一樣,如果只按中國的格式來發布,會在當地造成誤解,甚至誤操作;對於數字格式,更是需要注意,在中國,用“.”表示小數點兒,而“,”表示千分符,這個表示方法,在印尼正是反著的,所以這個有可能會造成更大的誤會,在電子商務中,大部分內容都是在和時間和金錢打交道,所以很有必要提前考慮這些事情。
    在本地化支援中的多語言部分,在本文不再討論,只來說明一下上述的顯示格式問題。在本地化支援中,有一個很重要的類就是Culture,通過對這個類的使用,可以控制上述日期及數位格式。在頁面中,需要處理的控制項有多種多樣,比如Label,GridView等,在格式處理方面,與多語言部分不同,不能把控制項中的內容取出來後再做處理,因為反取出來的時候,已經全部變成了字串型,不能正常的還原為原來的格式,為此,需要在其它地方處理。
    上面說了半天,那麼如何知道要按哪種環境來處理呢?有些網站的做法是根據當前IE來判斷當前的環境,但是這種做法有時會帶來不方便,所以我的做法是把系統支援的語言全部列出來,供使用者選擇。
    在系統中,語言表格儲存體以下幾個主要欄位:
        LANG_CODE
    語言代碼
        LANG_NAME
    語言名稱
        CULTURE
    該語言所對應的本地化資訊,比如:
    LANG_CODE=CN LANG_NAME=中國 CULTURE=zh-CN
     在使用的時候,先要修改的頁面就是登入頁面,在登入頁面上,需要增加一個語言列表的下拉框,這個下拉框中的內容來源於以上的語言表,當登入成功後,需要把該語言所對應的culture同時記錄在Session中,如下例:
    Session["CULTURE"] = culture值;
    當Session中有值後,其它頁面就可以直接引用這個值了。下面就來看一下如何使用這個值。在我得到正確的解決方案之前,我實驗了很多的方式來實現這個本地化功能,最後發現,原來走的很多都是彎路,只需要幾句簡單的處理就可以搞定一切,我們要做的就是在指定的頁面做一個重載,代碼如下:
protected override void InitializeCulture()
{
string s = Request["CULTURE"];
System.Threading.Thread.CurrentThread.CurrentUICulture
= new System.Globalization.CultureInfo(s);
System.Threading.Thread.CurrentThread.CurrentCulture
= System.Globalization.CultureInfo.CreateSpecificCulture(s);
base.InitializeCulture();
}
    經過上面的重載,該頁面上所有的輸出,都會自動轉換成指定的本地化格式了,甚至包括GridView,不用做任何處理,就可以了。
    總之一句話,有簡單的方式一定要用,不要繞不必要的彎路。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.