關於嵌入式QML dict_pinyin.dat的編譯更新

mgshadow發表於2024-07-29

硬體平臺:全志的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部落格

特別鳴謝:小瑜、林工、小小周。

相關文章