在国际化大潮流之下,很多嵌入式系统产品,需要支持阿拉伯语言,可很多人却为之烦恼,我遇到了同样的烦恼,因此在网上搜索了很多关于阿拉伯字库及阿拉伯语言显示的资料,经过实战,整理了这篇文章、资料。
阿拉伯语言显示的难点、痛点:
- 不知阿拉伯文的排版规则 (连写变形规则)。
- 没法找到支持阿拉伯文的字库。
在此我将为大家一一解决上述问题。
一。 阿拉伯文的排版规则。
阿拉伯语属阿非罗-亚细亚语系(闪含语系)闪语族。词一般由3个原生字母构成,可添加前缀,后缀,或使词的内部音位发生变化和插入其它音位构成新词。
阿拉伯共有28个字母,都是辅音字母,每个字母只代表一个辅音音素,每个音素只用一个字母表示。对应unicode:0x060C–0x06FE。
阿拉伯语共有8个元音,3个短元音,3个长元音和2个半元音,短元音是用加在辅音字母上面或下面的符号来表示。这些符号称为“动符”;长元音和软音是用动符和3个辅音字母来表示的。阿拉伯语发音符号共有12个(叠音符号不算在内)。普通书报上不加符号。
阿拉伯文字在伊斯兰教的影响下流传很广。波斯文,乌尔都文以及我国的新疆的维吾尔文等多种文字采用阿拉伯字母。阿拉伯文的字母没有大写和小写的区分,但有印刷体和书写体的区别,而且除去د ذ ر ز و五个字母以外,其他23个字母都可以和后面的字母连写,而且因其在词头,词中和词尾的位置不同,字形也有所变化。阿拉伯文字的书写方向和中文不同,它是自右向左横着写。因此,阿拉伯文的书籍和本子都是右开本的。
在换行的时候,一般的,我们需要判断一下是否是整个词,进行整个词的换行,而不能把词拆成两个部分。阿拉伯文里面的数字仍然采用从左往右的显示方式。
规则1。
阿拉伯文变形:
根据上面分法,分成first,last,middle,alone,并根据判断是否是词的前连(前面字符在集合1中),后连(后面字符在集合2中),中间(即前后连,前面字符在集合1中,后面字符在集合2中)或单独一个词,进行变形。