蒙古文网站内容管理系统研究那顺爽双和尔(内蒙古社会科学院MIT中心;内蒙古蒙科立软件有限责任公司)摘要:本文以介绍多文种网站内容管理系统MenkCMS主要特点为切入点,探讨了网站管理系统在支持蒙古文特色版式及其他特色需求时关系到的技术问题,包括嵌入字体优化、换行算法嵌入、模糊查询、横排页面与竖排页面设置、标题整词切断、编码识别与转换等等。关键词:蒙古文;CMS系统;编码;网站1引言CMS系统就是内容管理系统(ContentManagementSystem),业界对此还没有一个特别明确的定义,一般定义为:使用统一的组织方式建立、修改、组织和发布内容的计算机软件系统。网站内容管理系统就是专门针对网站内容管理的CMS系统,可以认为是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。一般而言,网站CMS的任务是可以让网站管理者不需要学习复杂的建站技术,不需要学习太多复杂的HTML语言就能够利用CMS构建出一个风格统一、功能强大的专业网站,并以比较简单的方式来管理自己的网站。其定义可以很狭窄,即特指大型门户或商业网站的发布和管理系统;定义也可以很宽泛,即个人网站系统、Wiki系统及Blog也都可归入其中(参见维基百科)。CMS系统的诞生大大加快了网站开发速度,降低了开发成本和入门门槛。CMS系统已成为网络时代不可或缺的重要工具。可以说现在是CMS系统风行的年代,有商业的,有免费的,开源的也很多。虽然目前蒙古文网络开发需求日益旺盛,但由于操作系统平台和网络浏览器等诸多方面的限制,蒙古文网站制作还无法直接利用现有的CMS系统,必须进行改造或重新开发。二次开发似乎是非常好的捷径,就此我们进行了积极的探索。2006年,我们试图将动易CMS二次开发为支持蒙古文的CMS。可以用嵌入字体的方式解决字体显示问题,IE5.5也开始支持了writing-mode:tb-rl样式,已有充分的理由通过样式设置达到竖排效果。项目前期进展非常顺利,很快将制作出了Ulaaq网的蒙古文版,但随后,不能解决或变通了事的事情越来越多,以至于完全偏离了我们的初衷。经过半年多的反复探索发现:由于蒙古文版式的特殊性,部分功能不是只靠修修补补所能完成的,完全需要从底层去架构。最终,我们下定决心重新开发一个完全符合蒙古文特色的多文种网站内容管理系统。2MenkCMS系统软件构成蒙科立网站内容管理系统(MenkCMS)是一款支持蒙古文竖排显示的多文种网站内容管理系统。该系统紧跟Web2.0前沿技术,具有较好的安全性、稳定性和灵活性。MenkCMS在蒙古文类文字网站制作方面具有多项突破,使蒙古文网站制作和网站内容管理变得与其他语言一样简便。由于少数民族软件市场的特殊性,网站CMS系统不仅要关注网站CMS系统本身,还要关注辅助工具和终端应用等一系列问题。因此系统构成自然要比其他语种多了两项。2.1蒙古文网络终端用户应用平台:为培育广阔而稳定的蒙古文网络应用市场,我们采取免费赠送,先使用后付款,分期付款,场地授权使用,用技术和产品做投资,基础构件免费、技术服务收费,广泛开展产品使用培训,依托技术和产品承担实施重大示范工程,技术转让,鼓励少数民族事业单位全程参与产品测试,以及正确引导盗版软件市场,设立示范工程网点等众多措施。此举虽付出了代价、牺牲了短期经济利益,却使我们的技术和产品在“点、面、量、品种及市场份额”几方面均达到了最好程度。我们为网络终端用户提供免费蒙古文平台两年多,拥有最为广泛的用户群。此平台包括专业蒙古文字体十多套、蒙古文类文字读音输入法(包括传统蒙古文、托忒蒙古文、满文、锡伯文及回鹘式蒙古文读音输入法)及蒙古文竖向编辑、显示网络控件和其他相关产品[1]。针对网吧、办公室等公共场所电脑上安装客户终端软件的不便性,我们还特意开发了一款蒙古文在线输入法[1]。终端软件可以保证网站终端用户能够随时随地编辑输入蒙古文,可以对新闻条目进行评论、可以通过BBS系统发表见解、可以输入关键字进行查询。没有了终端软件,蒙古文网站就失去了互动。2.2网站内容管理系统:如前所述,蒙古文网站CMS不仅要涵盖普通网站内容管理系统所考虑的功能,还需具有蒙古文特色功能,满足蒙古文网站开发需求,如蒙古文特殊关键字过滤、蒙古文模糊全文搜索、竖向图文混排、字体嵌入等等。功能点外,在感官上也要考虑蒙古文特色需求,比如横向三行布局、竖排页面与横排页面、民族特色模版设计等。2.3辅助应用软件:此部分包括网站内容采编、翻译、审核人员日常所需软件,包括蒙古文OFFICE、蒙古文智能输入法、蒙汉双解及对译数字词典、新旧蒙古文转换系统、多编码转换系统、翻译辅助系统及蒙古文校对软件等等。这些辅助工具全部投入应用后基本能够满足用户应用需求,可使工作人员能够更有效率地工作。当然,这些工具也是终端用户不可获取的重要助手。是网络应用进一步发展的重要保证。3系统主要特点3.1模块化的大规模网站群架构可使用一套系统管理多个独立的站点,各站点之间有严格的权限限制,同时又可以在站点之间进行内容的共享和协作。通过鼠标即可轻松完成网站栏目结构的调整,网站栏目数量、层次都不受限制,可以轻松建立具有上万个栏目的网站。一个或多个模块实例组成一个页面,一个或多个页面组成站点,多个站点构成一个门户。以中国蒙古语新闻网()为例,整个网站由一个主站点,十个子站点,300多个页面,600多个模块组成。3.2类型多样、功能丰富的模块体系模块化管理是MenkCMS的一大特点。通过此机制,管理人员可以使用查阅、编辑、新增、删除内容权限,随意调整和管理网站内容。依据模块功能可分为管理模块和内容模块两大类。管理模块是提供给理人员使用的工具性模块。比如,角色管理模块,用户管理模块、管理员登录模块、站点设置管理模块、页面管理模块、模块注册管理模块、文件管理模块、站点内容统计模块、模板管理模块等等。内容模块是为浏览者提供信息的模块。目前提供的模块种类较多,比如发布各类新闻信息的新闻模块(又可分带分类的新闻模块、带有模块链接的组合新闻模块、最新新闻模块、热点新闻模块、推荐新闻模块、双语新闻模块)、Flash模块、可定制布局的友情链接模块、具有自动翻译功能的天气预报模块、文档管理模块、具有组图(多图)上传功能的图片模块(还包括最新图片模块、热点图片模块、推荐图片模块等)、与新闻模块结合使用的评论模块(用户可以对文章进行评论)、播放和下载多媒体的媒体模块、具有用户投票功能的在线调查模块、提供网上书店功能的图书模块和杂志模块、嵌入其它网站内容的Frame模块、统计网站计算语言学信息的NLP统计模块、发布静态内容的HTML模块、提供蒙古文模糊搜索功能的搜索模块等等。依据用户需求定制和开发的模块还有很多。网站页面中可以组合各种模块,组成复杂的网站页面。3.3所见即所得的管理界面和浏览界面本系统采用网站管理界面与网页浏览界面统一的管理方式,实现了所见即所得的编辑,使系统维护人员非常直观地管理网站。同一模块的管理员登录界面和用户浏览界面3.4国际化与本地化机制框架下支持多个语言文字应用通过较为完善的国际化和本地化框架支持汉、英、日及蒙古文类文字等多文种的内容管理。包括管理界面的本地化支持。此部分我们直接使用了.net的本地化机制,用户可以通过在App_GlobalResources目录中加入自己翻译好的资源就可以将本系统本地化为另一个语言版本。因为英、汉等横排文字和蒙古文竖排文字的网页布局上具有很大区别,系统在资源本地化的同时在模块设置、界面设置等很多地方都设置了横排、竖排选项,便于同一个网站中的不同模块显示不同语言文本。以网为例,传统蒙古文、新蒙文及汉文网都是利用本系统制作的。3.5自定义站点布局和外观,支持可选页面布局和自定义主题通过可选页面布局和自定义主题达到了网站外观的最大限度可定制。布局(Layout)设置可使不同站点具有不同的布局,具有非常好的后期扩展性。目前提供竖排的三列布局,横排的三行布局和基于模板的页面布局等三种。布局模式考虑采用了Table和Div+css两种,但因为蒙古文版式中div不能像横排样式一样顺畅,暂时没有支持。这两种模式在布局实现上的思想是一致的:借助模板控件的特点将页面划分为若干块,然后在每一块中放置一个容器控件,并且由容器控件负责组织加载模块。主题(Theme)就是我们常说的皮肤。当给页面应用不同主题的时候,就可以更换页面的外观。应用了主题技术,用户就可以根据自己的喜好来设置主题,这也是网站个性化的一个体现。主题分为私有和公有。公有主题在根目录Themes子目录中,每个主题为一个子目录。私有主题在具体站点子目录下的Themes目录中,也是每个主题为一个子目录。私有主题具有优先权,也就是说如果在公有和私有主题都有一个叫default的主题,那么首选选用私有主题。此策略可以保证总体定义一个主题后对个别页面或模块进行个性定制。自制主题时可先复制已有主题,并依据自己需求修改主题四个主要组成部分:CSS文件、图片描述序列、HTML模版块及对应图片即可。目前系统已有近百种主题。3.6完善的用户及角色机制,可赋予不同权限,管理不同内容;基于.net安全机制和企业级代码架构搭建的角色和用户管理系统。页面、模块及条目都可以设定查看、编辑、审核、删除等不同权限,以角色身份设定权限。依据不同权限和任务分配,支持内容上传工作流,在内容发布之前进行审核。4部分关键技术分析CMS共有的其他功能也非常多。为了支持蒙古文版式和特色功能,与其他CMS相比,区别之处随处都有,可以稍微夸张地说,关系到每个细节。下面就几个重要的问题进行讨论。4.1嵌入字体优化对于汉文网站内容管理系统来说,几乎不用考虑终端用户使用的系统中没有字体问题,习惯上也都默认为终端用户系统中至少包含几个常用字体。而对于蒙古文CMS来说,首先需要解决的问题就是字体显示问题。为此我们使用了eot嵌入字体[5],读者无需下载字体或控件(或插件)即可易随时随地浏览蒙古文网页。对于少数民族文字网站,使用嵌入字体已经不是什么新鲜事情。对我们来说更为重要的是如何改进字体,以便更好、更清楚、更快地显示。为此我们进行了如下改进:²缩小字体体积,加速传输:作为网页嵌入字体,字体体积成为影响网络传输的一个重要因素。经过多次改造目前嵌入字体体积已经缩减到原来的18分之一,明显减小了页面传输体积。改造手段包括字体参数优化、字形描绘点减少、描绘点参数优化等。²小字号清晰显示改进:蒙古文网页中的蒙古文字体与中文、英文字体相比不是模糊发虚就是有明显的锯齿,尤其是小字号的时候。针对这个问题我们分析了字体显示技术现状后采取了点阵字体嵌入和Hinting等多种技术明显提高了网站清晰度,尤其是小字号清晰度明显优于其他字体。就此话题,已有同事发表专题论文,在此不再详述。4.2蒙古文版式支持现有浏览器,包括IE早期版本和Firefox等,在竖排方面的支持非常有限,相对而言IE系列还是比较好的,尤其是IE8.0版本开始已经完全支持了蒙古文版式[]。归纳起来,目前较为常见的蒙古文网页竖排方式有以下几种,对于这些方式的详细情况可参考其他论文[1][2][3]或相关技术网站:²图片方式:将待显示的蒙古文片段使用其他文字排版工具排好后转换成图片插入网页显示,图片方式不仅可用于文章内容显示,有时也为美观需求,与其他方式结合使用。²插件方式:自制ActiveX控件或利用Flash、Silverlight等较常用第三方插件的二次开发达到蒙古文的竖排显示目的。²CSS滤镜镜像方式:制作镜像字体再配合滤镜的镜像处理,镜像过去的字符再镜像回来,视觉上正好是蒙古文版式。滤镜是通过filter样式表单属性来对HTML产生作用,虽然能较好解决视觉效果,但效率上有问题。²CSSwriting-mode样式:通过给HTML元素加上writing-mode:tb-rl来竖排。在MenkCMS中采用的是writing-mode样式方式。虽然目前IE8.0中支持了tb-lr属性