当前位置: 首页 > 专利查询>崔晓珂专利>正文

一种阿拉伯语显示方法技术

技术编号:22914083 阅读:27 留言:0更新日期:2019-12-24 21:52
本发明专利技术属于文字显示技术领域,公开了一种阿拉伯语显示方法,用于解决文本控件由于是从左向右进行排版而导致阿拉伯语不能正确显示的问题。本发明专利技术不仅解决了阿拉伯语分行显示出现错误的问题,同时能够在换行时正确的处理富文本标签问题,同时当阿拉伯语与非阿拉伯语混合时,也能够得到正确的显示。本发明专利技术使得文本控件中(例如游戏引擎中的文本控件)支持阿拉伯语显示变得非常简单,特别是对富文本格式的支持,让文本显示效果更加丰富。

An Arabic display method

【技术实现步骤摘要】
一种阿拉伯语显示方法
本专利技术属于文字显示
,具体涉及一种阿拉伯语显示方法。
技术介绍
阿拉伯语是从右向左的书写方式,所以他的文字排版需要从右向左,而且还有部分符号的变形和连词转换规则,但是一些文本显示控件(例如主流游戏引擎上的文本显示控件)都是从左向右进行排版,因此需要对于需要支持阿拉伯语显示的应用来说是一个很难解决的问题。然而现有的技术方案提供了一种根据变形和连词规则将阿拉伯字符进行转换与反转换的方法,但是并不能对多行文本显示进行很好的支持,如果使用现有方案转换的长文本直接赋值到文本控件中进行显示的话存在以下技术问题。第一、多行文本显示错误结合附图1,如果只是将阿拉伯语文本进行简单的转换也反转处理后设置到文本控件(例如游戏引擎的文本控件)上,那么由于文本控件的显示顺序是从左向右从上向下,所以显示出来的文本会是期望的第一行文本在最下面,而最后一行文本是在最上面。结合附图1,使用英文字母代替阿拉伯字符作讲解。此处假设“ABCDEF”均为阿拉伯字符,那么假设现有字符串内容为“ABCDEF”,如果每一行只可以显示2个字符,那么该字符串的实际期望显示是图1a,而如果不进行相应处理则实际上会显示成图1b。因为字符串反转和换行后内容变成了“FEDCBA”,而进行换行后变成“FE\nDC\nBA”,这样就显示成了图1b。第二、换行时富文本标签显示错误结合附图2和附图3,由于阿拉伯语从右向左显示,而富文本标签(例如游戏引擎的富文本标签)依然是按照开始符在左侧,结束符在右侧,所以在富文本标记的内容长度达到了两行和两行以上时就会出现显示不正确(如图2b所示,正确显示应该是图2a)。为了方便理解,使用英文字母代替阿拉伯字符作举例说明。结合附图3,此处假设“ABCDEF”均为阿拉伯字符,那么假设现有字符串内容为“A<color=#ff0000>BC</color>DEF”,如果每一行只可以显示2个字符,那么该字符串的实际期望显示是图3a,而如果不进行相应处理则实际上会显示成图3b。因为字符串反转和换行后内容变成了“B<color=#ff0000>A\nD</color>C\nFE”。第三、带有富文本标签的阿拉伯语与非阿拉伯语混合情况下显示错误结合附图4,在阿拉伯和非阿拉伯语字符串混合的时候,如果只是简单的字符串分块,然后对其进行反转处理,则在遇到多个富文本内容相邻的时候会出现显示错误,实际期望的是如图4a,而实际会显示成图4b。
技术实现思路
本专利技术为了解决文本控件由于是从左向右进行排版而导致阿拉伯语不能正确显示的问题,而提供一种阿拉伯语显示方法。为解决技术问题,本专利技术所采用的技术方案是:一种阿拉伯语显示方法,其特征在于,包括:(1)将需要设置到文本控件上的文本字符串进行预处理;(2)将预处理后的字符串根据文本控件的宽度进行分行处理,生成行字符串的列表;(3)对分行后的字符串进行富文本标签补齐处理;(4)对每行进行标签补齐处理后的字符串进行分块处理,将字符串按照阿拉伯字符块和非阿拉伯字符块进行分块,并且将阿拉伯字符块前的富文本开始标签和阿拉伯字符块后的富文本结束标签划分到阿拉伯字符块中;分块后对于每一个阿拉伯字符块和非阿拉伯字符块进行富文本标签补齐处理;然后再将各个字符块重新拼成一个新的字符串替换原有的行字符串;(5)将步骤(4)中处理之后得到的每一行字符串按照支持的富文本标签进行分段处理,将阿拉伯字符串段前的富文本开始标签和阿拉伯字符串段后的富文本结束标签划分到阿拉伯字符串段中,将分段后的字符串和富文本标签组成一个字符串段的列表;(6)将分段处理后的每一个字符串段进行分块处理,按照阿拉伯字符和非阿拉伯字符进行分块,并且将阿拉伯字符块前的富文本开始标签和阿拉伯字符块后的富文本结束标签划分到阿拉伯字符块中;(7)将阿拉伯字符块拆分成字符节点,然后将阿拉伯字符节点进行反转处理,将各个字符节点进行拼接生成新的字符块替换原有的阿拉伯字符块;(8)将各个字符串块按照反序的方式进行拼接生成新的字符串段,用新的字符串替换原字符串段的列表中的字符串段;(9)将步骤(8)中得到的字符串段的列表中的富文本标签进行配对组合的开始标签和结束标签互换处理;(10)将步骤(9)中得到的字符串段的列表按照反序的方式进行拼接生成新的字符串,用新的字符串替换原有的行字符串的列表中的行字符串;(11)将步骤(10)得到的行字符串的列表进行拼接生成新的字符串;(12)将步骤(11)得到的所述新的字符串设置在文本控件上进行显示。进一步的,所述步骤(3)中的对分行后的字符串进行富文本标签补齐处理包括:对于每一行字符串,如果开始标签在本行且对应的结束标签在也在本行,则该组标签不需要作处理;如果开始标签在本行,结束标签不在本行,而是在后面的某一行,则在本行的末尾添加该开始标签对应的结束标签;如果开始标签不在本行,而是在前面的某一行,结束标签在本行,则在本行的起始位置添加对应的开始标签。进一步的,所述步骤(4)中的所述分块后对于每一个阿拉伯字符块和非阿拉伯字符块进行富文本标签补齐处理包括:如果开始标签在本字符块且对应的结束标签也在本字符块,则该组标签不需要作处理;如果开始标签在本字符块,结束标签不在本字符块,而是在后面的某一字符块,则在本字符块的末尾添加该开始标签对应的结束标签;如果开始标签不在本字符块,而是在前面的某一字符块,结束标签在本字符块,则在本字符块的起始位置添加对应的开始标签。进一步的,所述步骤(11)中将步骤(10)得到的行字符串的列表进行拼接生成新的字符串为:将步骤(10)得到的行字符串的列表进行拼接,并且在不是最后一行的字符串尾添加换行符,生成新的字符串。进一步的,步骤(1)中的将需要设置到文本控件上的文本字符串进行预处理包括如下步骤:1.1将文本字符串按照阿拉伯语和非阿拉伯语符号的规则生成字符块列表;1.2遍历字符块列表,对阿拉伯语字符块按照阿拉伯字符的变形与连词规则进行变换,对非阿拉伯语字符块保持原形;1.3遍历字符块列表,将所有字符块重新拼接成一个新的字符串。进一步的,所述步骤(2)中的将预处理后的字符串根据文本控件的宽度进行分行处理,生成行字符串的列表包括:2.1获取文本控件中文本框空间的宽度、高度和字体大小信息;2.2根据2.1中获得宽度信息、高度信息、字体大小信息以及步骤(1.3)中获得的所述新的文本字符串内容计算出每一行中显示的字符;2.3计算出每行文本的字符数;2.4生成每行的字符个数列表;2.5将步骤(1.3)得到的所述新的字符串根据生成的每行的字符个数列表进行分行,生成行字符串的列表。与现有技术相比,本专利技术具有以下有益效果:本专利技术的阿拉伯语显示方法,相比于现有技术根据变形和连词规则将阿拉伯字符进行转换与反转换的方法,不本文档来自技高网
...

【技术保护点】
1.一种阿拉伯语显示方法,其特征在于,包括:/n(1)将需要设置到文本控件上的文本字符串进行预处理;/n(2)将预处理后的字符串根据文本控件的宽度进行分行处理,生成行字符串的列表;/n(3)对分行后的字符串进行富文本标签补齐处理;/n(4)对每行进行标签补齐处理后的字符串进行分块处理,将字符串按照阿拉伯字符块和非阿拉伯字符块进行分块,并且将阿拉伯字符块前的富文本开始标签和阿拉伯字符块后的富文本结束标签划分到阿拉伯字符块中;分块后对于每一个阿拉伯字符块和非阿拉伯字符块进行富文本标签补齐处理;然后再将各个字符块重新拼成一个新的字符串替换原有的行字符串;/n(5)将步骤(4)中处理之后得到的每一行字符串按照支持的富文本标签进行分段处理,将阿拉伯字符串段前的富文本开始标签和阿拉伯字符串段后的富文本结束标签划分到阿拉伯字符串段中,将分段后的字符串和富文本标签组成一个字符串段的列表;/n(6)将分段处理后的每一个字符串段进行分块处理,按照阿拉伯字符和非阿拉伯字符进行分块,并且将阿拉伯字符块前的富文本开始标签和阿拉伯字符块后的富文本结束标签划分到阿拉伯字符块中;/n(7)将阿拉伯字符块拆分成字符节点,然后将阿拉伯字符节点进行反转处理,将各个字符节点进行拼接生成新的字符块替换原有的阿拉伯字符块;/n(8)将各个字符串块按照反序的方式进行拼接生成新的字符串段,用新的字符串替换原字符串段的列表中的字符串段;/n(9)将步骤(8)中得到的字符串段的列表中的富文本标签进行配对组合的开始标签和结束标签互换处理;/n(10)将步骤(9)中得到的字符串段的列表按照反序的方式进行拼接生成新的字符串,用新的字符串替换原有的行字符串的列表中的行字符串;/n(11)将步骤(10)得到的行字符串的列表进行拼接生成新的字符串;/n(12)将步骤(11)得到的所述新的字符串设置在文本控件上进行显示。/n...

【技术特征摘要】
1.一种阿拉伯语显示方法,其特征在于,包括:
(1)将需要设置到文本控件上的文本字符串进行预处理;
(2)将预处理后的字符串根据文本控件的宽度进行分行处理,生成行字符串的列表;
(3)对分行后的字符串进行富文本标签补齐处理;
(4)对每行进行标签补齐处理后的字符串进行分块处理,将字符串按照阿拉伯字符块和非阿拉伯字符块进行分块,并且将阿拉伯字符块前的富文本开始标签和阿拉伯字符块后的富文本结束标签划分到阿拉伯字符块中;分块后对于每一个阿拉伯字符块和非阿拉伯字符块进行富文本标签补齐处理;然后再将各个字符块重新拼成一个新的字符串替换原有的行字符串;
(5)将步骤(4)中处理之后得到的每一行字符串按照支持的富文本标签进行分段处理,将阿拉伯字符串段前的富文本开始标签和阿拉伯字符串段后的富文本结束标签划分到阿拉伯字符串段中,将分段后的字符串和富文本标签组成一个字符串段的列表;
(6)将分段处理后的每一个字符串段进行分块处理,按照阿拉伯字符和非阿拉伯字符进行分块,并且将阿拉伯字符块前的富文本开始标签和阿拉伯字符块后的富文本结束标签划分到阿拉伯字符块中;
(7)将阿拉伯字符块拆分成字符节点,然后将阿拉伯字符节点进行反转处理,将各个字符节点进行拼接生成新的字符块替换原有的阿拉伯字符块;
(8)将各个字符串块按照反序的方式进行拼接生成新的字符串段,用新的字符串替换原字符串段的列表中的字符串段;
(9)将步骤(8)中得到的字符串段的列表中的富文本标签进行配对组合的开始标签和结束标签互换处理;
(10)将步骤(9)中得到的字符串段的列表按照反序的方式进行拼接生成新的字符串,用新的字符串替换原有的行字符串的列表中的行字符串;
(11)将步骤(10)得到的行字符串的列表进行拼接生成新的字符串;
(12)将步骤(11)得到的所述新的字符串设置在文本控件上进行显示。


2.根据权利要求1所述的阿拉伯语显示方法,其特征在于,所述步骤(3)中的对分行后的字符串进行富文本标签补齐处理包括:对于每一行字符串,如果开始标签在本行且对应的结束标签在也在本行,则该组标签不需要作处理;如果开始标签在本行...

【专利技术属性】
技术研发人员:崔晓珂
申请(专利权)人:崔晓珂
类型:发明
国别省市:四川;51

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

1