Windows平台下,开发多语言用户界面的探析

来源 :学术理论与探索 | 被引量 : 0次 | 上传用户:awper1985
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:一种开发多语言用户界面的实现方法,将需要使用的各种语言信息存储起来,根据用户所选定的语言种类,在窗体加载时,实时动态地加载所需翻译的信息,从而实现了软件界面的多语言。
  关键词:多语言;用户界面;多语言信息存储;控件遍历。
  
  在上个世纪六七十年代,计算机软件开发已步入规模化,软件工程也开始应用于软件开发。在这些阶段里,软件开发主要集中在软件开发大国的国内市场,如美国。当软件公司需要将这些软件产品推向国际市场时,如亚非拉美地区,则有必要对原有的软件进行一些修改,使得软件支持当地语言,并且将软件的界面翻译,再投放到相应的当地市场。在我国90年代初,就是因为一些国外软件进入国内市场经常需要做类似的工作,所以出现了一个新名词-"汉化"。而很多人就会问为什么这些软件就不能一开始支持这些中文、日文等语种,一定要有这个市场才进行所谓"汉化"这一步。这其中有两个重要原因:
  首先,在当时软件开发多语言应用软件技术不成熟,数据与模块之间的耦合度高。
  如果在软件开发阶段即开始考虑多语言应用,工作量增大。而且多语言应用覆盖到软件开发的很多模块,基本上只要是与用户交互的模块都有可能涉及。因此软件复杂度增大、出错机率增多,相应的产品维护工作也增加了。
  其次是这些软件产品主要针对同一语种,如英语,而其他语言的应用可能不是重点。在权衡增加这部分的投入和能得到的产出后,很多软件产品放弃了多语言,只有一种语言版本。如果真要进入当地市场,只能要求用户去适应该软件,或者投入一定的人力去进行软件使用培训。特别是一些跨国公司为了保证各不同语言地区的交流,干脆只用统一的一种语言版本,如英语版本。
  设计思路:
  在程序代码开发中,实现多语言的基本思路都是把文字数据放在程序外部,不同的语言放在不同的文件中,当需要使用的时候在调用相应的文件取出文字数据。
  对于任何一种软件产品,在用户面前呈现的信息都体现在用户界面中,而这些信息就是我们在进行多语言软件设计时要处理的对象,实现多语言软件的关键就在于如何灵活地把这些信息转换成对应的语言。一旦我们能在方便并有效地实现多语言的转换,那么前面提到的三个问题基本上就可以忽略不计。那到底如何实现呢,我们从大部分软件开发的实际过程看:用户界面由各种控件对象所组成,而控件的用户界面信息又是通过控件的属性值来体现的,它是由软件生产者在制作软件时设定的。分析用户界面的实现机制,我们提出多语言用户界面的设计思路,如下图所示。
  


  多语言用户界面原理图其具体思路是:首先得到呈现在用户面前的窗口上的各个控件的标识和属性,并把它的属性值单独存放在数据文件中。在逻辑上出现了两个相关的信息载体:一是用户界面;二是用户界面信息数据文件,数据文件与用户界面由控件的标识建立联系,这样实现用户界面信息的多语言化其实就变成了如何实现用户界面与用户界面信息数据文件的映射关系。而我们可以通过一个下拉框的控件来获取用户打算使用的语言(这一部分功能一般出现在进入软件的第一个界面),当选择中文时,软件产品从用户界面信息数据文件中调用中文信息,呈现在用户面前的信息全是中文;当选择英文时,软件产品从用户界面信息数据文件中调用英文信息,呈现在用户面前的信息全是英文;选择其它语言时就调用其它的语言信息。这样,这些数据信息与代码模块之间的耦合度就很低了,一旦需要更改也很方便,只需要更改对应的数据文件,不用改变代码,因此也就不需要重新编译链接代码。
  实现方法:
  1、语言选择及存储:其基本原理是把用户选择的语言存储起来,在每次需要进行界面信息的语言转换时再取出来,根据软件再进行相应的语言翻译工作。存储的方式有两种:文件和数据库中。
  存放在文件中可以选择存放在INI配置文件中,VB对它的读取都有通用的函数,实现起来很方便。例如在INI文件中存放一个值"language=English",在代码中我们就可以通过使用"GetPrivateProfileString"函数读取出"English"这个字符串,就可以知道目前是英文版本。如果用户选择使用中文版本,将该INI文件的"language"项设置为"Chinese"即可。如此类推,如果把这项工作放到数据库中也一样可以实现。
  2、翻译信息的储存和读取:同样也是有文件和数据库两种存储方式。
  著名的下载软件"网络蚂蚁",该程序界面的文字数据都保存在INI文件中。根据前一个问题的实现方法,得出用户选择的语言后,再到相应的INI文件中读取翻译的信息。
  


  如果把翻译信息存放在数据库中,其思想与放在文件中大致一样。可以设计一个数据表如下。根据用户选择的语言到不同的字段取出翻译的信息。
  


  3、界面翻译的开始:VB是一种面向过程的语言,在每个窗体开始加载前有一个事件"Form_Load",该事件可在用户还没有看到窗体的实际界面实现窗体的设计。自然,也就可以改变所有控件显示的信息了。代码如下:
  For i = 0 To oFrm.Controls.Count ‘遍历窗体中所有的控件
  Select Case TypeName(oFrm.Controls(i))
  Case "Label", "Frame", "CommandButton", "CheckBox", _
  "OptionButton", "Checkbox", "ToggleButton", "Menu"
   oFrm.Controls(i).Caption = LoadCaption(oFrm.Controls(i).Caption)
   ‘更改该控件的显示信息
   Case Else
  End Select
   Next
  
  其中主要的思想是:在Form_load事件中,遍历该窗体所有的控件,如果该控件是用于显示信息的,既调用翻译函数将相应的翻译信息反馈回来。
  4、翻译函数的实现:其格式为:"函数名称(需要翻译的内容)",函数执行完毕后返回一个字符串。其中参数"需要翻译的内容"为英文版本的内容,如"File"。翻译程序的流程图如右图,这样调用该程序时放入一个英文内容,既可以得出相应的翻译内容。
  这里需要提醒开发者的是,所有需要翻译的控件信息在界面设计时,都应该是英文的。因为本翻译函数是在查找翻译信息时是以英文信息来检索的,而前面第2步中的"翻译信息的储存和读取",所有的翻译信息是以英文信息来检索翻译后的内容。当然,开发者也可根据自身特点,可自行更改以上模式。但需要注意的是,翻译函数必须要和翻译信息的存储对应上。
  


  
  三、尚需要注意几个地方:
  
  1、必须允许程序代码能够处理好各种语言字符串。例如支持中文、韩文或日文,必须能够处理双字节;
  因此出现了Unicode标准,它是一种国际字符编码标准,取代了单字节ASCII和单字节ANSI等很多字符编码标准。Unicode包含了对MicrosoftWindows、NextStep以及其他厂家使用的ASCII和ISO8859/1拉丁字符集的一对一的编码映射。最重要的是,在软件开发产生代码时,Unicode字符标准为应用程序本地化提供了一个全球的解决方案,解决了许多与多字节支持有关的问题。既:应用程序只需要很小的修改或不用修改就可以支持所有的语言。
  2、测试环境的建立:在多语言软件开发中,和别的软件开发相比,另外需要注意的是测试环境的建立。因为多语言软件是运行在不同语言的操作系统上的,因此测试环境也至少是各种语言的Windows操作系统。笔者在以往的工作实践中使用VMware来建立测试环境,效果显著。VMware是一种可以让程序员在同一时刻运行多种操作系统的虚拟软件。和用户模式Linux不同,VMware允许在同一台机器的一个工作环境中运行不同的操作系统,只要它们是能够在IntelX86系列上运行的。因此可以只在一台机器上进行不同环境的测试,而且各种环境之间的切换非常方便快捷,为多语言软件在各种操作系统上的测试提供良好的支持。
  3、在设计程序界面时,需要让程序界面能够有足够的空间显示各种语言文字。如某一控件上的中文文字为"数据库",英文为"Database",则控件本身的长度一定要能够使得两种文字完全显示,否则软件本身就不合格。这是一个在多语言软件开发中最容易出现的错误。
  
  结束语:
  
  通过以上介绍使用VB开发多语言软件的方法,使我们开发适应国际市场的多语言软件更加容易,且开发成功的软件移植性更强。通过以上实现多语言软件的解决方案,使我们更加认识到多语言软件的实现编程本身并不复杂,关键在于如何采用更合理的方法实现多语言界面。这种实现方法,不仅可应用于VB开发,同样可以适用于VC,Delphi等可视化编程语言。欢迎各位读者对本文提出批评建议,提出更好的多语言应用程序解决方案。
其他文献
实施可持续发展战略,实现经济社会与人口、资源、环境的协调持续健康发展,土地资源的可持续利用是基础。要解决好当前与长远土地利用问题,就必须搞好土地利用总体规划,对有限的土地资源进行科学规划、合理配置。"三分规划,七分治理",要真正保障土地资源可持续利用和经济社会可持续发展,土地利用总体规划的实施是关键。  土地利用总体规划的实施涉及方方面面,关系各行各业,需要各部门、各行业的协调与配合,需要运用法律
期刊
摘要:本文概述了近代世界科学活动中心转移的现象--"汤浅现象";同时论述了在新世纪中国要成为世界科学文化活动中心,中国教育应超前性发展。  关键词:"汤浅现象"。    1954年英国科学家贝尔纳在《历史上的科学》一书中定性描述了近代科学活动中心转移的现象。1962年日本科学史家汤浅光朝对1501年至1950年科技编年表里科学成果和人物传记词典中编选的科学家做统计处理,得出了近四百年来科学活动中心
期刊
随着社会的发展,城市中出现了越来越多的高层建筑,对高层建筑的外部尺度的研究是很有必要的。首先定义一下尺度,所谓的尺度就是在不同空间范围内,建筑的整体及各构成要素使人产生的感觉,是建筑物的整体或局部给人的大小印象与其真实大小之间的关系问题。它包括建筑形体的长度、宽度、整体与城市、整体与整体、整体与部分、部分与部分之间的比例关系,及对行为主体人产生的心理影响。不同的尺度带来的感觉是不一样的,有的尺度使
期刊
摘要:国内现行规范对桥梁设计提出的要求是适用、经济、安全、美观,这些要求基本上包含了人们关心的所有重要问题。现代的桥梁已不纯粹以满足功能为目的,人们对桥梁景观的要求越来越高,桥梁巨大的跨度、强烈的形体表现力、超凡的尺度均对城市或大地景观产生较大的影响,往往成为城市文化的聚焦及城市形象的窗口。  关键词:城市桥梁;景观设计;探索。    城市桥梁设计要重视其景观设计。桥梁的美是环境美的一部分,良好的
期刊
因建筑工程质量造成的建筑工程重大事故,严重危害了公民的生命安全,给国家造成巨额的经济损失。我们在对事故发生原因进行探究的同时,也不能不从刑事立法上探讨关于建筑工程重大安全事故罪规定的不足,笔者就该罪的处罚规定提出质疑与修改建议,与同仁商榷。  修订后的《中华人民共和国刑法》第一百三十七条规定:"建设单位、设计单位、施工单位、工程监理单位违反国家规定,降低工程质量标准,造成重大安全事故的,对直接责任
期刊
摘要:档案库房的科学管理,是做好档案保密、维护档案安全的基本保障。为确保国家核心秘密的安全,必须管理好绝密档案。根据工作的需要准确地判定档案的保管期限。  关键词:档案保管;保密;管理制度。    一、档案库房管理中的保密工作    档案的库房管理是档案保密的重点。  从总体上讲,档案库房应按照国家有关规定单独兴建,但是有一些不具备条件的单位,往往将库房附设在机关办公楼内。应注意的是,不是任何一间
期刊
摘要:有形建筑市场的信息化建设工作,对建立公开、公平、公正的建筑市场秩序有着十分重要的意义。当前全国有形建筑市场信息化管理工作中存在着很多不足,如何充分发挥信息技术平台在行业管理和为社会提供公共服务工作中的作用,本文提出了今后的发展思路。  关键词:有形建筑市场;信息化;建设;认识。    有形建筑市场是政府在建设领域建立的一个集服务、管理于一体的窗口,有形建筑市场的信息化建设不仅有助于政府管理部
期刊
摘要:企业是高职院校学生就业的主渠道,高职院校成为企业人才培养的主力军,高职院校思想道德教学应充分考虑企业对人才的思想道德要求。教学企业化模式就是把企业有关的要素引入教学全过程,进行教学观念、内容载体、教学方式、教学评价进行创新,才能切实增强思想道德教学的针对性和实效性。  关键词:企业视野;高职院校;思想道德。    企业是以获取最大效益为目的的社会组织,企业化是指社会其它组织为提高组织效益而运
期刊
摘要:经济全球化形势下对人才资源的争夺已经延伸到军事领域,我国的军事人才安全面临着严峻的挑战。当前,我军军事人才有机构成不合理,分布不均衡,人才浪费流失严重,人才安全已成为各国军队越来越关注的焦点问题。  关键词:经济全球化;军事人才;安全。    军事人才安全问题是指军事人才流失(到非军事领域)导致军事机密泄露、国防经济资源流失、核心和关键技术外流而损害国家安全和军队整体利益的现象。在经济全球化
期刊
近年来,随着工业化和城市化进程的加快,不可避免地征用了大量农村集体土地,各级政府认真执行土地征用的政策法规,努力做好征地补偿安置工作,保证了经济建设的用地需求。切实做好征地补偿安置工作,维护农民的合法权益,这是当前土地管理需要重点解决的突出问题,也是国土资源部门服务经济发展的一项义不容辞的职责。    一、限制征用土地地范围,减少圈占耕地行为。    近几年来,随着我区经济的不断好转,建设占用土地
期刊