DNN中的本地化——打造全球通用的程序

经常看到一些关于DNN的网站上有相应的语言包下载。通过下载语言包并安装可以可以起到对DNN应用程序本地化的效果(我们通常叫汉化)。现在就让我们看看DNN是如何进行本地化的。(想把整个本地化的来龙去脉说清楚实在太难,我组织了几天的语言也没能表达清楚,只能是列举几个概念希望能对大家看这方面的内容有帮助)

原理:

DNN中的页面全部是由用户控件组成的。本地化应用程序只需对每一个用户控件进行本地化就行了。对控件进行本地化的资源都在相应的资源文件中。

几个相关名词(DNN程序本地化中常用的几个名词自己根据理解翻译的也不知对不对):

ResourceFileRoot:本地资源文件基本名称。

如:GlobalResources.resx就是一个基本名称。

GlobalResources的其它本地化资源文件的名称就可以是GlobalResources.zh-CN.resx(中文)

GlobalResources的站点级本地化资源文件文件的名称就可以是GlobalResources.zh-CN.Portal-0.resx(中文)

resourcekey:在资源文件中查找特定的本地化内容的key

地区信息:无论是在用户注册时,还是在站点时都有相应的地区信息选择。它是决定呈现何种语言界面的依据。如下图:


在应用程序加载时,程序按照:注册用户的地区信息-->访问站点的地区信息-->系统默认的地区信息(en-US)就决定呈现界面的语言。正是因为这个顺序说明了为什么有人安装语言包后人没有得到汉化后的界面。主要是因为没有将站点、用户的语言设置为指定区域语言。

在读取本地化资源文件的顺序:先读取站点级本地化资源文件(如:*.zh-CN.Portal-0.resx)-->主机级本地化资源文件(如:*.zh-CN.resx)-->系统默认(如:*.resx)。另外每种语言还可设置一个后备语言(fallback),当第一语言本地化资源文件加载失败时可加载后备语言的本地化资源文件。这一功能程序中没有给出操作界面,只能在Locales.xml文件中修改。比如我将Chinese的第一语言设置为zh-CH(简体中文),后备语言设置为zh-TW(繁体中文)。当某一控件没有简体中文的资源文件时它就会去找繁体中文的资源文件。

<?xmlversion="1.0"encoding="UTF-8"?>

<root>

<languagename="English"key="en-US"fallback=""/>

<languagename="Deutsch"key="de-DE"fallback="en-US"/>

<languagename="Chinese"key="zh-CN"fallback="zh-TW"/>

</root>

语言包的内容:(语言包的内容都分布在各个相应App_GlobalResources文件夹下)

全局语言包文件(只列举ResourceFileRoot,相应的.zh-CH等就是本地化的资源文件)

GlobalResources.resx:存放本地化菜单的信息

SharedResources.resx:存放本地化按钮、提示信息等一些页面通用的控件的信息

TimeZones.xml:存放时区信息。

模块语言包文件:(用户模块也就是第三方模块,DesktopModules中的各个App_GlobalResources文件夹下的)

控制语言包文件:(通用的用户控件,controls中的各个App_GlobalResources文件夹下的)

管理语言包文件:(管理模块也就是实施网站后台管理的各个功能模块,admin中的各个App_GlobalResources文件夹下的)

本地化相关的程序:

admin\Localization文件中的各中操作语言包的用户控件,它们实现了主机管理下的语言管理的全部功能。这些控件有:创建语言包(Languages.ascx),编辑语言包(LanguageEditor.ascx),生成语言包(LanguagePack.ascx),编辑时区信息(TimeZoneEditor.ascx),效验语言包检查本地化文件的完整性(ResourceVerifier.ascx)。

依然存在的问题:

DNN提供的程序是可以适应全球化的。我们开发的第三方控件也可做成可适用于全球化的。但是在DNN中建设的网站内容如何进行全球化呢。比如我新建一个标签Home,我需要中国用户访问时时“首页”,美国用户访问是“Home”。同样页面中的内容也是如此。如果有这种要求该如何解决呢?我想在开发用户模块控件的时候是不是应该考虑进去。在用户添加模块时做一个语言选择。按照不同的语言输入不同的内容。这也就是说,比如我添加一个Text/HTML模块输入一段内容就可以同时多种语言版本的在呈现时就可以选择需要的一个了。

时间: 2024-10-27 16:17:01

DNN中的本地化——打造全球通用的程序的相关文章

DNN模块开发系列文章(6)——DNN中的通用控件(下)

TextEditor: 开发系列文章(6)--DNN中的通用控件(下)-通用语言模块">简介: 富文本编辑器控件.功能就不用多说了吧,大家都经常用到的.DNN利用Providers模式可以很方便的集成多种富文本编辑器.据我所知就有:FreeTextBox,FCKEditor,WebHtmlEditor,CuteEditor.大家可以通过配置web.config就可以很容易的选择使用一种了,具体的配置方法在每一个富文本编辑器Providers中应该都有详细的说明. 位置:controls\T

DNN模块开发系列文章(5)——DNN中的通用控件(上)

DNN中的通用控件主要在DotNetNuke.UI命名空间下,而与模块开发紧密相关的都在DotNetNuke.UI.UserControls中,它们是开发具有DNN风格模块不可缺少的元素. LabelControl 文章(5)--DNN中的通用控件(上)-通用语言模块"> 简介: 标签控件.这个应该是用的最多的一个控件了.主要起到在输入框前起提示作用,如果点击问号图标开可以给出详细的说明. 位置: controls\LabelControl.ascx 属性: ControlName:对应控

万达电商O2O野心:打造全球最大O2O电商公司

8月29日,万达集团.百度.腾讯在深圳举行战略合作签约仪式,宣布共同出资在香港注册成立万达电子商务公司.万达电商计划一期投资人民币50亿元,万达集团持有70%股权,百度.腾讯各持15%股权,同时将进行账号.支付等方面合作.万达集团董事长王健林,百度公司董事长兼首席执行官李彦宏,腾讯公司董事会主席兼首席执行官马化腾共同出席签约仪式.王健林表示未来电商总投入超200亿,而新成立电商公司首席执行官将由原万达电商CEO董策担任. 打造全球最大O2O电商公司 万达集团是全球领先的不动产企业.中国最大的文化

斯坦德联手InfiniBand打造全球首个CloudX架构云计算体验中心

从VCD到DVD,从U盘到手机,什么热就做什么,这种一窝蜂现象是很多国内中小企业发展的写照.而南京斯坦德公司在转型时却逆向思维,避开热门技术.在斯坦德选择InfiniBand时,InfiniBand还曲高和寡,鲜为人知.然而,在大数据.云计算.绿色IT成为产业趋势的今天,当年的冷门技术已经变得炙手可热. 虽说Mellanox在IT市场上不显山显水,但在高性能计算(HPC)领域,这家服务器与存储端到端连接解决方案供应商却大名鼎鼎.其高速互连技术不仅在全球超级计算机前10强中有50%在使用,还成全了

解析Asp.net中资源本地化的实现

asp.net   本文将从Asp.net实现资源全球化和本地化的基本概念入手,阐述在Asp.net1.1和Asp.net2.0中实现全球化和本地化的步骤.方法. 一.基本概念 1.为什么要实现资源的本地化?         我们的站点可能为全球各个国家和地区的人所浏览,每个国家和地区的人都有自身的语言文化特点.就拿咱们伟大的祖国为例,中国大陆用简体中文,港澳台则使用繁体中文.另外各个国家对于货币.数字.日历等信息的表达格式各有不同,我们国家多使用年月日的格式,而美国则是月日年.诸如此类的区别林

使用IE11构建全球通用的JavaScript应用程序

利用 Internet http://www.aliyun.com/zixun/aggregation/29809.html">Explorer 11,Web 应用程序现在可以使用 JavaScript ECMAScript 国际化 API,该功能提供有标准的 JavaScript 接口,可以实现出色的全球通用体验,例如,数字.日期.时间和货币格式和特定文化的字符串排序(比较).在 IE11 中,Web 应用可以利用 Windows 国际化库中公开的功能,包括对 364 种可用区域设置.1

DT科技评论第30期:维基解密称美中情局把全球智能设备变成麦克风进行监控窃听

DT科技评论 Data Technology Review 第 30 期           人民网研究院,阿里云研究中心 本期目录 谷歌收购数据科学创业公司Kaggle 降低人工智能门槛 众测平台HackerOne为客户提供免费漏洞管理等服务 NVIDIA发布Jetson TX2超级计算平台 目标瞄准终端人工智能 IBM Watson与Salesforce合作,如何打通CRM领域的最后一公里? Facebook开源新一代AI训练服务器 Big Basin 速度提升一倍 维基解密:美中情局把全球

云联科技打造全球最大的云游戏中文平台

近日,国内云游戏服务供应商云联科技,发布最新消息表示,已经签约阳光娱动.娱乐通等国内主要游戏发行代理商,一举拿下了数百款知名中文游戏,以打造全球最大的云游戏中文平台. 云游戏作为云计算最具代表性的应用,其原理其实很好理解,可以简单概括为:所有的游戏运算处理都由云端服务器完成,再通过零延迟的视频编码技术和高速的网络传输技术,将游戏影像即时传给用户,用户的操作指令再通过网络即时回传给服务器,从而让用户可以远程直接玩任何游戏.因为除了视频解码外,不需要终端做任何运算,所以云游戏可以运行在任何具备视频解

37游戏进入中国创新成长企业100强,继续精细化运营理念打造全球领先游戏平台

据悉,今年的<创业邦>"中国年度创新成长企业100强"奖项评选异常严格,主办方从所有参加报名以及推荐提名的企业中选出了近250家轮后公司参加100强企业的决选,这些企业涵盖IT服务.P2P.SNS.汽车服务.生活服务.医疗健康.智能硬件.在线教育等十多个领域.而最终入选100强的企业,在创新能力.成长潜力.管理能力.增长能力以及市场影响力上都有不俗的表现. 37游戏这次能获得"创业邦100"奖项,离不开总裁李逸飞先生敏锐的市场嗅觉和果断的决策能力.从37