如何判斷複雜語言引擎支援情況

2021-07-14 05:59:01 字數 1163 閱讀 1461

[description]

對於mtk支援的複雜語言,預設是帶有處理引擎的。如果新增一種複雜語言如何知道現在版本是否支援這個字元處理引擎呢?

[solution]

複雜語言處理引擎都是按照各個語言字元分別處理的,即如果2種語言字元相同,則他們可以共用一套引擎,比如阿拉伯語、波斯語、烏爾都語使用

同一套引擎;印度語、孟加拉語使用一套引擎。

系統在處理字串時先是根據字串編碼範圍把字串分成若干小段,比如「asbc中國ddf」會分成「asbc」、「中國」、""、「ddf」4個子串,每個字串

用乙個script標記這個字串是屬於哪種語言。後面再根據這個script變數分別呼叫不同的harfbuzz引擎對這些子串進行處理。

如下是kk版本支援的語言引擎介面。

harfbuzz-shaper.cpp(external\harfbuzz_ng\src\hb-old)

const hb_scriptengine hb_scriptengines = ,

// greek

,// cyrillic

,// armenian

,// hebrew

,// arabic

,// syriac

,// thaana

,// devanagari

,// bengali

,// gurmukhi

,// gujarati

,// oriya

,// tamil

,// telugu

,// kannada

,// malayalam

,// sinhala

,// thai

,// lao

,// tibetan

,// myanmar

#ifdef zawgyi_support

,#else

,#endif

// georgianrecents

,// hangul

,// ogham

,// runic

,// khmer

,// n'ko

};jb版本的檔案目錄external\harfbuzz\src\,結構稍有不同。

ps:如果是新增一種複雜語言,可以先看看這個語言的字元是不是和已經支援的語言字元一樣,如果是,則不需新增引擎。

C語言宣告的各種複雜情況

你知道 下面這個東西指什麼嗎?char const next 說起來,c語言真的太容易出現各種莫名其妙 不能明白其中的奧妙 的東西了。看下面這個東西 上面的就應該被理解為 next是乙個函式指標,它返回乙個指標,它指向乙個型別為char的常量指標。有下面這些例子 高階宣告 看個例子 int a 它把...

android如何支援新的語言

這段時間在做印度專案時,需要新增印度語的支援,但是因為客戶要的是2.3的系統,2.3裡面沒有印度語的字型檔。1 首先從4.0裡面挖出印度語相關的3個字型檔 lohit bengali.ttf lohit devanagari.ttf lohit tamil.ttf 將這三個檔案新增到framewor...

Silverlight如何支援多語言

利用資源檔案 resources file 使silverlight支援多語言。1.建立乙個silverlight應用程式,multilanguagedemo。3.新增string型別的資源,這裡新增 usernamestring user name。設定access modeifer為public...