内容发布更新时间 : 2024/11/17 12:36:13星期一 下面是文章的全部内容请认真阅读。
基础知识学习系列
本地化DevExpress控件
文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改
文件标识: 基础知识学习系列-DevExpress控件本地化 文件编号: 当前版本: V1.0 作 者: 陈洪 完成日期: 2007年3月24日星期六 版本控制
版本号 V1.0
作者 陈洪 参与者 起止日期 备注 2007年3月24日 文档建立 修改记录说明
版本号 作者 参与者 日期 修改说明 1. 文档导读
本文档以颜色区分内容的重要性和不同性,阅读本文档时请注意以下事项: 1. 红色部分表示需要注意的重点内容;(加粗的尤甚) 2. 蓝色部分表示相应于前版本新增的内容; 3. 紫色部分表示跟前版本不同的内容;
本文档的变动历史都记录在“修改记录说明”一节。本文通过用到英文单词的地方,也是本人理解不是很深刻的地方,如果有什么好的建议,欢迎指正。不胜感激!我的email:sendreams@hotmail.com。
2. 基础知识
2.1. Net Framework知识
在Visual Studio .NET里面,本地化资源,比如字符串、图片之类的,都是跟culture(语言文化)有关,这些东西都是存储在单独的文件中并且根据相应的culture设定进行加载,如果要了解怎样加载你自己的本地化资源,那就需要了解资源文件的组织结构关系:
1. .Net在加载资源文件的时候,它选取资源文件的方式,可以说是按照自下而上的方式,写过程序的都
知道继承的概念,有父类之类之说,可以说父类就是上层建筑,也就是那些伟大的领导们,而子类就是广大百姓了,呵呵,这个比喻不是很恰当,纯粹娱乐。Framework里面,父类就对应english,也是唯一的一种没有自身资源文件的,其实也并不是没有,而是存在main assembly里面。
2. 在父类之下,可以有多种多样的culture的资源,我们说的culture是指语言文化并不是指windows控
制面板中的区域,比如,法国(French简写为“fr”)就是一个culture。其实english简写成“en”也是一个culture,只不过它比较特别,没办法,谁让现在的it世界是在老外统治着呢。
3. 在这些culture之下,又有一些特定区域的culture,这些特定区域的culture,它有两点属性,不仅包含
语言文化,还加上区域特色,就好比中国有中国的文化,而福建还有它自身的区域性文化。偶们的官方语言是普通话,而我们福建还有N多种方言,鄙人不才,也就只会一种咱们家乡的本地话,在同事们听来,有点外星人嫌疑。老美也有老美的文化,有美式英语和英式英语区分,今天刚看了“姨妈的后现代生活”,就是因为她只会英式英语而不追逐美式英语这个大潮流而被解聘了。
在一个程序试图加载一个资源的时候,好比一个字符串,并且还没有找到,它就会沿着上面所说的层次结构一层一层的往上爬,直到找到为止。如果仕途有这么顺利那就好了,呵呵。
在进行本地话的过程中,最好的方法是建立相对通用的资源文件,也就是上文中第2条中的而不是第3条中,就好比我们在汉化的过程中,一般汉化成普通话,而不是汉化成福建话,或者是台湾话。也就是越通用越好,假设你有一个French Belgian (\的资源文件,而且它的直接上级就立马到了最高级english,那么当你的区域设置改变成French Canadian,系统降会寻找对应的\资源,而此时已经无法找到,就会选用处于main assambly中的资源,也就是英文。下图显示的就是你不想看到的场景。