DNN中的Localization系统

 

一直对本地化挺有兴趣。原来也做过类似的工作。但一直都觉得做得不好。所以很想看看DNN是怎么做得。在DNN的文档中/Documents/DotNetNuke Localization看了一下。觉得这篇文章写得很好。然后又特意去查了下MSDN。结果查到了这篇文章http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vbcon/html/vbwlkwalkthroughlocalizingwebforms.asp。可以看做是.net平台上web本地化的一个入门教程。

DNN利用了.net中的RSCX文件来存放各语言的内容。但DNN获取Rscx中内容的方法并不像上面MSDN中的文章那样,利用.net提供的功能类来做。而是用了操作XML文档的方法。从Localization类的GetString方法入手,一路转跳。可以了解DNN是如何操作的。但我不明白的是为什么不还利用.net提供的功能类。在DNN的文档中说是为了兼容Asp.net2.0而这样设计。还没有开发过Asp.net2.0的项目。所以没有体会到它的苦心。

在为控件本地化上,DNN为每个需要本地化的控件添加了一个resourcekey值。觉得这样做比在后台类中为各控件一一赋值更为灵活更易修改。也减轻了编码的困难。另外,如果不方便添加resourcekey的控件和其他一些地方的本地化,也可以调用GetString和其他API。使得本地化变得更为简单。呵呵。又学到一点。但是我一直找不到哪个类是完成这个赋值,望指点。

DNNlocalization系统中。可以看到一个FallBack的概念。大家可以看看Localization类中的GetResource方法以及它的注释。觉得挺有意思的。

看完这个系统后。给我的体会是,做一个系统时,不但要思考你过去做这个功能用过什么样的方法。还有特别注意你所用的平台对这个功能提供了什么特定的接口。像Localization你可以用文本,数据库来存放语言信息。但.net平台下,一个首先应该考虑的是利用rscx文件来存放。所以说,虽然平台之间可以触类旁通,但如果想真正做得十分优秀,必须对你所用的平台做到十分的了解和专精。另外。在完成功能类后,应该更多考虑不同的UI。提供更为丰富和灵活的接口。

DNN中的Localization系统

http://kb.csdn.net/.net/Articles/200602/02d337b9-2cb6-40db-945d-2b1b88c43022.html

你可能感兴趣的:(local)