admin管理员组

文章数量:1535274

2024年5月31日发(作者:)

维普资讯

总第225期 

2008年第7期 

计算机与数字工程 

Computer&Digital Engineering 

VO1.36 NO.7 

71 

使用PowerBuilder实现应用软件的多语言支持 

李萍张太红 

乌鲁木齐830052) (新疆农业大学计算机与信息工程学院

摘要分析当前实现多语言支持的技术。提出利用PowerBuilder实现应用软件多语言实时转换的一种新的解决方 

Unicode报表 

案,即将系统中使用的文字翻译成语言资源,存储在语言资源库中,通过对环境变量及函数的处理,实现系统的多语言支持。 

关键词 多语言

中图分类号TP311.54 

Using PowerBuilder to Implement Multilingual Support of Application Software 

Li Ping Zhang Taihong 

(Collage of Computer and Information Engineering,Xi@ang Agricultural University,Urumqi 830052) 

Abstract This paper presents the real—time convert method of implement multilingual support of application software in 

using PowerBuilder.This paper do a analysis about technology of multilingual support in application software,and raise a new 

method to implement multilingual support of application software,namely,to translate all words which appeared in system into 

language resource,through functions processing,achieve multilingual support in system. 

Key words multilingual,unicode,report table 

Class NUmber TP31 1 54 

1 引言 

随着信息时代的来临,计算机技术、网络的飞 

速发展,企业的全球化发展策略,使得应用软件多 

语言支持的重要作用及意义越来越突出。应用软 

件的多语言支持直接影响着软件应用的范围和效 

通过一个十六进制数字和前缀(U)定义一个l6位 

的数值。Unicode使用平面来描述编码空间,Uni— 

code字符构成了多文种平面(Basic Multilingual 

Plane,简称BMP)。基于Unicode的系统足以覆盖 

世界所有语言的所有字母 。 

开发支持多语言的应用软件,高级编程语言及数 

据库必须支持Unicode。PowerBuilderl0.0及Sybase 

数据库支持Unicode编码,但PowerBuilderl0.0窗口 

并不支持Unicode编码,因此,在开发系统时,应选择 

PowerBuilderl0.0以上的版本进行开发设计。 

率,实现软件的复用 。因此软件在开发设计时 

实现多语言支持功能已成为了一种趋势,以满足用 

户对语言与文化方面的需求。 

2 Unicode介绍 

Unicode是一种字符编码方法,它是由国际组 

3 多语言技术介绍 

在应用软件中,实现系统多语言的技术可分为 

三种: 

织设计,可以容纳全世界所有语言文字的编码方 

案。Unicode的学名是“Universal Multiple—Octet 

Coded Character Set”,简称为UCS 。 1)一种语言开发一个应用程序 

Unicode字符可以适用于所有已知的编码。 

它为每一个符号定义一个数字和名称,并指定字符 

和它的数值(码位),以及该值的二进制位表示法, 

该技术可用于小型的系统中,但这种方法浪费 

磁盘空间,系统开发和维护的成本很大。 

2)一个独立的应用程序内核,对应一个或多 

收稿日期:2008年3月4日,修回日期:2008年3月24日 

作者简介:李萍,女,硕士研究生,讲师,研究方向:数据库系统。张太红,男,硕士,副教授,硕上生导师,研究方向:数 

据库系统,网络信息系统。 

维普资讯

72 李萍等:使用PowerBuilder实现应用软件的多语言支持 第36卷 

个语言资源DLL¨4 J 

应用程序独立编写,将系统要支持的所有语言 

生成一个纯资源DLL,或将每种语言各生成一个 

纯资源DLL。该技术在版本维护、升级时,对纯资 

源DLL不需要编译,只需升级程序;但如果要修改 

或增加系统支持的语言时,必须将整个资源都要进 

行编译。该技术不能实现动态界面的多语言支持。 

3)引用外部语言包技术 

即将语言资源存储在外部语言包中,应用程序 

根据菜单中的语言标识,通过语言包中的键与值的 

对应,动态的更改系统界面语言。这种技术必须在 

每个窗口的每个控件设置键与语言进行对应。 

4多语言技术的实现 

通过对以上方法优缺点的分析,可以开辟一个 

实现多语言支持的新思路,具体步骤如下。 

4.1生成语言资源表 

将系统中界面、码表中出现的词,分别翻译成系 

统要支持的语言,存放在相应的字段中。比如系统支 

持汉语、英语、维吾尔语,那么语言资源表由text_han、 

text

__

ying、text

_

wei三个字段组成,分别存放系统中翻 

译成该语言的词。语言资源表结构如表1所示。 

表1语言资源表结构 

4.2设置环境变量 

系统当前显示何种语言,用户可通过设置系统 

语言的下拉框选择当前系统语言,将选择的语言存 

入全局变量gs—Language中,同时将gs—Language 

的值写入.INI文件,对环境变量进行设置。实现 

语句如下: 

①gs—Language=ddlb—language.text 

②SetProfileString(setup—path+“\bm.ini”,“set— 

tings”,“Language”,gs

Language) 

设置环境变量的优点是:系统自动记忆用户设 

置的当前语言,如果不更改当前系统的语言,用户 

就不需要每次对系统语言进行设置了。 

4.3界面多语言的实现 

1)f_getstr_lan(str)函数的设计 

用户设置系统当前语言后,系统将界面上所有 

控件的文字,在语言资源表中找到与系统当前语言 

对应的文字后进行转换。f_getsW—lan(str)函数的 

功能是根据当前系统语言,返回语言资源表中相应 

列的值。f_getstr—lan(str)函数算法如下: 

 ̄CHOOSE CASE gs—language 

a)CASE“汉语” 

SELECT DM

LANGUAGE.text

han INTO:ls

text 

FROM DM

LANGUAGE WHERE DMLANGUAGE.text

— 

han=:str; 

b)CASE“英语” 

SELECT DM

 

LANGUAGE.text

ying INTO:ls

text

FROM DM

LANGUAGE WHERE DMLANGUAGE.text

—— 

han=:str; 

END CASE 

@return is_text 

2)Translate—win()函数的设计 

系统不同的界面中有不同数量与类型的控件, 

系统中的文字都是通过控件,或动态或静态的显示 

在界面上的,如何得到这些文字就要通过Translate 

win()函数进行实现了。Translate—win()的功能 

是:循环判断界面中控件的数量及类型(包括判断 

数据窗口中所有对象数量及类型),获得所有控件 

文本属性的值,并作为实参对f—getstr—lan(str)函 

数进行调用,从而实现将控件中的文字转换成系统 

当前语言。Translate_win()函数算法如下: 

//judge all control’S type which drawn in interface 

for i=1 tO Upperbound(win.control[]) 

//getthe control’S type 

@type—obj=win.control[i].TypeOf() 

@CHOOSE CASE type_obj 

A)CASE CommandButton! 

a)get the control’S name 

b)SET obj—C.text=f_getstr_lan(obj—C.text) 

B)CASE CheckBox! 

N)CASE DataWindow! 

a get out all objects in DataWindow 

b)FOR(j=1 to total number of objects) 

I)Assigned all objects tO token[] 

LOOP 

C)FOR(J=1 to totla number of objects) 

I)IF UPPER(o6j—d.Describe(token[j]+ . 

type 、= TEXT THEN 

i)list=oH—d.Describe(token[j]+ .Text ) 

ii)list=f_getstr—lan(1ist) 

END IF 

LOOP 

END CASE 

loop 

以上算法,可将命令按钮、标签框、单选框、复 

维普资讯

第36卷(2008)第7期 计算机与数字工程 73 

选框、图片框等所有控件及数据窗口中所有对象的 

文字,按照系统当前语言进行显示。在每个窗体的 

OPEN()事件中,调用Translate—win()函数,即可 

实现菜单、界面及数据窗口的多语言转换了。 

4.4动态报表的多语言实现 

在数据库中的,因此可重复用于同类的系统中,大 

大节约了开发成本与效率;本系统中对语言资源的 

维护也相当方便,用户通过数据窗1:3可直接修改、 

添加或通过菜单可批量导人语言资源。 

本文介绍的实现多语言支持的方法已运用到 

实际的软件中,该软件已投入了使用,系统运行良 

好。希望本文能对应用软件多语言支持的实现提 

供一种思路。 

参考文献 

在PowerBuilder中,可以将动态报表通过数据 

窗口进行处理。数据窗口的多语言支持方法详见 

Translate

win()函数。报表中表头、表中栏目、非 

动态数据文字如何实现多语言支持呢?报表的非 

动态文字是由码表得来的,以地区代码表为例说明 

码表结构设计: 

地区代码表(dq—dm,dq—han,dq~ying,dq— 

wei,dq) 

[1]车文富,战茅.基于多语言代码联编技术的软件 

重用[J].小型微型计算机系统,2000,(06) 

[2]Microsoft Corporation.Developing International 

Software,Second Edition.2003 

其中dq字段存放系统当前语言对应字段的 

值。例如当前系统语言是维语,dq字段存放的就 

是dq—wei的值。因此每当系统启动时,各报表中 

与码表相关的数据自动被显示成系统当前语言。 

[3]翼斌.Windows平台下应用软件多语言支持[J]. 

计算机工程,2004,(S1) 

[4]谢又成,任萍,章兢.基于纯资源DLL多语言编程 

的实现[J].做计算机应用,2003,24(3):191~193 

[5]张剑达,张全伙.多语言用户界面的实现技术分析 

『J] 

华侨大学学报(自然科学版),2007,(01):107~108 

5 结语 

本系统采用的多语言技术的语言资源是存放 

(上接第66页) 

参数 

STR

生命科学、农业、环境监测和临床诊断等领域中得 

到了迅速地发展。不论是在分析科学、生命科学以 

及临床诊断应用方面还是在材料科学方面,电致发 

Light strLight;//光电倍增管参数 

strParamete ̄‘; 

}: 

光分析仪器都是一种非常重要的测试仪器,其应用 

越来越广泛,需求量也在不断增加。本文提出的仪 

器具有价格低廉,激励信号多于同类产品,能适用 

多种被测样品等特点,可以弥补目前市面上电致发 

光分析仪功能单一,价格昂贵不足等缺点。 

以上表述的结构中,unWave中包含了实验中 

激励信号的参数,该联合体在不同的时候对应不同 

的五种激励信号。 

3.3.2采集数据结构的定义 

从前端输出到主机的数据内容包含采集到的 

光电信号电压和电极信号电压以及这两个信号的 

放大倍数,同时还有采集到信号那一刻加载在被}贝0 

物体上的激励信号的电压。其数据结构定义如下: 

typedef struct 

参考文献 

[1]钱锋.EZ—USB FX2单片机原理、编程及应用 

[M].北京:北京航空航天大学出版社,2006:4~35 

[2]任明岩,胡海,孙金英.基于光电倍增管的光子计 

数仪设计[J].今日电子,2007,(2):72~73 

[3]朗为民.射频识别(RFID)技术原理与廊用[M]. 

北京:机械工业出版社,2006 

unsigned short int SampleAmp;//电极信号放大 

倍数 

unsigned short int LightAmp;//光电信号放大倍 

数 

short int SampleVoltage;//电极信号电压值 

short int LightVoltage;//光电信号电压值 

short int DAVoltage;//激励信号电压值 

}sampleData; 

[4]何广军.USB接口在串行通信中的应用【J .电子 

技术应用,2002,(07):58~59 

[5]扈啸,张连超.USB2.0控制器CY7C68013特点与 

应用[J].单片机与嵌入系统应用,2002,(10):48~50 

[6]荆南.基于热敏打印的心电曲线平滑算法的研究 

及实现[J].电子器件,2006,(4):1196~1199 

4 结语 

电致发光分析近年来在化学分析、药物分析、 

本文标签: 语言系统实现