[发明专利]一种阿拉伯语显示方法有效
申请号: | 201910751511.X | 申请日: | 2019-08-15 |
公开(公告)号: | CN110609980B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 崔晓珂 | 申请(专利权)人: | 崔晓珂 |
主分类号: | G06F40/109 | 分类号: | G06F40/109;G06F3/14;A63F13/52 |
代理公司: | 北京元本知识产权代理事务所(普通合伙) 11308 | 代理人: | 王红霞 |
地址: | 610225 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 阿拉伯语 显示 方法 | ||
本发明属于文字显示技术领域,公开了一种阿拉伯语显示方法,用于解决文本控件由于是从左向右进行排版而导致阿拉伯语不能正确显示的问题。本发明不仅解决了阿拉伯语分行显示出现错误的问题,同时能够在换行时正确的处理富文本标签问题,同时当阿拉伯语与非阿拉伯语混合时,也能够得到正确的显示。本发明使得文本控件中(例如游戏引擎中的文本控件)支持阿拉伯语显示变得非常简单,特别是对富文本格式的支持,让文本显示效果更加丰富。
技术领域
本发明属于文字显示技术领域,具体涉及一种阿拉伯语显示方法。
背景技术
阿拉伯语是从右向左的书写方式,所以他的文字排版需要从右向左,而且还有部分符号的变形和连词转换规则,但是一些文本显示控件(例如主流游戏引擎上的文本显示控件)都是从左向右进行排版,因此需要对于需要支持阿拉伯语显示的应用来说是一个很难解决的问题。
然而现有的技术方案提供了一种根据变形和连词规则将阿拉伯字符进行转换与反转换的方法,但是并不能对多行文本显示进行很好的支持,如果使用现有方案转换的长文本直接赋值到文本控件中进行显示的话存在以下技术问题。
第一、多行文本显示错误
结合附图1,如果只是将阿拉伯语文本进行简单的转换也反转处理后设置到文本控件(例如游戏引擎的文本控件)上,那么由于文本控件的显示顺序是从左向右从上向下,所以显示出来的文本会是期望的第一行文本在最下面,而最后一行文本是在最上面。结合附图1,使用英文字母代替阿拉伯字符作讲解。此处假设“ABCDEF”均为阿拉伯字符,那么假设现有字符串内容为“ABCDEF”,如果每一行只可以显示2个字符,那么该字符串的实际期望显示是图1a,而如果不进行相应处理则实际上会显示成图1b。因为字符串反转和换行后内容变成了“FEDCBA”,而进行换行后变成“FE\nDC\nBA”,这样就显示成了图1b。
第二、换行时富文本标签显示错误
结合附图2和附图3,由于阿拉伯语从右向左显示,而富文本标签(例如游戏引擎的富文本标签)依然是按照开始符在左侧,结束符在右侧,所以在富文本标记的内容长度达到了两行和两行以上时就会出现显示不正确(如图2b所示,正确显示应该是图2a)。为了方便理解,使用英文字母代替阿拉伯字符作举例说明。
结合附图3,此处假设“ABCDEF”均为阿拉伯字符,那么假设现有字符串内容为“Acolor=#ff0000BC/colorDEF”,如果每一行只可以显示2个字符,那么该字符串的实际期望显示是图3a,而如果不进行相应处理则实际上会显示成图3b。因为字符串反转和换行后内容变成了“Bcolor=#ff0000A\nD/colorC\nFE”。
第三、带有富文本标签的阿拉伯语与非阿拉伯语混合情况下显示错误
结合附图4,在阿拉伯和非阿拉伯语字符串混合的时候,如果只是简单的字符串分块,然后对其进行反转处理,则在遇到多个富文本内容相邻的时候会出现显示错误,实际期望的是如图4a,而实际会显示成图4b。
发明内容
本发明为了解决文本控件由于是从左向右进行排版而导致阿拉伯语不能正确显示的问题,而提供一种阿拉伯语显示方法。
为解决技术问题,本发明所采用的技术方案是:
一种阿拉伯语显示方法,其特征在于,包括:
(1)将需要设置到文本控件上的文本字符串进行预处理;
(2)将预处理后的字符串根据文本控件的宽度进行分行处理,生成行字符串的列表;
(3)对分行后的字符串进行富文本标签补齐处理;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于崔晓珂,未经崔晓珂许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910751511.X/2.html,转载请声明来源钻瓜专利网。