论文部分内容阅读
摘要:该文介绍了软件汉化的基本概念,汉化的基本原理和理论,对软件汉化技术的基本知识进行了详细的说明,并介绍了国内的研究现状。针对目前使用的汉化方法进行了详细的总结和说明,同时也介绍了使用Qt搭建系统界面汉化的使用方法。
关键词:软件汉化;英文提示符;资源文件;Windows平台
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)04-0832-02
Software Localization Technology Theory and Application
WANG Jia-hua,CHENG Shun-shun
(School of Computer Science, Xi’an Shiyou University, Xi’an 710065, China)
Abstract: This paper introduces the basic concepts of software localization, the basic principle and the theory of software localization,which is technology of basic knowledge makes a detailed instruction, and introduced the domestic status of research. Aiming at the use of localization method to carry on the detailed summary and instructions, at the same time also introduces the use Qt build system interface localization use method.
Key words: software localization; English prompt; resource file; Windows platforms
隨着国外大量应用软件的引入,国内的用户群在大量的增长。但遗憾的是这些软件在安装和应用过程中,所有的接口界面均为英文提示信息,这在一定程度上给用户带来很多不便,无疑在很大程度上限制了计算机的应用。软件汉化是解决这一问题的最好方法。
1 理论和原理
目前市面上应用软件都需要使用汉字信息进行信息交互。针对使用不同的编程语言编写的显示界面,因其语言内部的机制不同,故使用的汉化方法也不同,但汉化的原理和理论是相同的。
1.1 汉化理论
“汉化”是指对软件用户界面从其他语言到汉语的转换。把原有的西文软件或是代码文件作适当的修改和调整,使之能够处理汉字信息。在西文软件能够运行的环境中,汉化后的软件同样可以运行。汉化后的应用软件包含的工作环境应该和原软件含有相同的工作环境。汉化后的应用软件应不受输入输出系统和操作系统版本的限制,应和西文软件一样具有较强的兼容性和通用性。
对于一个汉化后的应用软件有如下几项要求:
1) 对原外文软件的代码变动应尽可能的少,在不丢失原外文软件功能的条件下,取得最佳的汉化效果;
2) 对外文软件内的有关子程序实行功能转化,使其从单一处理外文字母转化为对中西文均能够处理 ;
3) 对外文软件内的有关模块实行功能强化,使其兼顾到汉字处理的特点;
4) 人机界面的信息汉字化。
1.2 汉化原理
软件汉化的基本原理是首先找到需要汉化的外文信息提示符,使用有效的方法将其提取,并将提取的信息提示符准确的翻译成汉语,然后用汉字代替相应的英文信息,显示到软件界面中。
软件汉化一般包含两个方面的内容:一是把不能接受汉字的软件改造成能够接受汉字的软件;二是把软件中的提示信息汉字化。
目前基于Windows平台下的常用软件汉化有如下几种类型:
1) 手动修改资源文件;
2) 传统调试程序Debug;
3) 即时界面汉化。
1.3 汉化工作研究现状
随着计算机的普及,软件行业的迅速发展,国际上涌现出了许多优秀的应用软件。它们大多以外文为背景,不能直接有效的处理中文信息。故利用汉化技术,对原外文软件进行二次开发,使其能够同时处理西文和汉字信息。
1.3.1 软件的资源汉化
软件的资源汉化就是直接修改软件的资源文件。Windows环境下的软件一般是过Visual C 、Borland C 等常用编程工具使用高级编程语言编写的。由于编写软件的国际性和通用性程度的提高,如使用标准控件、资源文件和Unicode编码,很多时候我们只需要针对这些标准、通用的资源进行修改就能汉化Windnws下的大多数软件。
1.3.2 资源反汇编
资源反汇编是比较传统的一种汉化方法。它依据一些有效的调试工具,进行外文软件的二次开发。如传统调试程序Debug、动态调试程序SDebug、反汇编程序Sourcer等。他们将外文软件的代码进行反汇编,通过程序跟踪,显示高级语言和相应的目标代码,分离出调试程序的显示屏幕与其跟踪程序的屏幕显示信息,参照源程序有关功能模块分析原外文软件的处理能力,制定汉化方案进行相应的汉化处理。
2 应用的环境和汉化方法
目前市场上大多数应用软件的开发都是基于Windows平台。因其开发语言的不同,使用的配置环境不同,故使用的汉化方法也不同。
2.1 应用的环境
目前主流的应用软件都是基于Windows平台开发的,使用Visual Studio200X系列、VisualC 5.0/6.0开发环境编写。
2.2 汉化方法
不同语言开发的应用软件使用的汉化方法是不一样的。本文结合基于Qt图形界面开发工具的系统来介绍汉化方法。由于在使用Qt编写的程序中是不识别中文字符串,故本文介绍的汉化方法与以往的汉化方法是不同的。
2.2.1 Qt设计器
Qt设计器是Qt自有的设计GUI界面的工具,它提供一种可视化的设计方法,方便程序员的应用。使用可视化的设计方法比手工编码显得更自然,更快速,并且也希望能通过可视化方法,对那些手工编码所设计的窗体,进行更加快速、容易的测试和修改。
2.2.2使Qt识别中文
在无任何标识的情况下,如果程序中出现中文字符,那么在编译后,这些字符将会以乱码的形式出现在生成的页面中。在界面中存在部分需要转换成中文的字符串,而这些字符串又不包含在GUI界面中,那么我们只有选择单纯地在程序内部进行本地汉化。
1) 识别汉字的预编译指令
在程序中加入识别汉字的预编译指令:
#include
2) 汉字编码方式
在程序中加入能够识别中文的汉字编码,如GB2312、BIG5等。除了采用英语外,Qt对世界上其他文字系统都提供了广泛的支持。如果想将英语转换成其他语言,你只需要加入识别该种语言的编码方式即可。
QTextCodec::setCodecForTr(QTextCodec::codeForName(“GB2312”));
3) 程序中的实现
在应用程序中实现汉化字符串,只需要将该字符串使用tr( )函数将其提取,并进行相应的翻译即可。
如:QPushButton* choose_button = new QPushButton(QObject::tr(“类型选择”));
2.2.3 Qt Linguistg工具
Qt还提供了另外一种工具可以帮助程序员完成界面语言的转换,即Qt内置的国际化Qt Linguistg工具来帮助对应用程序进行翻译管理。使用Qt Linguistg工具进行汉化,必须提取这些字符串。Qt只识别QString类型定义的字符串。如果想让应用程序能够使用多种语言,进行各个语言之间的转换,必须确保每一个用户在程序编译所产生的界面中的字符串都使用了tr( )函数,并且在程序启动的时候,也必须载入一个翻译文件(.qm)。一旦用户可见的字符串全部使用了tr( )调用封装,就需要加载翻译文件。通常是在应用程序的main( )函数中完成的。如:
int main( )
{
QApplication app(argc,argv);
…
QTranslator * qtappTranslator; = new QTranslator;
qApp->installTranslator(qtTranslator);
Qstring path = QApplication::applicationDirPath( ) /”translations”/;
}
我們并不能一次完全提取到所有需要转换成中文的字符串。在提取到新的字符串,进入Dos运行lupdate命令来更新提取到的字符串,即更新应用程序.pro文件。运行命令如下:
lupdate –verbose 应用程序.pro
一旦有了翻译过的.ts文件,就需要把它转换成一个可以用QTranslator使用的二进制.qm文件。如果想为所有的.ts文件生成.qm文件,可以运行lrelease命令来生成,运行命令如下:
lrelease –verbose应用程序.pro
在所有的翻译完成之后,只需要将翻译完成的.ts文件和生成的.qm文件打包到应用程序的Debug下面,就可以随处移植程序。只要含有.ts文件和.qm文件,你就可以任意的转换语言,不必担心乱码的出现。
3 结束语
本文详细的介绍了目前软件汉化的状况和使用方法。在结合Qt图形界面开发工具搭建的系统中使用的汉化方法是通过具体的项目实践,总结出来的汉化方法。
本文得到了国家自然科学基金项目:“曲流河储层建模的自回避随机游走方法研究” (项目批号50874091) 的资助。
参考文献:
[1] 严博,欧庆于,吴晓平.Q top ia程序中文化方法研究[J].计算机与数字工程,2008(7):60-63.
[2] Blanchette J,Summerfield M.C GUI Qt4编程[M].闫锋欣,译.北京:电子工业出版社,2008:314-326
[3] 蔡志明,卢传富,李立夏.精通Qt4编程[M].北京:电子工业出版社,2008,:468-477
[4] 丁林松,黄丽琴.Qt4图像设计与嵌入式开发[M].北京:人民邮电出版社,2009.
[5] 姜晓灵,周天宏.软件汉化的一种方法[J].郧阳师范高等专科学校学报,1998(2):95-97.
[6] 周镭,李人贤.软件汉化方法[J].哈尔滨师范大学学报:自然科学版,1999(6):73-75.
[7] 朱禹.系统软件汉化工具的实现[J].小型微型计算机系统,1998(4):47-49
[8] 王畅.Windows环境下专业软件汉化[J].阜阳师范学院学报:自然科学版,2005(4):52-53.
[9] Trolltech.Qt-Cross-Platform C Development-Troll2tech[EB/OL].2007.http://www.trolltech.com/products/qt/features/index.
[10] Blanchette J,Summerfield M.C GUI Programming wiethQt 4[M].USA:Prentice Hall,2006.
关键词:软件汉化;英文提示符;资源文件;Windows平台
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)04-0832-02
Software Localization Technology Theory and Application
WANG Jia-hua,CHENG Shun-shun
(School of Computer Science, Xi’an Shiyou University, Xi’an 710065, China)
Abstract: This paper introduces the basic concepts of software localization, the basic principle and the theory of software localization,which is technology of basic knowledge makes a detailed instruction, and introduced the domestic status of research. Aiming at the use of localization method to carry on the detailed summary and instructions, at the same time also introduces the use Qt build system interface localization use method.
Key words: software localization; English prompt; resource file; Windows platforms
隨着国外大量应用软件的引入,国内的用户群在大量的增长。但遗憾的是这些软件在安装和应用过程中,所有的接口界面均为英文提示信息,这在一定程度上给用户带来很多不便,无疑在很大程度上限制了计算机的应用。软件汉化是解决这一问题的最好方法。
1 理论和原理
目前市面上应用软件都需要使用汉字信息进行信息交互。针对使用不同的编程语言编写的显示界面,因其语言内部的机制不同,故使用的汉化方法也不同,但汉化的原理和理论是相同的。
1.1 汉化理论
“汉化”是指对软件用户界面从其他语言到汉语的转换。把原有的西文软件或是代码文件作适当的修改和调整,使之能够处理汉字信息。在西文软件能够运行的环境中,汉化后的软件同样可以运行。汉化后的应用软件包含的工作环境应该和原软件含有相同的工作环境。汉化后的应用软件应不受输入输出系统和操作系统版本的限制,应和西文软件一样具有较强的兼容性和通用性。
对于一个汉化后的应用软件有如下几项要求:
1) 对原外文软件的代码变动应尽可能的少,在不丢失原外文软件功能的条件下,取得最佳的汉化效果;
2) 对外文软件内的有关子程序实行功能转化,使其从单一处理外文字母转化为对中西文均能够处理 ;
3) 对外文软件内的有关模块实行功能强化,使其兼顾到汉字处理的特点;
4) 人机界面的信息汉字化。
1.2 汉化原理
软件汉化的基本原理是首先找到需要汉化的外文信息提示符,使用有效的方法将其提取,并将提取的信息提示符准确的翻译成汉语,然后用汉字代替相应的英文信息,显示到软件界面中。
软件汉化一般包含两个方面的内容:一是把不能接受汉字的软件改造成能够接受汉字的软件;二是把软件中的提示信息汉字化。
目前基于Windows平台下的常用软件汉化有如下几种类型:
1) 手动修改资源文件;
2) 传统调试程序Debug;
3) 即时界面汉化。
1.3 汉化工作研究现状
随着计算机的普及,软件行业的迅速发展,国际上涌现出了许多优秀的应用软件。它们大多以外文为背景,不能直接有效的处理中文信息。故利用汉化技术,对原外文软件进行二次开发,使其能够同时处理西文和汉字信息。
1.3.1 软件的资源汉化
软件的资源汉化就是直接修改软件的资源文件。Windows环境下的软件一般是过Visual C 、Borland C 等常用编程工具使用高级编程语言编写的。由于编写软件的国际性和通用性程度的提高,如使用标准控件、资源文件和Unicode编码,很多时候我们只需要针对这些标准、通用的资源进行修改就能汉化Windnws下的大多数软件。
1.3.2 资源反汇编
资源反汇编是比较传统的一种汉化方法。它依据一些有效的调试工具,进行外文软件的二次开发。如传统调试程序Debug、动态调试程序SDebug、反汇编程序Sourcer等。他们将外文软件的代码进行反汇编,通过程序跟踪,显示高级语言和相应的目标代码,分离出调试程序的显示屏幕与其跟踪程序的屏幕显示信息,参照源程序有关功能模块分析原外文软件的处理能力,制定汉化方案进行相应的汉化处理。
2 应用的环境和汉化方法
目前市场上大多数应用软件的开发都是基于Windows平台。因其开发语言的不同,使用的配置环境不同,故使用的汉化方法也不同。
2.1 应用的环境
目前主流的应用软件都是基于Windows平台开发的,使用Visual Studio200X系列、VisualC 5.0/6.0开发环境编写。
2.2 汉化方法
不同语言开发的应用软件使用的汉化方法是不一样的。本文结合基于Qt图形界面开发工具的系统来介绍汉化方法。由于在使用Qt编写的程序中是不识别中文字符串,故本文介绍的汉化方法与以往的汉化方法是不同的。
2.2.1 Qt设计器
Qt设计器是Qt自有的设计GUI界面的工具,它提供一种可视化的设计方法,方便程序员的应用。使用可视化的设计方法比手工编码显得更自然,更快速,并且也希望能通过可视化方法,对那些手工编码所设计的窗体,进行更加快速、容易的测试和修改。
2.2.2使Qt识别中文
在无任何标识的情况下,如果程序中出现中文字符,那么在编译后,这些字符将会以乱码的形式出现在生成的页面中。在界面中存在部分需要转换成中文的字符串,而这些字符串又不包含在GUI界面中,那么我们只有选择单纯地在程序内部进行本地汉化。
1) 识别汉字的预编译指令
在程序中加入识别汉字的预编译指令:
#include
2) 汉字编码方式
在程序中加入能够识别中文的汉字编码,如GB2312、BIG5等。除了采用英语外,Qt对世界上其他文字系统都提供了广泛的支持。如果想将英语转换成其他语言,你只需要加入识别该种语言的编码方式即可。
QTextCodec::setCodecForTr(QTextCodec::codeForName(“GB2312”));
3) 程序中的实现
在应用程序中实现汉化字符串,只需要将该字符串使用tr( )函数将其提取,并进行相应的翻译即可。
如:QPushButton* choose_button = new QPushButton(QObject::tr(“类型选择”));
2.2.3 Qt Linguistg工具
Qt还提供了另外一种工具可以帮助程序员完成界面语言的转换,即Qt内置的国际化Qt Linguistg工具来帮助对应用程序进行翻译管理。使用Qt Linguistg工具进行汉化,必须提取这些字符串。Qt只识别QString类型定义的字符串。如果想让应用程序能够使用多种语言,进行各个语言之间的转换,必须确保每一个用户在程序编译所产生的界面中的字符串都使用了tr( )函数,并且在程序启动的时候,也必须载入一个翻译文件(.qm)。一旦用户可见的字符串全部使用了tr( )调用封装,就需要加载翻译文件。通常是在应用程序的main( )函数中完成的。如:
int main( )
{
QApplication app(argc,argv);
…
QTranslator * qtappTranslator; = new QTranslator;
qApp->installTranslator(qtTranslator);
Qstring path = QApplication::applicationDirPath( ) /”translations”/;
}
我們并不能一次完全提取到所有需要转换成中文的字符串。在提取到新的字符串,进入Dos运行lupdate命令来更新提取到的字符串,即更新应用程序.pro文件。运行命令如下:
lupdate –verbose 应用程序.pro
一旦有了翻译过的.ts文件,就需要把它转换成一个可以用QTranslator使用的二进制.qm文件。如果想为所有的.ts文件生成.qm文件,可以运行lrelease命令来生成,运行命令如下:
lrelease –verbose应用程序.pro
在所有的翻译完成之后,只需要将翻译完成的.ts文件和生成的.qm文件打包到应用程序的Debug下面,就可以随处移植程序。只要含有.ts文件和.qm文件,你就可以任意的转换语言,不必担心乱码的出现。
3 结束语
本文详细的介绍了目前软件汉化的状况和使用方法。在结合Qt图形界面开发工具搭建的系统中使用的汉化方法是通过具体的项目实践,总结出来的汉化方法。
本文得到了国家自然科学基金项目:“曲流河储层建模的自回避随机游走方法研究” (项目批号50874091) 的资助。
参考文献:
[1] 严博,欧庆于,吴晓平.Q top ia程序中文化方法研究[J].计算机与数字工程,2008(7):60-63.
[2] Blanchette J,Summerfield M.C GUI Qt4编程[M].闫锋欣,译.北京:电子工业出版社,2008:314-326
[3] 蔡志明,卢传富,李立夏.精通Qt4编程[M].北京:电子工业出版社,2008,:468-477
[4] 丁林松,黄丽琴.Qt4图像设计与嵌入式开发[M].北京:人民邮电出版社,2009.
[5] 姜晓灵,周天宏.软件汉化的一种方法[J].郧阳师范高等专科学校学报,1998(2):95-97.
[6] 周镭,李人贤.软件汉化方法[J].哈尔滨师范大学学报:自然科学版,1999(6):73-75.
[7] 朱禹.系统软件汉化工具的实现[J].小型微型计算机系统,1998(4):47-49
[8] 王畅.Windows环境下专业软件汉化[J].阜阳师范学院学报:自然科学版,2005(4):52-53.
[9] Trolltech.Qt-Cross-Platform C Development-Troll2tech[EB/OL].2007.http://www.trolltech.com/products/qt/features/index.
[10] Blanchette J,Summerfield M.C GUI Programming wiethQt 4[M].USA:Prentice Hall,2006.