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,不用做任何处理,就可以了。

    总之一句话,有简单的方式一定要用,不要绕不必要的弯路。


本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/archive/2010/04/06/1705285.html,如需转载请自行联系原作者

相关文章
|
5天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
5天前
|
存储 开发框架 NoSQL
ASP.NET WEB——项目中Cookie与Session的用法
ASP.NET WEB——项目中Cookie与Session的用法
43 0
|
5天前
|
开发框架 前端开发 .NET
ASP.NET WEB——项目创建与文件上传操作
ASP.NET WEB——项目创建与文件上传操作
50 0
|
5天前
|
开发框架 .NET Python
分享79个ASP电子商务源码,总有一款适合您
分享79个ASP电子商务源码,总有一款适合您
20 3
|
5天前
|
SQL 开发框架 .NET
分享111个ASP电子商务源码,总有一款适合您
分享111个ASP电子商务源码,总有一款适合您
44 5
|
5天前
|
SQL 开发框架 .NET
分享78个ASP电子商务源码,总有一款适合您
分享78个ASP电子商务源码,总有一款适合您
32 5
|
5天前
|
开发框架 安全 .NET
分享70个ASP电子商务源码,总有一款适合您
分享70个ASP电子商务源码,总有一款适合您
23 2
|
5天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
5天前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
5天前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
38 0

热门文章

最新文章