AWTK是基于C語言開發(fā)的跨平臺(tái)GUI框架。AWTK使用經(jīng)驗(yàn)系列文章將介紹開發(fā)AWTK過程中一些常見問題與解決方案,例如:如何播放視頻或攝像頭畫面?如何播放序列幀動(dòng)畫?這些都會(huì)在系列文章進(jìn)行解答。
本篇文章將簡(jiǎn)單介紹阿拉伯文本相關(guān)整形與排序規(guī)則,接著介紹在AWStudio設(shè)置阿拉伯語言翻譯的步驟。
阿拉伯文本整形規(guī)則
一般GUI顯示英文或者中文時(shí),內(nèi)存中存儲(chǔ)的字符串和我們?nèi)搜劭吹降淖址且粯拥模坏前⒗谋颈容^特殊,內(nèi)存中的字符串需要經(jīng)過幾個(gè)步驟處理(主要是整形與文本方向排序),最終才形成成我們?nèi)搜劭吹降淖址?br />關(guān)于阿拉伯文本整形可以分為5種,下面將簡(jiǎn)單介紹這幾種類型的整形。1、字母位置不同,如在開頭或結(jié)尾可能會(huì)導(dǎo)致不一樣的變形:
圖1字母位置變形(Shaper)
2、字母會(huì)受到前后字母影響而變形,如下圖兩個(gè)字符會(huì)結(jié)合形成第三個(gè)字符:
?
圖2連寫變形(Ligature)
3、元音符號(hào)和字母會(huì)有組合的特性,如下圖,一個(gè)字母與一個(gè)元音符號(hào)會(huì)有位移結(jié)合的變形:
?
圖3元音符號(hào)變形(Diacritics)
4、有時(shí)候?yàn)榱嗣烙^的視覺效果會(huì)將字母延長(zhǎng)湊成一整行的長(zhǎng)度,這種是字母延長(zhǎng)變形:
?
圖4字母延長(zhǎng)變形(Kashida)
5、字母之間插入連接符號(hào)會(huì)影響變形:
?
圖5字母插入連接符號(hào)變形(Tatwell)
阿拉伯文本雙向排序
Unicode不同類型字符的方向?qū)傩?/strong>
Unicode字符可以分為強(qiáng)字符、弱字符和中性字符,不同類型的字符具有不同的方向性特征:
1、強(qiáng)字符:英文、漢字、阿拉伯字母等,它們方向性都是確定的,比如英文屬于從左到右的LTR字符,阿拉伯屬于從右到左的RTL字符,它們可能影響前后字符的方向性;
2、弱字符:數(shù)字和數(shù)字相關(guān)的符號(hào),它們方向性是確定的,但是對(duì)前后字符不會(huì)產(chǎn)生影響;
3、中性字符:大部分標(biāo)點(diǎn)符號(hào)和空格,它們方向是不確定的,由上下文bidi屬性決定其方向。
AWTK支持阿拉伯文本的哪些規(guī)則
由于阿拉伯文本整形規(guī)則和排序規(guī)則比較復(fù)雜,AWTK內(nèi)部調(diào)用了bidi算法對(duì)阿拉伯文本進(jìn)行排序并做簡(jiǎn)單的變形,bidi算法支持文本雙向排序算法,在整形規(guī)則上暫時(shí)只支持字母位置變形和連寫變形,不支持元音符號(hào)變形。
如何在AWTK使用阿拉伯語言
如果想在AWTK正確使用阿拉伯語言,可以參考以下步驟:
下載阿拉伯語言字庫(kù)
AWStudio新建工程的默認(rèn)字庫(kù)是不支持顯示阿拉伯文本的,因此需要先找到支持阿拉伯文本字庫(kù)文件。字庫(kù)文件可以在相關(guān)字體下載網(wǎng)站搜索并下載,或者從awtk資源目錄拷貝自帶的阿拉伯語言字庫(kù)文件:
awtk/design/default/fonts/trado.ttf導(dǎo)入阿拉伯語言字庫(kù)到工程準(zhǔn)備好字庫(kù)文件后,可以使用AWStudio將字庫(kù)文件導(dǎo)入到自己的項(xiàng)目工程。在AWStudio資源瀏覽器選擇“字體”,點(diǎn)擊右上角加號(hào)選擇字庫(kù)文件并導(dǎo)入。?
圖6使用AWStudio導(dǎo)入字庫(kù)文件
在AWStudio設(shè)置阿拉伯語言翻譯文本
AWStudio支持給工程設(shè)置多國(guó)語言翻譯并實(shí)時(shí)切換的功能,點(diǎn)擊AWStudio上方菜單欄的“翻譯”按鈕進(jìn)入多語言翻譯設(shè)置頁(yè)面,頁(yè)面操作步驟如下:1、點(diǎn)擊界面右下角添加語言按鈕;2、在對(duì)話框選擇要添加的語言、國(guó)家或地區(qū),比如阿拉伯語言選擇“Arabic”;3、點(diǎn)擊對(duì)話框確定按鈕;4、在對(duì)應(yīng)語言框輸入翻譯后的文本內(nèi)容。(如果顯示異??赡苁亲煮w缺失,可以在添加語言對(duì)話框點(diǎn)擊“導(dǎo)入字體”添加字庫(kù)文件)
圖7使用AWStudio添加阿拉伯語言翻譯
最后在AWStudio給控件text屬性設(shè)置原始文本,并且開啟翻譯選項(xiàng),之后該控件就會(huì)根據(jù)程序當(dāng)前語言翻譯進(jìn)行翻譯。
阿拉伯語言方向性問題
由于阿拉伯書寫習(xí)慣是從右到左,在切換語言后同樣需要遵循這個(gè)習(xí)慣。AWTK內(nèi)置的bidi算法可以自動(dòng)處理阿拉伯文本排序,也可以手動(dòng)定義bidi屬性(默認(rèn)為auto),如強(qiáng)制設(shè)置RTL排序。
-
C語言
+關(guān)注
關(guān)注
180文章
7610瀏覽量
137219 -
awtk
+關(guān)注
關(guān)注
0文章
44瀏覽量
237
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論