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 。使得本地化变得更为简单。呵呵。又学到一点。但是我一直找不到哪个类是完成这个赋值,望指点。
DNN localization 系统中。可以看到一个 FallBack 的概念。大家可以看看 Localization 类中的 GetResource方法以及它的注释。觉得挺有意思的。
看完这个系统后。给我的体会是,做一个系统时,不但要思考你过去做这个功能用过什么样的方法。还有特别注意你所用的平台对这个功能提供了什么特定的接口。像Localization你可以用文本,数据库来存放语言信息。但.net平台下,一个首先应该考虑的是利用rscx文件来存放。所以说,虽然平台之间可以触类旁通,但如果想真正做得十分优秀,必须对你所用的平台做到十分的了解和专精。另外。在完成功能类后,应该更多考虑不同的UI。提供更为丰富和灵活的接口。

你可能感兴趣的:(职场,系统,localization,休闲,DNN)