在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【AWTK使用經驗】如何在AWTK顯示阿拉伯文本

ZLG致遠電子 ? 2024-09-12 08:07 ? 次閱讀

AWTK是基于C語言開發的跨平臺GUI框架。AWTK使用經驗系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何播放視頻或攝像頭畫面?如何播放序列幀動畫?這些都會在系列文章進行解答。

本篇文章將簡單介紹阿拉伯文本相關整形與排序規則,接著介紹在AWStudio設置阿拉伯語言翻譯的步驟。


阿拉伯文本整形規則

一般GUI顯示英文或者中文時,內存中存儲的字符串和我們人眼看到的字符串是一樣的;但是阿拉伯文本比較特殊,內存中的字符串需要經過幾個步驟處理(主要是整形與文本方向排序),最終才形成成我們人眼看到的字符串。
關于阿拉伯文本整形可以分為5種,下面將簡單介紹這幾種類型的整形。1、字母位置不同,如在開頭或結尾可能會導致不一樣的變形:0ff2a2cc-709b-11ef-bb4b-92fbcf53809c.png

圖1字母位置變形(Shaper)

2、字母會受到前后字母影響而變形,如下圖兩個字符會結合形成第三個字符:

0ffbc280-709b-11ef-bb4b-92fbcf53809c.png?

圖2連寫變形(Ligature)

3、元音符號和字母會有組合的特性,如下圖,一個字母與一個元音符號會有位移結合的變形:

100ad536-709b-11ef-bb4b-92fbcf53809c.png?

圖3元音符號變形(Diacritics)

4、有時候為了美觀的視覺效果會將字母延長湊成一整行的長度,這種是字母延長變形:

10208700-709b-11ef-bb4b-92fbcf53809c.png?

圖4字母延長變形(Kashida)

5、字母之間插入連接符號會影響變形:

102bbad0-709b-11ef-bb4b-92fbcf53809c.png?

圖5字母插入連接符號變形(Tatwell)

阿拉伯文本雙向排序

Unicode不同類型字符的方向屬性

Unicode字符可以分為強字符、弱字符和中性字符,不同類型的字符具有不同的方向性特征:

1、強字符:英文、漢字、阿拉伯字母等,它們方向性都是確定的,比如英文屬于從左到右的LTR字符,阿拉伯屬于從右到左的RTL字符,它們可能影響前后字符的方向性;

2、弱字符:數字和數字相關的符號,它們方向性是確定的,但是對前后字符不會產生影響;

3、中性字符:大部分標點符號和空格,它們方向是不確定的,由上下文bidi屬性決定其方向。

AWTK支持阿拉伯文本的哪些規則

由于阿拉伯文本整形規則和排序規則比較復雜,AWTK內部調用了bidi算法對阿拉伯文本進行排序并做簡單的變形,bidi算法支持文本雙向排序算法,在整形規則上暫時只支持字母位置變形和連寫變形,不支持元音符號變形

如何在AWTK使用阿拉伯語言

如果想在AWTK正確使用阿拉伯語言,可以參考以下步驟:

下載阿拉伯語言字庫

AWStudio新建工程的默認字庫是不支持顯示阿拉伯文本的,因此需要先找到支持阿拉伯文本字庫文件。字庫文件可以在相關字體下載網站搜索并下載,或者從awtk資源目錄拷貝自帶的阿拉伯語言字庫文件:

awtk/design/default/fonts/trado.ttf導入阿拉伯語言字庫到工程準備好字庫文件后,可以使用AWStudio將字庫文件導入到自己的項目工程。在AWStudio資源瀏覽器選擇“字體”,點擊右上角加號選擇字庫文件并導入。10415ce6-709b-11ef-bb4b-92fbcf53809c.png?

圖6使用AWStudio導入字庫文件

在AWStudio設置阿拉伯語言翻譯文本

AWStudio支持給工程設置多國語言翻譯并實時切換的功能,點擊AWStudio上方菜單欄的“翻譯”按鈕進入多語言翻譯設置頁面,頁面操作步驟如下:1、點擊界面右下角添加語言按鈕;2、在對話框選擇要添加的語言、國家或地區,比如阿拉伯語言選擇“Arabic”;3、點擊對話框確定按鈕;4、在對應語言框輸入翻譯后的文本內容。(如果顯示異常可能是字體缺失,可以在添加語言對話框點擊“導入字體”添加字庫文件

1053ccaa-709b-11ef-bb4b-92fbcf53809c.png

圖7使用AWStudio添加阿拉伯語言翻譯

最后在AWStudio給控件text屬性設置原始文本,并且開啟翻譯選項,之后該控件就會根據程序當前語言翻譯進行翻譯。

10602540-709b-11ef-bb4b-92fbcf53809c.png

阿拉伯語言方向性問題

由于阿拉伯書寫習慣是從右到左,在切換語言后同樣需要遵循這個習慣。AWTK內置的bidi算法可以自動處理阿拉伯文本排序,也可以手動定義bidi屬性(默認為auto),如強制設置RTL排序。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137714
  • awtk
    +關注

    關注

    0

    文章

    46

    瀏覽量

    252
收藏 人收藏

    評論

    相關推薦

    AWTK使用經驗】如何響應物理按鍵

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章
    的頭像 發表于 06-06 08:25 ?860次閱讀
    【<b class='flag-5'>AWTK</b>使用<b class='flag-5'>經驗</b>】如何響應物理按鍵

    AWTK使用經驗】如何更換AWTK SDK與渲染模式

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何播放攝像頭畫面?如何更換
    的頭像 發表于 08-01 08:25 ?1158次閱讀
    【<b class='flag-5'>AWTK</b>使用<b class='flag-5'>經驗</b>】如何更換<b class='flag-5'>AWTK</b> SDK與渲染模式

    VEE對象是否支持阿拉伯字符?

    同時顯示英語和阿拉伯語(或其他非拉丁字符集)嗎? TIA Mike Watts 以上來自于谷歌翻譯 以下為原文Hi All, Anyone know if VEE objects support
    發表于 04-02 06:17

    請問怎么在mplab x v3.26中保存阿拉伯字符串?

    大家好!我想在我的代碼中保存一個阿拉伯字符串。我該怎么辦?我可以在mplab x編輯器中編寫阿拉伯字符串,但當我保存項目并退出mplab x時,通過重新打開mplab x中的項目,阿拉伯字符串
    發表于 08-28 08:22

    什么是AWTKAWTK有哪些主要特色?

    什么是AWTKAWTK有哪些主要特色?
    發表于 06-16 06:43

    介紹AWTK

    ZLG 開源 GUI 引擎 AWTK 1.6 發布一、介紹AWTK全稱 Toolkit AnyWhere,是ZLG開發的開源 GUI 引擎,旨在為嵌入式系統、WEB、各種小程序、手機和 PC 打造
    發表于 08-20 08:09

    AWTK的寓意

    一、介紹AWTK全稱Toolkit AnyWhere,是ZLG開發的開源GUI引擎,旨在為嵌入式系統、WEB、各種小程序、手機和PC打造的通用GUI引擎,為用戶提供一個功能強大、高效可靠、簡單易用
    發表于 08-20 08:12

    介紹AWTK

    ZLG開源GUI引擎AWTK發布1.1版本一、介紹AWTK全稱Toolkit AnyWhere,是ZLG開發的開源GUI引擎,旨在為嵌入式系統、WEB、各種小程序、手機和PC打造的通用GUI引擎,為
    發表于 08-20 08:18

    AWTK-MVVM是什么?其功能有哪些

    AWTK-MVVM是一套為AWTK用C語言開發,并支持各種腳本語言的MVVM框架,實現了數據綁定、命令綁定和窗口導航等基本功能,使用AWTK-MVVM開發應用程序,無需學習AWTK本身
    發表于 12-15 06:07

    是否有其他字體支持更好的阿拉伯語文本

    我有一個問題,要在屏幕上顯示阿拉伯語文本。目前我使用的字體是 Janna LT Regular。孤立的字母似乎不是問題。但是如果我想寫更長的文本/單詞,那么我會在屏幕上看到很多“?”是否有其他字體支持更好的
    發表于 01-12 08:41

    HC8218 阿拉伯電話本來電顯示電話芯片

    HC8218 阿拉伯電話本來電顯示電話芯片 來電顯示:FSK & DTMF兼容英文/阿拉伯文/波斯文三種語言菜單及電話簿輸入;電話簿輸入可采用
    發表于 01-15 09:44 ?1170次閱讀

    AWTK使用經驗】如何設計立體電池進度條?

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章
    的頭像 發表于 04-18 08:25 ?508次閱讀
    【<b class='flag-5'>AWTK</b>使用<b class='flag-5'>經驗</b>】如何設計立體電池進度條?

    AWTK使用經驗】加載和釋放外部圖片

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章
    的頭像 發表于 04-26 08:25 ?517次閱讀
    【<b class='flag-5'>AWTK</b>使用<b class='flag-5'>經驗</b>】加載和釋放外部圖片

    AWTK使用經驗】如何播放視頻或攝像頭畫面

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章
    的頭像 發表于 07-04 08:25 ?702次閱讀
    【<b class='flag-5'>AWTK</b>使用<b class='flag-5'>經驗</b>】如何播放視頻或攝像頭畫面

    AWTK使用經驗】如何實現序列幀動畫

    AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章
    的頭像 發表于 07-18 08:25 ?481次閱讀
    【<b class='flag-5'>AWTK</b>使用<b class='flag-5'>經驗</b>】如何實現序列幀動畫
    主站蜘蛛池模板: 日本免费人成黄页网观看视频 | 亚洲毛片基地4455ww | 欧美三级黄 | 日本免费在线 | 成人在线免费 | 亚洲国产一区二区在线 | 天堂在线www在线资源 | 免费久久精品国产片香蕉 | 欧美久久天天综合香蕉伊 | 欧美色婷婷 | 国产美女视频一区二区三区 | 依依成人精品无v国产 | 伊人91在线| 国产精品欧美激情在线播放 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 女人张开腿男人猛桶视频 | 久草免费在线播放 | 精品国产一区二区三区国产馆 | 赛罗奥特曼银河帝国普通话免费版 | 欧美成人午夜影院 | 性色视频免费 | 婷婷激情六月 | 国产日韩一区二区三区 | 羞羞色男人的天堂伊人久久 | 日本午夜大片免费观看视频 | 日本s色大片在线观看 | 一本大道一卡二卡 | 午夜视频在线观看免费观看在线观看 | 欧美高清激情毛片 | 天天干天天草天天 | 亚洲成a人v在线观看 | 一区二区3区免费视频 | 国产小视频免费看 | 国产在线观看www鲁啊鲁免费 | 四虎精品免费永久在线 | 天天干夜干 | 在线免费观看黄色小视频 | 国产亚洲精品久久久久久久软件 | 黄色网址大全免费 | 亚洲第一网站 | 丁香花五月天婷婷 |