一种图形用户界面的多语言自适应方法技术

技术编号:2834278 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种图形用户界面的多语言自适应方法,其方法为根据要显示或要处理的主语言设置布局模式,根据用户交互操作和程序设置计算要显示的各个图形部件的位置和尺寸,然后根据确定的布局模式对各个图形部件的位置和尺寸实施变换,最后对于每个要显示的图形部件,用其变换后的位置和尺寸重新绘制该图形部件;本发明专利技术可以支持各种不同的书写方向,最大限度地符合用户习惯,对于图形用户界面库来说,应用此方法可以符合更多不同国家和地区的习惯,对于它的国际化能力是一次很大的提高。

【技术实现步骤摘要】

本专利技术涉及一种图形用户界面根据语言进行自适应调整布局的方法,其主要应用于图形 用户界面开发库的设计中,提供的库作为程序员开发应用程序的基础库,属于计算机图形用 户界面的国际化软件开发

技术介绍
国际化软件开发的目标是实现软件的全球化和本地化能力。 一个全球化应用程序并不仅 仅周限于某一种语言或者某一区域的用户,相反地,它们被设计为可以输入、存储、显示、 输出世界上的各种语言和文字,并且符合使用这些语言的用户所在地区的信息处理习惯。一 个全球化应用程序的二进制可执行文件无需做任何修改,就能够通过本地化过程形成该应用 程序的任何一种语言版本。本地化是指针对全球化应用程序,使用本地化信息来实现程序的 本地化资源库,从而形成一个完整的本地语言版本的过程。随着信息技术的发展,计算机能够处理的语言越来越多,然而世界上的语言文字多种多 样, 一些语言文字具有非常不同于其它语言的特征,对计算机图形用户界面的发展提出了挑战。例如,阿拉伯文、维吾尔文、哈萨克文、柯尔克孜文、乌孜别克文等按行从右向左书写、 各行从上向下排列;传统蒙文、托忒蒙文、锡伯文、满文从上往下书写,按每列从左往右排 列;日文以及古代汉语也是从上往下书写,但各列从右向左排列。这些特点与通常的计算机 用户界面的布局并不相同。由于这些文字本身的固有特点,它们对图形用户界面有了特殊的 需求,对软件的可用性提出了挑战。现有的图形用户界面库很多,MFC、 .net Framework、 Java AWT、 Java SWing、 Qt等等, 它们涉及各种操作系统平台和各种编程语言,为应用程序开发者提供了更多的选择。然而目 前这些图形用户界面库一般只支持像英文、简体中文这类从左向右的书写方向和图形部件靠 左对齐的对齐方式的习惯,部分图形界面库可以支持阿拉伯文的从右向左的书写方向和图形 部件靠右对齐的对齐方式的习惯。 一般来说,计算机图形用户界面由一个个的图形部件构成, 传统的图形用户界面库所提供的图形用户界面的显示流程大致如下1、 根据用户交互操作和程序设置,计算要显示的各个图形部件的位置和尺寸2、 对于每个要显示的图形部件,在计算出的位置,以计算出的尺寸绘制出这个图形部件。 上述流程中,用户交互操作主要包括用户使用鼠标拖动窗口、改变窗口尺寸、单击或双击某个部件、滚动滚轮,使用键盘进行输入,以及使用其他输入设备进行的输入等等,这些 都可能导致图形部件位置和尺寸的改变,从而导致图形用户界面的刷新(重新绘制)。程序设 置主要是程序员在程序代码里面设定的部件的位置、尺寸、对尺寸的限定、排列顺序、相对 位置、部件间距等相关的信息。对各个图形部件的位置和尺寸的计算就是综合考虑用户交互 操作和程序设置的各个因素,计算出每个部件的符合要求的合理的位置和尺寸,从而形成图 形用户界面的整体布局。正因为图形用户界面的传统的显示过程中没有考虑到不同语言文字的阅读方向的差异, 所以不能根据语言调整布局方向,因此,垂直书写的文字只能采用水平方式来进行显示,这 完全有悖于用户的阅读习惯。现在的计算机系统已经能够部分的支持从右向左书写的文字。对于垂直排列类文字的图 形用户界面,仍旧几乎没有做任何支持;目前的方案是按照水平方向进行用户界面中所有部 件的布局,而所有文本则将其旋转为水平方向后输出。然而,不同于汉字相邻两字的笔画相 互独立的特点,蒙古文和阿拉伯文的词中两个相邻的字符的笔画是连接在一起,而且每个字 符随着它所处位置的不同,在词首、词中、词尾、独立成词时分别呈现出不同的字形,这就 是所谓的变形显现。所以,在将如蒙古文一类的文字的字符串旋转为水平方向时,单个 字符的字形也作了 90度的旋转。对于普通的用户来说,他们只有歪着脑袋才能较清楚地看出 计算机中的文字。计算机对于类似蒙古文这样垂直排列的文字的支持现状严重阻碍了民族地 区的信息化进程。
技术实现思路
本专利技术的目的在于提供计算机图形用户界面对语言自适应的方法,让计算机系统根据当 前显示的语言文字的不同,自动地选择一种最合适的布局方向进行图形用户界面的显示,最 大限度地符合用户的习惯。根据对各种语言文字书写方向的分析,我们总结出四种布局模式如下□水平正常模式(LTR-TTB)对应于英文或者现代汉字一类的文字,字符之间从左向右排列,目前大多数计算机用户能够见到的图形用户界面属于这一模式; □水平反向模式(RTL-TTB)对应于阿拉伯字母类的文字,字符之间从右向左排列; □垂直正常模式(TTB-LTR)对应于传统蒙古字母类的文字,字符之间从上向下排列, 各列从左向右排列;□垂直反向模式(TTB-RTL)对应于日文一类的文字,字符之间从上向下排列,各列从 右向左排列。 本方法应用于图形用户界面开发库的设计中,提供的库作为程序员开发应用程序的基础 库,在此基础上,程序员开发出的应用程序可以以多种语言运行,并能自动根据语言自适应, 调整图形用户界面的布局。为实现上述目的,本专利技术采用如下技术方案。,其步骤为1) 根据要显示或要处理的主语言设置布局模式;2) 根据程序设置,计算各个图形部件的位置和尺寸;3) 根据确定的布局模式对各个图形部件的位置和尺寸实施变换;4) 对于每个要显示的图形部件,用其变换后的位置和尺寸重新绘制该图形部件。 所述布局模式的设置为程序设置或用户设置。所述布局模式包括水平正常模式、水平反向模式、垂直正常模式、垂直反向模式。 所述的方法中对各个图形部件的位置和尺寸实施变换的方法为a) 水平正常模式,不作变换;各个部件的位置和尺寸均保持不变;b) 水平反向模式,作水平镜像变换各个部件的尺寸都保持不变,位置以窗口中轴线 作镜像变换;c) 垂直正常模式,作转置变换;各个部件的宽度值和高度值进行对调,位置作转置变换;d) 垂直反向模式,先作转置变换,再作水平镜像变换;各个部件的宽度值和高度值进 行对调,位置做转置变换,然后各个部件的尺寸都保持不变,位置以窗口中轴线作镜像变换。所述水平镜像变换的方法为对于显现部件所占的区域由其父部件或布周类对象通过动 态空间管理来得到,所述显现部件在任一布局模式下时,部件本身或布局管理器都能够确定 出其所有子元素基于LTR-TTB的相对坐标。所述转置变换的方法为对于显现部件所占的区域由其父部件或布局类对象通过动态空 间管理来得到,所述显现部件在任一布局模式下时,部件本身或布局管理器都能够确定出其 所有子元素基于LTR-TTB的相对坐标。所述方法2)中根据用户交互操作的结果重新计算各个图形部件的位置和尺寸。所述的用户交互操作包括但不限于下列操作的一种或几种鼠标拖动窗口、改变窗口尺 寸、单击或双击某个部件、滚动滚轮,键盘输入。所述的程序设置包括但不限于下列设置的一种或几种部件的位置、尺寸、对尺寸的限 定、排列顺序、相对位置、部件间距。所述的方法2)中在水平正常布局模式下计算要显示的各个图形部件的位置和尺寸。本专利技术的积极效果-本方法应用于图形用户界面开发库的设计中,提供的库作为程序员开发应用程序的基础 库,在此基础上,程序员开发出的应用程序可以以多种语言运行,并能自动根据语言自适应, 调整图形用户界面的布局方向,最大限度地符合用户习惯。对于图形用户界面库来说,应用 此方法可以符合更多不同国家和地本文档来自技高网
...

【技术保护点】
一种图形用户界面的多语言自适应方法,其步骤为:1)根据要显示或要处理的主语言设置布局模式;2)根据程序设置,计算各个图形部件的位置和尺寸,3)根据确定的布局模式对各个图形部件的位置和尺寸实施变换;4)对于每个 要显示的图形部件,用其变换后的位置和尺寸重新绘制该图形部件。

【技术特征摘要】
1.一种图形用户界面的多语言自适应方法,其步骤为1)根据要显示或要处理的主语言设置布局模式;2)根据程序设置,计算各个图形部件的位置和尺寸,3)根据确定的布局模式对各个图形部件的位置和尺寸实施变换;4)对于每个要显示的图形部件,用其变换后的位置和尺寸重新绘制该图形部件。2. 如权利要求l所述的方法,其特征在于所述布局模式的设置为程序设置或用户设置。3. 如权利要求l或2所述的方法,其特征在于所述布局模式包括水平正常模式、水平反向模 式、垂直iH常模式、垂直反向模式。4. 如权利要求l所述的方法,其特征在于对各个图形部件的位置和尺寸实施变换的方法为a) 水平正常模式,不作变换;各个部件的位置和尺寸均保持不变;b) 水平反向模式,作水平镜像变换;各个部件的尺寸都保持不变,位置以窗口中轴线 作镜像变换;C)垂直正常模式,作转置变换;各个部件的宽度值和高度值进行对调,位置作转置变换;d)垂直反向模式,先作转置变换,再作水平镜像变换;各个部件的宽度值和高度值进 行对调,位置做转置变换,然后各个部件的尺寸都保持不变,位置以窗口中轴线作镜像变换。5. 如权利要求4所述...

【专利技术属性】
技术研发人员:芮建武刘汇丹吴健姚延栋姜力郭伟军
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1