如何采用更合理的方法实现多语言界面-.doc

上传人:小** 文档编号:89507597 上传时间:2019-05-26 格式:DOC 页数:3 大小:15KB
返回 下载 相关 举报
如何采用更合理的方法实现多语言界面-.doc_第1页
第1页 / 共3页
如何采用更合理的方法实现多语言界面-.doc_第2页
第2页 / 共3页
如何采用更合理的方法实现多语言界面-.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《如何采用更合理的方法实现多语言界面-.doc》由会员分享,可在线阅读,更多相关《如何采用更合理的方法实现多语言界面-.doc(3页珍藏版)》请在金锄头文库上搜索。

1、如何采用更合理的方法实现多语言界面|在上个世纪六七十年代,计算机软件开发已步入规模化,软件工程也开始应用于软件开发。在这些阶段里,软件开发主要集中在软件开发大国的国内市场,如美国。当软件公司需要将这些软件产品推向国际市场时,如亚非拉美地区,则有必要对原有的软件进行一些修改,使得软件支持当地语言,并且将软件的界面翻译,再投放到相应的当地市场。在我国90年代初,就是因为一些国外软件进入国内市场经常需要做类似的工作,所以出现了一个新名词”汉化”。而很多人就会问为什么这些软件就不能一开始支持这些中文、日文等语种,一定要有这个市场才进行所谓”汉化”这一步。这其中有两个重要原因: 首先,在当时软件开发多语

2、言应用软件技术不成熟,数据与模块之间的耦合度高。 如果在软件开发阶段即开始考虑多语言应用,工作量增大。而且多语言应用覆盖到软件开发的很多模块,基本上只要是与用户交互的模块都有可能涉及。因此软件复杂度增大、出错机率增多,相应的产品维护工作也增加了。 其次是这些软件产品主要针对同一语种,如英语,而其他语言的应用可能不是重点。在权衡增加这部分的投入和能得到的产出后,很多软件产品放弃了多语言,只有一种语言版本。如果真要进入当地市场,只能要求用户去适应该软件,或者投入一定的人力去进行软件使用培训。特别是一些跨国公司为了保证各不同语言地区的交流,干脆只用统一的一种语言版本,如英语版本。 设计思路: 在程序

3、代码开发中,实现多语言的基本思路都是把文字数据放在程序外部,不同的语言放在不同的文件中,当需要使用的时候在调用相应的文件取出文字数据。 对于任何一种软件产品,在用户面前呈现的信息都体现在用户界面中,而这些信息就是我们在进行多语言软件设计时要处理的对象,实现多语言软件的关键就在于如何灵活地把这些信息转换成对应的语言。一旦我们能在方便并有效地实现多语言的转换,那么前面提到的三个问题基本上就可以忽略不计。那到底如何实现呢,我们从大部分软件开发的实际过程看:用户界面由各种控件对象所组成,而控件的用户界面信息又是通过控件的属性值来体现的,它是由软件生产者在制作软件时设定的。分析用户界面的实现机制,我们提

4、出多语言用户界面的设计思路,如下图所示。 多语言用户界面原理图其具体思路是:首先得到呈现在用户面前的窗口上的各个控件的标识和属性,并把它的属性值单独存放在数据文件中。在逻辑上出现了两个相关的信息载体:一是用户界面;二是用户界面信息数据文件,数据文件与用户界面由控件的标识建立联系,这样实现用户界面信息的多语言化其实就变成了如何实现用户界面与用户界面信息数据文件的映射关系。而我们可以通过一个下拉框的控件来获取用户打算使用的语言(这一部分功能一般出现在进入软件的第一个界面),当选择中文时,软件产品从用户界面信息数据文件中调用中文信息,呈现在用户面前的信息全是中文;当选择英文时,软件产品从用户界面信息

5、数据文件中调用英文信息,呈现在用户面前的信息全是英文;选择其它语言时就调用其它的语言信息。这样,这些数据信息与代码模块之间的耦合度就很低了,一旦需要更改也很方便,只需要更改对应的数据文件,不用改变代码,因此也就不需要重新编译链接代码。 实现方法: 1、语言选择及存储:其基本原理是把用户选择的语言存储起来,在每次需要进行界面信息的语言转换时再取出来,根据软件再进行相应的语言翻译工作。存储的方式有两种:文件和数据库中。 存放在文件中可以选择存放在INI配置文件中,VB对它的读取都有通用的函数,实现起来很方便。例如在INI文件中存放一个值”language=English”,在代码中我们就可以通过使

6、用”GetPrivateProfileString”函数读取出”English”这个字符串,就可以知道目前是英文版本。如果用户选择使用中文版本,将该INI文件的”language”项设置为”Chinese”即可。如此类推,如果把这项工作放到数据库中也一样可以实现。2、翻译信息的储存和读取:同样也是有文件和数据库两种存储方式。 著名的下载软件”络蚂蚁”,该程序界面的文字数据都保存在INI文件中。根据前一个问题的实现方法,得出用户选择的语言后,再到相应的INI文件中读取翻译的信息。 如果把翻译信息存放在数据库中,其思想与放在文件中大致一样。可以设计一个数据表如下。根据用户选择的语言到不同的字段取出

7、翻译的信息。12 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” o

8、Frm.Controls(i).Caption = LoadCaption(oFrm.Controls(i).Caption) 更改该控件的显示信息 Case Else End Select Next 其中主要的思想是:在Form_load事件中,遍历该窗体所有的控件,如果该控件是用于显示信息的,既调用翻译函数将相应的翻译信息反馈回来。 4、翻译函数的实现:其格式为:”函数名称(需要翻译的内容)”,函数执行完毕后返回一个字符串。其中参数”需要翻译的内容”为英文版本的内容,如”File”。翻译程序的流程图如右图,这样调用该程序时放入一个英文内容,既可以得出相应的翻译内容。 这里需要提醒开发者的是,所有需要翻译的控件信息在界面设计时,都应该是英文的。因为本翻译函数是在查找翻译信息时是以英文信息来检索的,而前面第2步中的”翻译信息的储存和读取”,所有的翻译信息是以英文信息来检索翻译后的内容。当然,开发者也可根据自身特点,可自行更改以上模式。但需要注意的是, 这篇论文来自lun收集与整理,。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号