ASP.NET設計國際電子商務專案中的本地化支援
在之前的文章中,我已經討論過如何進行多語言的處理,但是最近發現,本地化支援中,多語言也只能算做其中一部分,還有其它一些同樣重要的內容需要考慮,比如日期格式和數字格式。其實這部分都是出現在表現層的,不影響資料庫裡的儲存,也不影響實際業務的操作,但是如果處理不當,卻會引起非常大的麻煩,比如日期格式,中國和印尼的樣式就是不一樣的,“月”和“日”所處的位置不一樣,如果只按中國的格式來發布,會在當地造成誤解,甚至誤操作;對於數字格式,更是需要注意,在中國,用“.”表示小數點兒,而“,”表示千分符,這個表示方法,在印尼正是反著的,所以這個有可能會造成更大的誤會,在電子商務中,大部分內容都是在和時間和金錢打交道,所以很有必要提前考慮這些事情。
在本地化支援中的多語言部分,在本文不再討論,只來說明一下上述的顯示格式問題。在本地化支援中,有一個很重要的類就是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,不用做任何處理,就可以了。
總之一句話,有簡單的方式一定要用,不要繞不必要的彎路。
在本地化支援中的多語言部分,在本文不再討論,只來說明一下上述的顯示格式問題。在本地化支援中,有一個很重要的類就是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,不用做任何處理,就可以了。
總之一句話,有簡單的方式一定要用,不要繞不必要的彎路。
天道酬勤不酬怨
李鳴(aicken)原創 轉載註明
李鳴(aicken)原創 轉載註明
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-631419/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 電子商務專案監理(轉)
- 我國電子政務建設急切呼喚專案管理(轉)專案管理
- 設計電子商務網站的10個技巧網站
- 專案經理在電子政務建設中的困境(轉)
- 電子商務網站商品分類設計網站
- 網際網路電子商務PPT模板
- 國外電子商務產業鏈–資訊圖產業
- 證券電子商務:用專案管理“導航”(轉)專案管理
- 易觀國際:2013年6月中國電子商務價格戰表現分析
- PHP 電子商務PHP
- Spring Boot應用的國際化與本地化支援Spring Boot
- 配置CLion管理Qt專案國際化支援QT
- Next.js+Spring boot開源電子商務專案JSSpring Boot
- 電子商務團隊提成設計與薪酬制度——資訊圖
- 關於電子商務
- 談電子政務專案管理(轉)專案管理
- 電子商務網際網路營銷:ROI的罪與罰
- worldpay:2016年國際電子商務欺詐分析報告(附下載)
- 16個銷售單個商品的電子商務網站設計示例網站
- API資料介面在電子商務中的應用API
- iOS 國際化 && 本地化iOS
- iOS國際化(本地化)iOS
- Oracle電子商務智慧套件Oracle套件
- 使用Whisper框架快速為專案新增國際化支援框架
- 一個專案經理眼中的電子政務建設困境(轉)
- 電子商務和CRM的關係
- 易觀國際:預計2015年電子商務網路營銷市場規模達489億
- 易觀國際:2013年7月九大電子商務平板電視銷售資料彙總
- 商務部:2024年一季度我國電子商務發展情況
- 【kein】ASP.Net本地化/國際化解決方案原理和程式碼示例ASP.NET
- MongoDB ODM: 用於電子商務的MongoDBMongoDB
- 中型電子商務應用的配置是______
- 易觀國際:2015年Q1中國電子商務B2B市場營收規模達54.8億營收
- 電子商務網站建設需要明確哪些技巧?網站
- 分析:電子商務退貨率計量方法探討
- iOS語言國際化(本地化)iOS
- Django國際化與本地化指南Django
- 趣圖:“大學時學習中的程式設計”與“實際工作專案中的程式設計”程式設計