硬體平臺:全志的A40I-H
軟體平臺:Linux 核心版本3.10.65
QT版本:5.9.0
重新編譯dict_pinyin.dat的作用
1.解決輸入"nss"導致輸入法崩潰的問題
2.解決輸入某些嵌入式平臺不支援的字型,例如“捃”,導致程式崩潰的問題
原始碼路徑:
~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/command
目錄裡面有一個Makefile和pinyinime_dictbuilder.cpp
1.不能直接make,cpp檔案裡面有一句提示資訊
/**
* Build binary dictionary model. Make sure that ___BUILD_MODEL___ is defined
* in dictdef.h.
*/
需要在dictdef.h裡面取消___BUILD_MODEL___ 宏的註釋,dictdef.h路徑:
~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/include
2.修改完成,在當前目錄下,開啟控制檯,直接make即可
3.編譯完成,會有一個可執行檔案pinyinime_dictbuilder
4.按照自己的喜好或者需求,修改檔案rawdict_utf16_65105_freq.txt
路徑:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data
注意:最好在虛擬機器或者Linux環境下用vim開啟,不要拉出去Windows下編輯,不然txt檔案格式會有出入,到時候會build 失敗
a.某些生僻字,在當前平臺執行會報錯,可以直接刪除該字型,例如A40i的libQt5Gui.so庫, 不支援“捃"字,輸入拼音jun會讓程式崩潰,所以刪掉此行
b.輸入nss會報錯,刪掉ni shi shui 和ni shi shei 這兩行聯想字型即可
5. 回到pinyinime_dictbuilder的目錄,在控制檯裡面 ./pinyinime_dictbuilder執行編譯
編譯成功會提示如下資訊
6.回到data目錄,檢視.dat檔案是否已經更新
路徑:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data
在控制檯輸入 ls -la檢視.dat檔案的生成時間,如果為最新,即可直接放入嵌入式平臺中使用。
參考資料:
1.GooglePinyin分析 | AlphaBoom
2.xiangfademao/PinYinImeDicBuilder: 谷歌拼音輸入法詞庫生成工具 (github.com)
3.qt平臺整合google拼音中文輸入法_qml使用谷歌拼音-CSDN部落格
特別鳴謝:小瑜、林工、小小周。