CN1547116A - 软件中语言资源本地化的实现方法 - Google Patents

软件中语言资源本地化的实现方法 Download PDF

Info

Publication number
CN1547116A
CN1547116A CNA2003101125608A CN200310112560A CN1547116A CN 1547116 A CN1547116 A CN 1547116A CN A2003101125608 A CNA2003101125608 A CN A2003101125608A CN 200310112560 A CN200310112560 A CN 200310112560A CN 1547116 A CN1547116 A CN 1547116A
Authority
CN
China
Prior art keywords
resource
language
language resource
software
source program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2003101125608A
Other languages
English (en)
Other versions
CN1261867C (zh
Inventor
宋朝青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LIANYUNGANG RESEARCH INSTITUTE OF NANJING UNIVERSITY OF SCIENCE AND TECHNOLOGY
Original Assignee
Emerson Network Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Emerson Network Power Co Ltd filed Critical Emerson Network Power Co Ltd
Priority to CN 200310112560 priority Critical patent/CN1261867C/zh
Publication of CN1547116A publication Critical patent/CN1547116A/zh
Application granted granted Critical
Publication of CN1261867C publication Critical patent/CN1261867C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件中语言资源本地化的实现方法,该方法为:根据第一语言资源在源程序中存在的特征,从所述软件源程序的语句中查找第一语言资源;采用字符串常量替代查找到的每一处第一语言资源,将每一处第一语言资源赋值给对应的字符串常量并写入到资源文件,在该资源文件中形成第一语言资源部分,其中所述字符串常量在所述源程序中全局唯一;根据资源文件中的第一语言资源部分生成对应的第二语言资源部分;所述软件运行时根据操作系统类型加载所述资源文件中的第一语言资源部分或第二语言资源部分;或者根据所述资源文件中的第二语言资源部分,用第二语言资源替换源程序中对应的字符串常量,生成第二语言版本的源程序。

Description

软件中语言资源本地化的实现方法
技术领域
本发明涉及计算软件的处理技术,尤其涉及一种软件中语言资源本地化的实现方法。
背景技术
软件源程序中的语言资源通常是指软件人机界面上的菜单项、标题、提示说明、软件操作运行中弹出的提示信息、各类输出信息等等。
一般的软件本地化版本生成方法是在软件开发伊始就着手进行多语言版本的筹划工作,最常见的做法是将所有开发中出现的中文资源以资源ID的方式置于资源文件当中,在资源文件中提供资源的多语言版本,由软件在运行时决定加载何种资源。但纵观国内一些投入了大量人力、财力开发出来的优秀专业软件,在开发阶段并未考虑软件的本地化,它们已经投入实际运用,等到想要进军国际市场,会发现在较短时间内开发出英文版本简直是个噩梦。虽然可通过手工方式直接将软件源代码中的中文替换成西文来实现西文版本的程序,但这样方法存在以下缺点:
首先,手工对代码中的中英文词条的替换工作繁琐,而翻译工作本身就有很大变数,一个词条可能要举一反三,手动替换确实效率低下;
其次,采用手工方式进行替换容易出错,使产品的可靠性难以得到保证;
其三,版本一致性难以得到保证;
最后,维护成本高,一套软件需要维护中文,英文两个版本。
发明内容
本发明的目的在于提供一种软件中语言资源本地化的实现方法,以解决现有技术中手工对单语言版本的软件进行本地化时存在工作量大和可靠性差的问题。
实现本发明的技术方案:
一种软件中语言资源本地化的实现方法,由具有信息处理能力的装置将软件中第一语言资源生成对应第二语言资源,并可在该软件中使用该第二语言资源;所述方法包括下步骤:
A、根据第一语言资源在源程序中存在的特征,从所述软件源程序的语句中查找第一语言资源;
B、采用字符串常量替代查找到的每一处第一语言资源,将每一处第一语言资源赋值给对应的字符串常量并写入到资源文件,在该资源文件中形成第一语言资源部分,其中所述字符串常量在所述源程序中全局唯一;
C、根据资源文件中的第一语言资源部分生成对应的第二语言资源部分;
D、所述软件运行时根据操作系统类型加载所述资源文件中的第一语言资源部分或第二语言资源部分。
其中:
步骤C包括:
C1、将所述资源文件中的第一语言写入资源字典,并在该资源字典中通过翻译生成每一条第一语言资源对应的第二语言资源;
C2、根据资源文件中的第一语言资源,采用完全匹配方式检索资源字典得到对应的第二语言资源,将该第二语言资源赋值给第一语言资源对应的字符串常量并写入资源文件,以在该资源文件中生成第二语言资源部分。
一种软件中语言资源本地化的实现方法,由具有信息处理能力的装置将软件中第一语言资源生成对应第二语言资源,并可在该软件中使用该第二语言资源;所述方法包括下步骤:
(1)根据第一语言资源在源程序中存在的特征,从所述软件源程序的语句中查找第一语言资源;
(2)采用字符串常量替代查找到的每一处第一语言资源,将每一处第一语言资源直接写入到资源字典中的第一语言资源列;
(3)根据将资源字典中的第一语言资源生成对应的第二语言资源;
(4)将源程序软件代码行中的第一语言资源作为检索从资源字典中查找到其对应的第二语言资源,并用该第二语言资源替换源代码行中的第一语言资源,生成源程序软件的第二语言版本。
其中:
所述源程序是采用VB、VC、BC、JAVA或其他类似编程语言编制的源程序,或者是采用脚本(Script)语言编制的源程序。
本发明具有以下有益效果:
1、通过自动检索软件源程序中的第一语言资源,并根据该第一语言资源生成可供软件加载的第二语言资源,因而避免了采用手工方式进行语言替换的繁琐和容易出错的问题。
2、采用本发明,只需维护软件的第一语言版本,即软件的代码级修改均针对该版本,修改完毕后可以使用程序重新自动生成软件的第二语言版本,实现了维护一套源代码就可以维护国内和国际两套产品的目标。
3、资源字典的生存周期等于软件的生存周期,软件的资源字典一旦生成,就可以持续地对其进行维护,对于已经生成的第二语言版本软件,一旦资源字典中的译文有了变动,则可以自动生成更新的第二语言版本软件。
附图说明
图1为实施本发明的计算机结构示意图;
图2A、2B、图2C为本发明的流程图;
图3为图2B处理流程示意图。
具体实施方式
本发明主要是针对开发工作已经完毕或已经实际应用并且只有第一语言资源版本的软件,该软件中的第一语言资源在计算机中是由双字节表示的文字(如:中文、日文、韩文等)构成的资源(资源通常指的是软件人机界面上的菜单项、标题、提示说明、软件操作运行中弹出的提示信息、各类输出信息等等。),通过计算机技术将其本地化为由双字节或单字节表示的文字(单字节文字,如英文、法文、意文、俄文、德文等)构成的第二语言资源,即自动地实现软件的本地化。
图1显示了一台用来实施本发明方法的计算机。计算机具有一个处理器,它通过总线和存储器相连接,同时还通过总线连接输入输出接口。输入输出接口连接键盘、外部存储器和显示器。存储器中储存了计算机程序和需要本地化的软件的源程序代码,这些代码以ASCII码的形式保存。第一语言资源对应的第二语言资源可通过所述键盘提供,并由显示器进行显示。
参阅图2A所示,软件源程序语言的本地化的主要处理流程如下:
步骤10:第一语言资源在源程序中存在的特征,从软件源程序的语句中查找第一语言资源。
步骤20:采用字符串常量替代查找到的每一处第一语言资源,其中字符串常量在源程序中全局唯一。
步骤30:将每一处第一语言资源赋值给对应的字符串常量并写入到资源文件,在资源文件中形成第一语言资源部分。
步骤40:,根据资源文件中的第一语言资源部分生成对应的第二语言资源部分。
步骤50:软件运行时根据操作系统类型加载所述资源文件中的第一语言资源部分或第二语言资源部分。
在步骤50中,也可根据资源文件中的第二语言资源部分,用第二语言资源替换源程序中对应的字符串常量,生成第二语言版本的源程序。
在该流程中,根据资源文件中的第一语言资源部分直接提供每一条第一语言资源对应的第二语言资源来生成第二语言资源部分,这种方式适用于源程序中第一语言资源数量较少的情况。
参阅图2B所示,该处理流程与图2A所示的处理流程区别主要在于,资源文件中的第二语言资源部分是通过资源字典生成,其主要处理流程如下:
步骤100:第一语言资源在源程序中存在的特征,从软件源程序的语句中查找第一语言资源。
步骤110:采用字符串常量替代查找到的每一处第一语言资源,其中字符串常量在源程序中全局唯一。
步骤120:将每一处第一语言资源赋值给对应的字符串常量并写入到资源文件,在资源文件中形成第一语言资源部分。
步骤130:将所述资源文件中的第一语言资源写入资源字典,并在该资源字典中生成每一条第一语言资源对应的第二语言资源。
步骤140:根据资源文件中的第一语言资源,采用完全匹配方式检索资源字典得到对应的第二语言资源,将该第二语言资源赋值给第一语言资源对应的字符串常量并写入资源文件,以在该资源文件中生成第二语言资源部分。
步骤150:软件运行时根据操作系统类型加载所述资源文件中的第一语言资源部分或第二语言资源部分。
在步骤150中,也可根据资源文件中的第二语言资源部分,用第二语言资源替换源程序中对应的字符串常量,生成第二语言版本的源程序。
该流程通过资源字典来生成资源文件的第二语言资源部分或者替换源程序中的第一语言资源,因为更为灵活,也易于修改,尤其适合于软件中的第一语言资源数量大的情况。
图2A和图2B所示的处理流程适合于采用VB、VC、BC、JAVA或其他类似编程语言编制的源程序。对于采用脚本语言编制的源程序,可使用图2C所示的流程,当然图2C所示的流程也适用采用VB、VC、BC、JAVA或其他类似编程语言编制的源程序。
参阅图2C所示,处理流程如下:
步骤200:第一语言资源在源程序中存在的特征,从软件源程序的语句中查找第一语言资源。
步骤210:采用字符串常量替代查找到的每一处第一语言资源,其中字符串常量在源程序中全局唯一。
步骤220:将每一处第一语言资源写入到资源字典。
步骤230:将资源字典中的第一语言资源替换生成对应的第二语言资源;
步骤240:将源程序软件代码行中的第一语言资源作为检索从资源字典中查找到其对应的第二语言资源,并用该第二语言资源替换源代码行中的第一语言资源,从而生成了源程序软件的第二语言版本。
为了使本发明更加清楚,以下主要以第一语言资源为中文和第二语言为英文为例,对图2B的流程进行详细说明,参阅图3所示:
1、提取源程序中的每一处中文。
读取中文软件代码行,在分析VC、BC、VB、JAVA和数据库SQL等开发语言生成的源代码的语法结构特点的基础上,通过判断中文的ASCII码特征(大于127或小于0),得到中文资源。
2、采用全局字符串常量替换语句中的中文,并生成英文软件原型。
分析各种开发语言生成的源代码的语法结构特点,使用全局字符串常量替换源代码中的中文资源,由于全局字符串常量名唯一性的要求,程序按照如下规则命名:
A、对于VB/VC/BC等的模块代码内的中文资源,全局字符串常量命名为:
软件模块名+模块内中文资源所在函数名+偏移地址
B、对于VB/BC等的窗体代码内的中文资源,全局字符串常量命名为:
软件窗体名+窗体内中文资源所在控件名+控件索引+控件属性
以上命名规则可以保证常量名的全局唯一性。
为了避免因中文和英文在语法表达结构上存在差异而导致无法保证英文翻译准确性的问题,程序通过在源代码中自动嵌入冗余全局字符串资源常量的方式解决,详细说明如下:
中文和英文在语法表达结构上存在差异,举例如下:
语句1:MsgBox StationName &“所属的设备& EquipmentName &“’没有配置信号!”
资源提取后语句1变为:
MsgBox StationName & Module1_Main_1 & EquipmentName &Module1_Main_2
其中Module1_Main_1和Module1_Main_2为资源全局字符串常量,Module1为模块名,Main为函数名,1、2为偏址。
Module1_Main_1对应中文资源“所属的设备”在资源字典中只能翻译为:“’sequipment”
语句1运行时展示给用户的信息:
StationName’s equipment ‘EquipmentName’ has not been configured withsignals!
显然它是不符合英文语法的,StationName’s equipment应该表达为Theequipment of StaiotnName,为此,通过在源代码中自动嵌入冗余全局字符串资源常量的方式得以实现:
(1)首先在语句1的StationName变量前嵌入“”:
MsgBox“”& StationName &“所属的设备& EquipmentName &“’没有配置信号!”
(2)资源提取后语句1变为:
MsgBox  Module1_Main_1 & StationName & Module_1 Main_2 &EquipmentName & Module1_Main_3
(3)这样就可以在资源字典中为资源常量作如下中英文对应:
Module1_Main_1=“The equipment of”
Module1_Main_2=“”
Module1_Main_3=“’has not been configured with signals!”
(4)语句1运行时展示给用户的信息:
The equipment of StationName‘EquipmentName’has not been configured withsignals!
如上所示的英文语句显然是完全符合英文语法的。
3、将提取的中文资源赋值给全局字符串常量,并集中生成到资源文件中。
使用注释标示窗体部分常量起始处以及模块部分常量起始处。针对不同开发语言生成的源代码而生成相应的资源文件,对于VB的源码生成BAS文件名后缀的资源文件,对于VC/BC的源码生成H文件名后缀的资源文件。
由于在软件源代码中会出现一条完整语句(包含一行或多行源代码)含有多个中文资源的现象,而相同中文资源在不同语句环境内含义、翻译方式及结果均可能不同。因此,在生成资源文件时以注释语句形式列出包含有多个中文资源的语句,紧随其后的是该语句中的多个中文资源。
对于采用VB或BC编程语言编制的软件,在将窗体内代码中的第一语言资源赋值给字符串常量后,由于此类编程语言不支持窗体代码内置字符串常量,故在源程序中嵌入加载该字符串常量的函数,以便在所述软件运行而加载窗体时将所述字符串常量携载的第一语言资源或第二语言资源赋值给窗体中相应控件的相应属性,从而实现窗体中第一语言资源与第二语言资源的动态切换。
4、将中文资源写入到字典。
程序首先判断对应资源字典是否存在,不存在则生成一个空的资源字典,资源字典可以是EXCEL文件,文本文件等,资源字典内的有效列分别标示中文资源列,对应英文列(翻译人员在该列中提供中文资源对应的英文),英文修正列(在该列中软件的开发者或相关人员可以针对‘对应英文列’的英文作相应调整,之后专业翻译人员可以将该调整反映到‘对应英文列’中。),说明备注列(由软件开发者或相关人员或翻译人员在该列中表达对该中文资源翻译的意见或建议)。程序读取资源文件中的中文资源,然后将它们放到中文资源列。
程序为软件中每一个窗体或模块生成一个资源字典,这样一方面结构清晰,另一方面便于翻译人员并行翻译工作,提高效率。
对于资源文件中以注释语句形式列出包含有多个中文资源的语句,在资源字典中同样地把这些语句在中文资源列一一列出,并用不同颜色或不同字体标示,紧随其后的是该语句中的多个中文资源,这样做的目的是使得翻译人员能对中文资源在语句中的语境有全面的把握。
5、根据资源字典中的中文提供对应的英文。
通过在资源字典内分别标示中文资源列,对应英文列,英文修正列,说明备注列,营造出一个清晰直观的氛围,使得在资源字典中翻译人员可以很方便地将参照中文资源列中的中文翻译成相应的英文,形成一一对应的关系。
对于含有多个中文资源的一条完整语句(包含一行或多行源代码),翻译时根据中文资源在语句中的语境提供相应的英文,并按照英文的语法将英文翻译分配到相应位置。
例如:
Position Chinese  Engish Original  Notes
WriteInfor″″& rs!StatiorName &″的设备’″& Equip(i).EquipmentName &″’没有配置信号″
... ...
的设备’ 的设备
没有配置信号! 没有配置信号!
其中的...表示可供翻译人员按英文语法规则嵌入英文的位置。
以上语句翻译后应形如:
Position Chinese English Original Notes
WriteInfor″″& rs!StationName &″的设备’″& Equip(i).EquipmentName &″’没有配置信号!″
... In site′
全长12超长5 的设备’ equipment′
全长22超长7 没有配置信号! has no config signal!
最终展示给用户的信息形如:
The equipment of StationName‘EqpipmentName’has not been configured withsignals
6、根据资源文件中的中文检索资源字典中的英文。
程序以资源文件中的中文作为关键字在资源字典中进行完全匹配检索英文,期间程序对比资源字典内中英文的长度(按字节),对于英文长度长于中文的词条,以不同的颜色区别其源自窗体中还是模块代码中,同时注明英文全长及超长的字节数及在代码中所处的行数,这样做的优点是可以使翻译人员对来自窗体或模块的中文资源区别对待,对于来自窗体的中文资源,因为留给英文资源的显示长度有限,所以要对超长的英文尽量进行简洁化处理,压缩英文语句长度,力图以最短的长度表达清楚;而对于来自模块中的中文资源虽没有严格的英文语句长度的限制,但还是有助于依据超长长度及中文资源隶属字符变量定义长度,达到避免字符变量越界错误的目的。
对于包含在一条完整语句(包含一行或多行源代码)中的多个中文资源,在从资源字典中提取中文资源对应英文时依据这些语句作为定位,以避免相同中文资源在不同语句内因英文翻译不同可能导致不正确的匹配。
7、将步骤6中匹配上的英文写入资源文件,在资源文件生成英文部分。
将从资源字典中得到的英文写回到软件资源文件的英文部分中,这样软件就可以在运行时根据操作系统类型(中文操作系统/英文操作系统),如果判断是英文操作系统,则软件会加载资源文件英文部分资源,从而软件的所有界面表现均为英文。至此,英文版本软件即被生成。
对于图2C所示的流程,只是没有生成资源文件,而直接将从处理软件源代码行中查找到的第一语言资源写入字典文件。当资源字典中的第二语言部分生成后,软件就可以将源程序软件代码行中的第一语言资源作为检索从资源字典中查找到其对应的第二语言资源,并用该第二语言资源替换源代码行中的第一语言资源,从而生成了源程序软件的第二语言版本。
对于由单字表示的文字构成的第一资源语言,如英文资源,可以通过英文资源在英文软件源程序中的存在特征,即在代码中存在于单引号或双引号中,在窗体中存在于特定的属性内,如Caption属性等,提取英文软件的英文资源,并作相应过滤(如对于占大多数的SQL查询语句根据SQL语法中的特征词汇---如SELECT,UPDATE,DELETE等,进行过滤),随后的处理方法与上述方法相同,从而实现英文软件的本地化。
本发明还可通过在资源文件中增加多种语言资源部分,以及在资源字典中增加多种语言对应列,可以实现同时支持多种语言版本的软件,即软件的多语言本地化,实现了维护一套中文源代码就可以维护支持多种语言软件产品。
以上对整个源程序中的语言本地化进行描述,但也可以任意选择软件中的一个软件模块进行本地化,即只有该软件模块在资源文件中的英文资源得以刷新,从而达到提高效率的目的。
从上可看出,本发明具有以下特点:
1、对于本发明加工的软件,只需维护该软件中文版本,即软件的代码级修改均针对中文版本,修改完毕后可以使用程序重新自动生成软件的英文版本,实现了维护一套中文源代码就可以维护国内和国际两套产品的目标。
2、资源字典的生存周期等于软件的生存周期,软件的资源字典一旦生成,就可以持续地对其进行维护,对于已经生成的英文版本软件,一旦资源字典中的英文翻译有了变动,则可以通过上述步骤6、步骤7自动生成更新的英文版本软件。
3、利用本发明可以在VB等编程语言的编辑环境中嵌入“窗体本地化”工具栏按钮和“窗体汉化”工具栏按钮,通过“窗体本地化”将窗体界面的中文自动转换成英文,“窗体汉化”将窗体界面的英文自动转换成中文,从而随时切换窗体界面的中英文显示,这样就可以对比调整窗体控件(中英文显示于其中)的长短宽窄,以最佳程度地容纳中、英文两种语言文字的显示长度。
4、通过更改嵌入在软件中的加载函数中的字体设置,软件可以加载繁体中文字体,从而可以实现软件的繁体中文版本。

Claims (19)

1、一种软件中语言资源本地化的实现方法,由具有信息处理能力的装置将软件中第一语言资源生成对应第二语言资源,并可在该软件中使用该第二语言资源;所述方法包括下步骤:
A、根据第一语言资源在源程序中存在的特征,从所述软件源程序的语句中查找第一语言资源;
B、采用字符串常量替代查找到的每一处第一语言资源,将每一处第一语言资源赋值给对应的字符串常量并写入到资源文件,在该资源文件中形成第一语言资源部分,其中所述字符串常量在所述源程序中全局唯一;
C、根据资源文件中的第一语言资源部分生成对应的第二语言资源部分;
D、所述软件运行时根据操作系统类型加载所述资源文件中的第一语言资源部分或第二语言资源部分。
2、如权利要求1所述的方法,其特征在于,步骤C包括:
C1、将所述资源文件中的第一语言写入资源字典,并在该资源字典中通过翻译生成每一条第一语言资源对应的第二语言资源;
C2、根据资源文件中的第一语言资源,采用完全匹配方式检索资源字典得到对应的第二语言资源,将该第二语言资源赋值给第一语言资源对应的字符串常量并写入资源文件,以在该资源文件中生成第二语言资源部分。
3、如权利要求1或2所述的方法,其特征在于,对于采用VB、VC、BC、JAVA或其他类似编程语言编制的源程序,替换模块代码内的第一语言资源的字符串常量命名方式为:软件模块名+模块内第一语言资源所在函数名+偏移地址;替换窗体代码内的第一语言资源的字符串常量命名方式为:软件窗体名+窗体内第一语言资源所在控件名称+控件索引+控件属性名。
4、如权利要求1或2所述的方法,其特征在于,当判断源程序语句中的第一语言资源与第二语言资源之间存在语法表达差异时,在源程序语句中自动嵌入空字符串,并将其赋值给字符串常量以形成冗余的字符串常量,供第二语言语法表达时使用。
5、如权利要求1所述的方法,其特征在于,对于采用VB或BC编程语言编制的软件,在将窗体内代码中的第一语言资源赋值给字符串常量后,在源程序中嵌入加载该字符串常量的函数,以便在所述软件运行而加载窗体时将所述字符串常量携载的第一语言资源或第二语言资源赋值给窗体中相应控件的相应属性,从而实现窗体中第一语言资源与第二语言资源的动态切换。
6、如权利要求1或2所述的方法,其特征在于,在将字符串常量及第一语言资源写入资源文件时标记每一窗体部分和每一模块部分的起始处。
7、如权利要求6所述的方法,其特征在于,在将资源文件中的第一语言资源部分写入资源字典时,为每一个窗体或模块生成一个资源字典。
8、如权利要求2所述的方法,其特征在于,步骤C2中,在资源字典中匹配到相应的第一语言资源时,检查对应的第二语言资源的长度是否超过第一语言资源的长度,如果是则进行标记,并且模块和窗体采用不同的标记,以便调整该第二语言资源。
9、如权利要求1或2所述的方法,其特征在于,当源程序的一条完整语句包含多处第一语言资源时,将该语句以注释方式写入资源文件,并紧随其后写入相关的字符串常量和第一语言资源。
10、如权利要求9所述的方法,其特征在于,在将资源文件中的第一语言资源部分写入资源字典时,将包含多处第一语言资源的一条完整语句写入资源字典,并使与该语句相关的第一语言资源紧随其后;在检索字典资源文件时利用该语句进行定位,以保证第一语言资源正确匹配。
11、如权利要求1所述的方法,其特征在于,所述第一语言资源和第二语言资源可以是双字节或单字节表示的文字所构成的语言资源。
12、如权利要求11所述的方法,其特征在于:
当所述第一语言资源由双字节表示的文字所构成时,根据该第一语言资源的ASCII码特征在软件源程序的语句中进行查找;
当所述第一语言资源由单字节表示的文字所构成时,根据该第一语言资源在代码中存于单引号或双引号,以及在窗体中存于特定属性内的特征在软件源程序的语句中进行查找。
13、一种软件中语言资源本地化的实现方法,由具有信息处理能力的装置将软件中第一语言资源生成对应第二语言资源,并可在该软件中使用该第二语言资源;所述方法包括下步骤:
(1)、根据第一语言资源在源程序中存在的特征,从所述软件源程序的语句中查找第一语言资源;
(2)、采用字符串常量替代查找到的每一处第一语言资源,将每一处第一语言资源直接写入到资源字典中的第一语言资源列;
(3)、根据资源字典中的第一语言资源生成对应的第二语言资源;
(4)、将源程序软件代码行中的第一语言资源作为检索从资源字典中查找到其对应的第二语言资源,并用该第二语言资源替换源代码行中的第一语言资源,生成源程序软件的第二语言版本。
14、如权利要求13所述的方法,其特征在于,所述源程序是采用VB、VC、BC、JAVA或其他类似编程语言编制的源程序,或者是采用脚本(Script)语言编制的源程序。
15、如权利要求13所述的方法,其特征在于,在将第一语言资源部分写入资源字典时,为每一个窗体或模块生成一个资源字典。
16、如权利要求13所述的方法,其特征在于,在资源字典中匹配到相应的第一语言资源时,检查对应的第二语言资源的长度是否超过第一语言资源的长度,如果是则进行标记,并且模块和窗体采用不同的标记,以便调整该第二语言资源。
17、如权利要求13所述的方法,其特征在于,当源程序的一条完整语句包含多处第一语言资源时,将包含多处第一语言资源的一条完整语句写入资源字典,并使与该语句相关的第一语言资源紧随其后;在检索字典资源文件时利用该语句进行定位,以保证第一语言资源正确匹配。
18、如权利要求13所述的方法,其特征在于,所述第一语言资源和第二语言资源可以是双字节或单字节表示的文字所构成的语言资源。
19、如权利要求18所述的方法,其特征在于:
当所述第一语言资源由双字节表示的文字所构成时,根据该第一语言资源的ASCII码特征在软件源程序的语句中进行查找;
当所述第一语言资源由单字节表示的文字所构成时,根据该第一语言资源在代码中存于单引号或双引号,以及在窗体中存于特定属性内的特征在软件源程序的语句中进行查找。
CN 200310112560 2003-12-16 2003-12-16 软件中语言资源本地化的实现方法 Expired - Fee Related CN1261867C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200310112560 CN1261867C (zh) 2003-12-16 2003-12-16 软件中语言资源本地化的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200310112560 CN1261867C (zh) 2003-12-16 2003-12-16 软件中语言资源本地化的实现方法

Publications (2)

Publication Number Publication Date
CN1547116A true CN1547116A (zh) 2004-11-17
CN1261867C CN1261867C (zh) 2006-06-28

Family

ID=34336572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200310112560 Expired - Fee Related CN1261867C (zh) 2003-12-16 2003-12-16 软件中语言资源本地化的实现方法

Country Status (1)

Country Link
CN (1) CN1261867C (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100447743C (zh) * 2005-06-24 2008-12-31 国际商业机器公司 在无需修改源代码的情况下本地化java gui应用的系统和方法
CN1794171B (zh) * 2004-12-20 2010-09-08 微软公司 用于软件设置的语言中立和语言专用安装包
CN101826034A (zh) * 2010-05-13 2010-09-08 中兴通讯股份有限公司 Linux系统中语言的切换方法及装置
CN101950251A (zh) * 2010-09-14 2011-01-19 浙江大学 移动Widget的本地化方法
CN102023886A (zh) * 2010-12-27 2011-04-20 北京像素软件科技股份有限公司 一种对软件中的数据进行资源差异处理的方法
CN102103495A (zh) * 2009-12-16 2011-06-22 新奥特(北京)视频技术有限公司 一种图文包装编控软件的国际化系统
CN102103493A (zh) * 2009-12-16 2011-06-22 新奥特(北京)视频技术有限公司 一种软件语言国际化的方法
CN101263454B (zh) * 2005-09-12 2011-08-17 微软公司 本地化软件程序及其中包含的数据的方法
CN102270194A (zh) * 2010-12-31 2011-12-07 北京谊安医疗系统股份有限公司 字符处理方法及装置
CN102467376A (zh) * 2010-11-10 2012-05-23 金蝶软件(中国)有限公司 一种文字信息的修改方法及装置
CN102521222A (zh) * 2011-12-08 2012-06-27 深圳众为兴技术股份有限公司 一种系统文字的多语言翻译装置及翻译方法
CN102663118A (zh) * 2012-04-19 2012-09-12 北京奥普维尔科技有限公司 一种多语言自动搜索算法的系统及使用方法
CN102981851A (zh) * 2012-11-15 2013-03-20 深圳市共进电子股份有限公司 一种嵌入式网络设备界面语言的快速开发维护系统及方法
CN103309646A (zh) * 2012-03-07 2013-09-18 腾讯科技(深圳)有限公司 一种软件本地化的方法和装置
CN103309647A (zh) * 2012-03-08 2013-09-18 鸿富锦精密工业(深圳)有限公司 应用程序多语言支持系统及方法
CN104750472A (zh) * 2013-12-31 2015-07-01 北京新媒传信科技有限公司 一种终端应用的资源包管理方法和装置
CN105094941A (zh) * 2015-09-24 2015-11-25 深圳市捷顺科技实业股份有限公司 一种实现多语言的方法及装置
WO2017181856A1 (zh) * 2016-04-18 2017-10-26 中兴通讯股份有限公司 一种应用国际化方法、装置及终端
CN107329957A (zh) * 2017-05-18 2017-11-07 网易(杭州)网络有限公司 替换代码中文字符串的方法以及计算机可读存储介质
CN107608875A (zh) * 2017-08-03 2018-01-19 北京奇安信科技有限公司 一种静态代码的本地化处理方法及装置
CN109408113A (zh) * 2018-09-03 2019-03-01 平安普惠企业管理有限公司 一种代码文本处理方法、系统及终端设备
US10248537B2 (en) 2015-04-28 2019-04-02 Microsoft Technology Licensing, Llc Translation bug prediction classifier
CN109684417A (zh) * 2018-11-14 2019-04-26 凯莱英医药集团(天津)股份有限公司 数据展示方法及装置、存储介质和处理器
CN110795915A (zh) * 2018-07-31 2020-02-14 中兴通讯股份有限公司 xml文件批量修改方法、系统、设备和计算机可读存储介质
CN111158805A (zh) * 2019-11-19 2020-05-15 厦门天锐科技股份有限公司 Delphi软件源语言翻译系统、方法、设备及介质

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1794171B (zh) * 2004-12-20 2010-09-08 微软公司 用于软件设置的语言中立和语言专用安装包
CN100447743C (zh) * 2005-06-24 2008-12-31 国际商业机器公司 在无需修改源代码的情况下本地化java gui应用的系统和方法
US8645928B2 (en) 2005-06-24 2014-02-04 International Business Machines Corporation Localizing a java GUI application without source code modification and rebuilding
CN101263454B (zh) * 2005-09-12 2011-08-17 微软公司 本地化软件程序及其中包含的数据的方法
CN102103495A (zh) * 2009-12-16 2011-06-22 新奥特(北京)视频技术有限公司 一种图文包装编控软件的国际化系统
CN102103493A (zh) * 2009-12-16 2011-06-22 新奥特(北京)视频技术有限公司 一种软件语言国际化的方法
CN101826034A (zh) * 2010-05-13 2010-09-08 中兴通讯股份有限公司 Linux系统中语言的切换方法及装置
CN101950251A (zh) * 2010-09-14 2011-01-19 浙江大学 移动Widget的本地化方法
CN101950251B (zh) * 2010-09-14 2013-05-29 浙江大学 移动Widget的本地化方法
CN102467376A (zh) * 2010-11-10 2012-05-23 金蝶软件(中国)有限公司 一种文字信息的修改方法及装置
CN102467376B (zh) * 2010-11-10 2015-07-15 金蝶软件(中国)有限公司 一种文字信息的修改方法及装置
CN102023886B (zh) * 2010-12-27 2013-01-09 北京像素软件科技股份有限公司 一种对软件中的数据进行资源差异处理的方法
CN102023886A (zh) * 2010-12-27 2011-04-20 北京像素软件科技股份有限公司 一种对软件中的数据进行资源差异处理的方法
CN102270194A (zh) * 2010-12-31 2011-12-07 北京谊安医疗系统股份有限公司 字符处理方法及装置
CN102270194B (zh) * 2010-12-31 2013-01-02 北京谊安医疗系统股份有限公司 字符处理方法及装置
CN102521222B (zh) * 2011-12-08 2015-05-20 深圳众为兴技术股份有限公司 一种系统文字的多语言翻译装置及翻译方法
CN102521222A (zh) * 2011-12-08 2012-06-27 深圳众为兴技术股份有限公司 一种系统文字的多语言翻译装置及翻译方法
CN103309646A (zh) * 2012-03-07 2013-09-18 腾讯科技(深圳)有限公司 一种软件本地化的方法和装置
CN103309646B (zh) * 2012-03-07 2017-11-14 腾讯科技(深圳)有限公司 一种软件本地化的方法和装置
CN103309647A (zh) * 2012-03-08 2013-09-18 鸿富锦精密工业(深圳)有限公司 应用程序多语言支持系统及方法
CN102663118A (zh) * 2012-04-19 2012-09-12 北京奥普维尔科技有限公司 一种多语言自动搜索算法的系统及使用方法
CN102981851A (zh) * 2012-11-15 2013-03-20 深圳市共进电子股份有限公司 一种嵌入式网络设备界面语言的快速开发维护系统及方法
CN104750472A (zh) * 2013-12-31 2015-07-01 北京新媒传信科技有限公司 一种终端应用的资源包管理方法和装置
CN104750472B (zh) * 2013-12-31 2018-01-09 北京新媒传信科技有限公司 一种终端应用的资源包管理方法和装置
US10248537B2 (en) 2015-04-28 2019-04-02 Microsoft Technology Licensing, Llc Translation bug prediction classifier
CN105094941A (zh) * 2015-09-24 2015-11-25 深圳市捷顺科技实业股份有限公司 一种实现多语言的方法及装置
CN105094941B (zh) * 2015-09-24 2018-11-02 深圳市捷顺科技实业股份有限公司 一种实现多语言的方法及装置
WO2017181856A1 (zh) * 2016-04-18 2017-10-26 中兴通讯股份有限公司 一种应用国际化方法、装置及终端
CN107329957A (zh) * 2017-05-18 2017-11-07 网易(杭州)网络有限公司 替换代码中文字符串的方法以及计算机可读存储介质
CN107329957B (zh) * 2017-05-18 2020-08-18 网易(杭州)网络有限公司 替换代码中文字符串的方法以及计算机可读存储介质
CN107608875A (zh) * 2017-08-03 2018-01-19 北京奇安信科技有限公司 一种静态代码的本地化处理方法及装置
CN110795915A (zh) * 2018-07-31 2020-02-14 中兴通讯股份有限公司 xml文件批量修改方法、系统、设备和计算机可读存储介质
CN109408113A (zh) * 2018-09-03 2019-03-01 平安普惠企业管理有限公司 一种代码文本处理方法、系统及终端设备
CN109684417A (zh) * 2018-11-14 2019-04-26 凯莱英医药集团(天津)股份有限公司 数据展示方法及装置、存储介质和处理器
CN111158805A (zh) * 2019-11-19 2020-05-15 厦门天锐科技股份有限公司 Delphi软件源语言翻译系统、方法、设备及介质
CN111158805B (zh) * 2019-11-19 2022-06-17 厦门天锐科技股份有限公司 Delphi软件源语言翻译系统、方法、设备及介质

Also Published As

Publication number Publication date
CN1261867C (zh) 2006-06-28

Similar Documents

Publication Publication Date Title
CN1261867C (zh) 软件中语言资源本地化的实现方法
CN1249577C (zh) 用于遗留软件与屏幕朗读器程序之间的互操作的方法和装置
CN1134730C (zh) 用于减少预装类的脚印的系统和方法
CN1181428C (zh) 软件翻译的内省编辑器系统、程序和方法
CN1815477A (zh) 用于提供基于标记语言的限定词的方法和系统
CN1967476A (zh) 在集成开发环境中进行伪翻译的方法和系统
CN1834955A (zh) 多语种翻译存储器、翻译方法以及翻译程序
CN1885265A (zh) 在无需修改源代码的情况下本地化java gui应用的系统和方法
CN1829987A (zh) 用于标签系统的词语数据库扩展
TW201337755A (zh) 應用程式多語言支援系統及方法
CN1094618C (zh) 机器翻译中的语法自纠正方法
CN1265307C (zh) 语言本地化中特征字符串的提取与替换方法
CN1838148A (zh) 电子设备和记录介质
CN101042645A (zh) 统一软件开发环境的方法、设备及系统
CN1661593A (zh) 一种计算机语言翻译方法及其翻译系统
CN1908931A (zh) 一种文字的可变数据排版的方法
CN1619546A (zh) 文本的标号系统-翻译和在运行时间的多语言支持以及设计
CN1975668A (zh) 一种支持多语言的系统及输入、读取多语言数据的方法
CN1415096A (zh) 语言翻译系统
CN1950819A (zh) 检索信息的系统和方法以及储存信息的系统和方法
CN1313926C (zh) 模板编译方法
KR20190015285A (ko) Cpu 이용 및 코드 리팩토링을 위한 쿼리 최적화기
US7415405B2 (en) Database script translation tool
CN1771494A (zh) 包括无分隔符的块的文本的自动分块
CN113076167A (zh) 一种代码处理方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518057 Nanshan District science and Technology Industrial Park, Guangdong, Shenzhen Branch Road, No.

Patentee after: VERTIV TECH Co.,Ltd.

Address before: 518057 Nanshan District science and Technology Industrial Park, Guangdong, Shenzhen Branch Road, No.

Patentee before: EMERSON NETWORK POWER Co.,Ltd.

DD01 Delivery of document by public notice

Addressee: VERTIV TECH Co.,Ltd.

Document name: Notification of Passing Examination on Formalities

DD01 Delivery of document by public notice
TR01 Transfer of patent right

Effective date of registration: 20201202

Address after: 222000 No. 2 Chenguang Road, Lianyungang science and education pioneer park, Jiangsu

Patentee after: LIANYUNGANG RESEARCH INSTITUTE OF NANJING University OF SCIENCE AND TECHNOLOGY

Address before: 518057 No. 1, FA Lu, Nanshan District science and Technology Industrial Park, Guangdong, Shenzhen

Patentee before: Vertiv Tech Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060628

CF01 Termination of patent right due to non-payment of annual fee