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

【AWTK使用經(jīng)驗(yàn)】如何更換AWTK SDK與渲染模式

VEE對象是否支持阿拉伯字符?
請問怎么在mplab x v3.26中保存阿拉伯字符串?
介紹AWTK
AWTK的寓意
介紹AWTK
AWTK-MVVM是什么?其功能有哪些
是否有其他字體支持更好的阿拉伯語文本?
HC8218 阿拉伯電話本來電顯示電話芯片
【AWTK使用經(jīng)驗(yàn)】如何設(shè)計(jì)立體電池進(jìn)度條?

【AWTK使用經(jīng)驗(yàn)】加載和釋放外部圖片

【AWTK使用經(jīng)驗(yàn)】如何播放視頻或攝像頭畫面

【AWTK使用經(jīng)驗(yàn)】如何實(shí)現(xiàn)序列幀動畫

評論