CN102521222B - 一种系统文字的多语言翻译装置及翻译方法 - Google Patents
一种系统文字的多语言翻译装置及翻译方法 Download PDFInfo
- Publication number
- CN102521222B CN102521222B CN201110419536.3A CN201110419536A CN102521222B CN 102521222 B CN102521222 B CN 102521222B CN 201110419536 A CN201110419536 A CN 201110419536A CN 102521222 B CN102521222 B CN 102521222B
- Authority
- CN
- China
- Prior art keywords
- character string
- translation
- marking
- memory
- need
- 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.)
- Expired - Fee Related
Links
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种系统文字的多语言翻译装置和翻译方法,所述装置包括:字符串打上印记单元,翻译判断、导出本地语言包单元,翻译语言包单元,替换语言包单元,移位处理单元,文件存储器。所述方法包括:编写源程序时为显示字符串加上印记,并编译;系统上电检测如需翻译则导出本地语言包,并翻译成对应的语句;翻译后拷贝至系统的文件存储器中,将可执行程序中需翻译的字符串替换为系统文件存储器中已翻译好的字符串,并做左移位处理去除印记;系统继续正常运行,显示字符串被更新。采用本发明系统开发者不需为每一种语言进行单独的翻译及编译源程序工作,且产品使用者可根据工作需要或自己喜好任意更改系统界面上显示的文字。
Description
技术领域
本发明涉及一种系统文字的多语言翻译装置及翻译方法,尤其适用于翻译需软件支持的产品系统界面上的文字。
背景技术
现代生产中的机械、设备、电子等产品往往销往很多国家,很多需软件支持的产品其系统界面上的文字都是固定的,对操作复杂,文字较多的产品为方便各国的实际应用,一般需将产品系统界面上的文字翻译成为使用国的语言,现在普遍采用的做法有:
1.在系统软件开发时在函数内植入各国语言,将界面显示屏上的文字对应成各国语言文字,分别替换函数内需显示的文字语句。这种方法,相对每种语言都需替换所有显示文字并重新编译源程序,加大了程序开发者工作量,且不宜于技术进步。
2.采用DLL,将界面显示屏上需显示的所有语句对应各国文字分别生成一个DLL,为此程序开发者不用反复编译源程序,只需在设备出厂烧录程序时选用对应语言的DLL调用即可。此方法较在函数内直接替换对应文字简单,但还需为每种语言开发DLL,为此还需改进。
发明内容
本发明的目的在于克服以上技术缺陷,提供一种系统文字的多语言翻译方法。该方法操作简单适用于基于嵌入式平台的裸机开发和基于windows、linux等的软件开发。
为达到上述目的,本发明所采用的技术方案为:提供一种系统文字的多语言翻译装置及翻译方法。
所述系统文字的多语言翻译装置包括:
字符串打上印记单元,用于在源代码编写时利用宏定义在软件编程时将系统界面上需显示的字符串打上印记,编译软件源代码生成二进制可执行文件——带印记的字符串,并存储于系统内存中。
翻译判断、导出本地语言包单元,用于系统上电或重启时检测一个系统参数判断系统文字是否需要翻译,此参数在系统正常运行时可修改。如判断系统文字需要翻译则程序对自身数据区进行扫描。将有印记的字符串提取出来,生成文本文件形式的本地语言包——需翻译的系统界面文字集合;如不需翻译则不做响应。
翻译语言包单元,用于用户查看文本文件形式的本地语言包,将其对应语句翻译成需要显示的文字,形成两种语言对照的字典文件,并将字典文件拷贝到系统的文件存储器上,以供系统以后上电加载时使用。
替换语言包单元,用于提取系统内存中带有印记的有效字符串,和系统文件存储器上的字典文件对比,如字典中存在带印记的字符串即——原语,则取该原语后的翻译字符串并判断其长度,若长度小于或等于原语占用的内存空间,则将翻译字符串替换原语在内存的原始位置。若长度大于原语占用的内存空间,系统不做替换处理。若原语后的翻译字符串为空,系统也不做替换处理。
移位处理单元,用于将内存中的字符串做左移位处理,去除原始印记。
文件存储器,用于存储翻译语言包装置的字典文件。
所述多语言翻译方法,其实现包括以下步骤:
①字符串打上印记:源代码编写时利用宏定义在软件编程时将系统界面上需显示的字符串打上印记,编译软件源代码生成二进制可执行文件——带印记的字符串,并存储于系统内存中。
②翻译判断、导出本地语言包:系统上电或重启时检测一个系统参数判断系统文字是否需要翻译,此参数在系统正常运行时可修改。
如系统文字需要翻译则程序对自身数据区进行扫描。将有印记的字符串提取出来,生成文本文件形式的本地语言包——需翻译的系统界面文字集合。然后执行步骤③。
如系统文字不需要翻译则跳过步骤③,程序直接执行步骤④。
③翻译语言包:用户查看文本文件形式的本地语言包,将其对应语句翻译成需要显示的文字,形成两种语言对照的字典文件。并将字典文件拷贝到系统的文件存储器上,以供系统以后上电加载时使用。修改系统参数为不需翻译界面文字,然后重新启动系统。返回步骤②。
④替换语言包:提取系统内存中带有印记的有效字符串,和系统文件存储器上的字典文件对比,如字典中存在带印记的字符串即——原语,则取该原语后的翻译字符串并判断其长度,若长度小于或等于原语占用的内存空间,则将翻译字符串替换原语在内存的原始位置。若长度大于原语占用的内存空间,系统不做替换处理。若原语后的翻译字符串为空,系统也不做替换处理。
将翻译字符串过长或用户未做翻译的原语导出到文本文件,以提示用户未正常翻译的文本内容。
⑤移位处理:将系统内存中的字符串做左移位处理,去除原始印记。
⑥系统程序正常继续运行,需要显示的字符串原系统内存地址不变,但内容已被更新,显示为已被翻译后的相应的字符串。
步骤②中如系统文字不需要翻译则,系统直接执行第⑤步对内存中字符串做左移位处理,去除原始印记。
由于各国计算机内部编码方式不同,采用本发明的系统文字的多语言翻译方法则系统源程序编写时需采用支持各国语言的unicode编码方式的字符显示函数。
本发明的有益效果为:
采用本发明提出的系统文字的多语言翻译方法,程序开发者不需为每一种语言进行单独的翻译及编译源程序工作,且产品使用者可根据工作需要或自己喜好无限次的任意更改系统界面上显示的文字,只需:
更改系统参数为需翻译;
对系统上电时导出的本地语言包进行逐句翻译;
将翻译好的语言包拷贝到系统的文件存储器上;
修改系统参数为不需翻译,重新上电加载。系统界面文字即替换为翻译后的文字。
附图说明
图1为一种系统文字的多语言翻译方法的实现步骤图。
图2为一种系统文字的多语言翻译方法的本地语言包的一个实例。
图3为一种系统文字的多语言翻译方法的翻译后的语言包。
具体实施方式
下面结合附图和优选实施例——车铣床控制系统,对本发明提出的一种系统文字的多语言翻译方法做进一步说明。
一种系统文字的多语言翻译方法包括以下步骤:如图1所示。
①字符串打上印记:在源代码编写时利用宏定义在软件编程时将系统界面上需显示的字符串打上印记。
例如:#define ML(“控制系统”)ML+“控制系统”+NULL+“控制系统”+NULL
字符串在系统中存储方式为:以ASCII存储,以NULL结束。当系统检测到印记“ML”及两个“NULL”则认为其中间是一个需显示的字符串。
编译系统源程序:编译软件源代码生成二进制可执行文件——带印记的字符串。
②翻译判断、导出本地语言包:系统上电或重启时检测一个系统参数判断系统文字是否需要翻译,此参数在系统正常运行时可修改。
如系统文字需要翻译则程序对自身数据区进行扫描。
数据区位置判定如下:利用编译器的特殊宏定义功能,获取程序在内存中的起始地址和长度。
例如:在ADS1.2开发环境下,可用Image$$Ro$$Base;获得程序数据区起始内存地址,用Image$$ZI$$Limix;获得程序数据区终止内存地址。
将有印记的字符串提取出来,生成文本文件形式的本地语言包——需翻译的系统界面文字集合。然后执行步骤③。
如系统文字不需要翻译则跳过步骤③,程序直接执行步骤④。
③翻译语言包:用户查看文本文件形式的本地语言包,将其对应语句翻译成需要显示的文字,形成两种语言对照的字典文件。并将字典文件拷贝到系统的文件存储器上,以供系统以后上电加载时使用。修改系统参数为不需翻译界面文字,然后重新启动系统。返回步骤②。
④替换语言包:提取二进制执行程序中带有印记的有效字符串,和系统文件存储器上的字典文件对比,如字典中存在带印记的字符串即——原语,则取该原语后的翻译字符串并判断其长度,若长度小于或等于原语占用的内存空间,则将翻译字符串替换原语在内存的原始位置。若长度大于原语占用的内存空间,系统不做替换处理。若原语后的翻译字符串为空,系统也不做替换处理。
将翻译字符串过长或用户未做翻译的原语导出到文本文件,以提示用户未正常翻译的文本内容。
⑤移位处理:将内存中的字符串做左移位处理,去除原始印记。
⑥系统程序正常继续运行,需要显示的字符串原内存地址不变,但内容已被更新,显示为已被翻译后的相应的字符串。
步骤②中如系统文字不需要翻译则,系统直接执行第⑤步对内存中字符串做左移位处理,去除原始印记。
本实施例的内容仅是为了更好的了解发明,而不是以任何方式限制权利要求的范围,本发明内容同样适用于其他各种需要多语言翻译转换的系统。
Claims (2)
1.一种系统文字的多语言翻译装置,其特征在于,所述装置包括:
字符串打上印记单元,用于在源代码编写时利用宏定义在软件编程时将系统界面上需显示的字符串打上印记,编译软件源代码生成带印记的字符串,并存储于系统内存中;
具体为:#define ML(“控制系统”)ML+“控制系统”+NULL+“控制系统”+NULL,
字符串在系统中存储方式为:以ASCII存储,以NULL结束,当系统检测到印记“ML”及两个“NULL”则认为其中间是一个需显示的字符串;
翻译判断、导出本地语言包单元,用于在系统上电或重启时检测一个系统参数判断系统文字是否需要翻译;所述的系统参数在系统文字的多语言翻译装置正常运行时可修改;
如系统文字需要翻译则程序对自身数据区进行扫描,将所述带有印记的字符串提取出来,生成文本文件形式的本地语言包——需翻译的系统界面文字集合;
数据区位置判定如下:利用编译器的特殊宏定义功能,获取程序在内存中的起始地址和长度;
在ADS1.2开发环境下,用Image$$Ro$$Base获得程序数据区起始内存地址,用Image$$ZI$$Limix获得程序数据区终止内存地址;
如不需翻译则不做响应;
翻译语言包单元,用于用户查看文本文件形式的本地语言包,将其对应语句翻译成需要显示的文字,形成两种语言对照的字典文件,并将字典文件拷贝到系统的文件存储器上,以供系统以后上电加载时使用;
替换语言包单元,用于提取系统内存中带有印记的有效字符串,和文件存储器上的字典文件对比,如字典中存在带印记的字符串,则取该带印记的字符串后的翻译字符串并判断其长度,若长度小于或等于带印记的字符串占用的内存空间,则在内存的原始位置将翻译字符串替换带印记的字符串;若长度大于带印记的字符串占用的内存空间,系统不做替换处理,并将翻译字符串过长或用户未做翻译的带印记的字符串导出到文本文件,以提示用户未正常翻译的文本内容;若带印记的字符串后的翻译字符串为空,系统也不做替换处理;
移位处理单元,用于将系统内存中的字符串做左移位处理,去除原始印记;
系统程序正常继续运行,需要显示的字符串原系统内存地址不变,但内容已被更新,显示为已被翻译后的相应的字符串;
文件存储器,用于存储翻译语言包单元形成的字典文件;
所述系统文字的多语言翻译装置应用于各种需要多语言翻译转换的系统,具体用于基于嵌入式平台的裸机开发和基于windows、linux的软件开发。
2.一种系统文字的多语言翻译方法,其特征在于,所述多语言翻译方法包括以下步骤:
步骤1、字符串打上印记:源代码编写时利用宏定义在软件编程时将系统界面上需显示的字符串打上印记,编译软件源代码生成带印记的字符串,并存储于系统内存中;
具体为:#define ML(“控制系统”)ML+“控制系统”+NULL+“控制系统”+NULL,
字符串在系统中存储方式为:以ASCII存储,以NULL结束,当系统检测到印记“ML”及两个“NULL”则认为其中间是一个需显示的字符串;
步骤2、翻译判断、导出本地语言包:系统上电或重启时检测一个系统参数判断系统文字是否需要翻译;
所述的系统参数在系统正常运行时可修改;如系统文字需要翻译则程序对自身数据区进行扫描,将有印记的字符串提取出来,生成文本文件形式的本地语言包;
数据区位置判定如下:利用编译器的特殊宏定义功能,获取程序在内存中的起始地址和长度;
在ADS1.2开发环境下,用Image$$Ro$$Base获得程序数据区起始内存地址,用Image$$ZI$$Limix获得程序数据区终止内存地址;
将有印记的字符串提取出来,生成文本文件形式的本地语言包——需翻译的系统界面文字集合;然后执行步骤3;
如系统文字不需要翻译则跳过步骤3,直接执行步骤4;
步骤3、翻译语言包:用户查看文本文件形式的本地语言包,将其对应语句翻译成需要显示的文字,形成两种语言对照的字典文件,并将字典文件拷贝到系统的文件存储器上,以供系统以后上电加载时使用,修改系统参数为不需翻译界面文字,然后重新启动系统;返回步骤2;
步骤4、替换语言包:提取带有印记的有效字符串,和系统文件存储器上的字典文件对比,如字典文件中存在带印记的字符串,则取该带印记的字符串后的翻译字符串做替换处理,若带印记的字符串后的翻译字符串为空,系统不做替换处理;
所述提取带有印记的有效字符串,和系统文件存储器上的字典文件对比,字典文件中如存在带印记的字符串,还包括取该带印记的字符串后的翻译字符串并判断其长度,若长度小于或等于带印记的字符串占用的内存空间,则在内存的原始位置将翻译字符串替换带印记的字符串,若长度大于带印记的字符串占用的内存空间,系统不做替换处理;
若翻译字符串的长度大于带印记的字符串占用的内存空间,系统不做替换处理并将翻译字符串过长或用户未做翻译的原语导出到文本文件,以提示用户未正常翻译的文本内容;
步骤5、移位处理:将系统内存中的字符串做左移位处理,去除原始印记;
系统程序正常继续运行,需要显示的字符串原系统内存地址不变,但内容已被更新,显示为已被翻译后的相应的字符串;
所述方法在系统源程序编写时采用支持各国语言的unicode编码方式的字符显示函数;
所述系统文字的多语言翻译方法应用于各种需要多语言翻译转换的系统,具体用于基于嵌入式平台的裸机开发和基于windows、linux的软件开发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110419536.3A CN102521222B (zh) | 2011-12-08 | 2011-12-08 | 一种系统文字的多语言翻译装置及翻译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110419536.3A CN102521222B (zh) | 2011-12-08 | 2011-12-08 | 一种系统文字的多语言翻译装置及翻译方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521222A CN102521222A (zh) | 2012-06-27 |
CN102521222B true CN102521222B (zh) | 2015-05-20 |
Family
ID=46292151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110419536.3A Expired - Fee Related CN102521222B (zh) | 2011-12-08 | 2011-12-08 | 一种系统文字的多语言翻译装置及翻译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521222B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9342285B2 (en) | 2012-11-30 | 2016-05-17 | Huawei Technologies Co., Ltd. | Method and apparatus for detecting code change |
US9928236B2 (en) * | 2015-09-18 | 2018-03-27 | Mcafee, Llc | Systems and methods for multi-path language translation |
CN107153607A (zh) * | 2016-03-03 | 2017-09-12 | 展讯通信(天津)有限公司 | 检查移动终端界面语言的方法、装置及系统 |
CN106569939B (zh) * | 2016-10-28 | 2020-06-12 | 北京数科网维技术有限责任公司 | 一种控件脚本程序多国文字解析系统及多国文字解析方法 |
CN106648822B (zh) * | 2016-12-30 | 2019-09-06 | 深圳市九洲电器有限公司 | 界面字符串筛选方法及系统 |
CN107329958B (zh) * | 2017-06-08 | 2021-03-26 | 努比亚技术有限公司 | 基于网页的语言转换方法及装置 |
CN107273549A (zh) * | 2017-07-24 | 2017-10-20 | 山东中创软件工程股份有限公司 | 一种词条转化方法及装置 |
CN108491398B (zh) * | 2018-03-26 | 2021-09-07 | 深圳市元征科技股份有限公司 | 一种对更新的软件文本进行翻译的方法及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547116A (zh) * | 2003-12-16 | 2004-11-17 | 艾默生网络能源有限公司 | 软件中语言资源本地化的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392872B2 (en) * | 2005-11-19 | 2013-03-05 | International Business Machines Corporation | Pseudo translation within integrated development environment |
-
2011
- 2011-12-08 CN CN201110419536.3A patent/CN102521222B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547116A (zh) * | 2003-12-16 | 2004-11-17 | 艾默生网络能源有限公司 | 软件中语言资源本地化的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102521222A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521222B (zh) | 一种系统文字的多语言翻译装置及翻译方法 | |
CN109491695B (zh) | 一种集成安卓应用的增量更新方法 | |
CN106775723B (zh) | 基于Android平台的系统固件定制的方法和Android设备 | |
US7318020B1 (en) | Methods and systems for external localization | |
US20130253901A1 (en) | System and method for automatic language translation for applications | |
CN1364260A (zh) | 软件翻译的内省编辑器系统、程序和方法 | |
US8468494B2 (en) | In-line editor | |
CN101002174B (zh) | 在便携式装置中加载具有面向对象的中间语言的软件的方法 | |
TW201337755A (zh) | 應用程式多語言支援系統及方法 | |
US9558096B2 (en) | Method and apparatus for supporting performance analysis | |
US20080288928A1 (en) | Methods and Systems for Converting Application Code in Turbine Control Systems | |
EP3365772A1 (en) | Missing include suggestions for external files | |
US10324712B1 (en) | Method and system of migrating legacy code for upgraded systems | |
CN104199662A (zh) | 一种适用于flex项目的多语言支持技术 | |
CN111488155B (zh) | 着色语言翻译方法 | |
CN103473097A (zh) | Android系统固件升级系统、装置及升级方法 | |
CN103677778A (zh) | 一种CAP文件Classref常量的解析方法 | |
Yadav et al. | Performance analysis for Android runtime environment | |
CN115495086A (zh) | 一种编译方法和编译器、Wasm虚拟机 | |
US10452364B2 (en) | Method and system for preparing code to be executed by programmable control devices | |
CN104881396A (zh) | 图形化程序的编译文件形成方法 | |
US9405739B1 (en) | Source code format for IDE code development with embedded objects | |
CN107092472B (zh) | 一种动态发布方法及设备 | |
CN101339507B (zh) | 一种生成嵌入式程序运行符号表的方法 | |
CN114296694A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150520 Termination date: 20151208 |
|
EXPY | Termination of patent right or utility model |