OPIE での日本語入力


シャープの日本語手書き入力 plugin の libCRIM.so を opie にもっていったところ、 ふつーに動いた。 てことはつまり、qtopia free にもっていっても動くんだろう。 libCRIM がシャープの qte/qtopia からあるていど自由だってのは分かっていたが、 ここまでとは思わなんだ。

前史: opie と libqte

Opie は Qt/Embedded の上で動く。それも libqte 2.3.4 の上で。
でだ。libqte 2.3.4 では seg. fault してくださって、 結局 2.3.2 の上で動かしてるわけだが ... これはつまり opie は libqte の revision 依存性があんまりないということもあらわす。

そーいや opie applications も qt-embedded free を使わずシャープの libqte で動いてた訳で。

libCRIM.so と CRL_DIC_PATH

libCRIM 一式を OPIE から見える位置におく。
# cd /usr/QtPalmtop.rom/plugins/inputmethods
# tar -cvp libCRIM* | tar -xpC /usr/local/opie/plugins/inputmethods
# cd /usr/QtPalmtop.rom/lib
# tar -cvp libkke* libCRL* libqsfepj* libsl* | tar -xpC /usr/local/opie/lib
# cd /usr/QtPalmtop.rom
# tar -cvp dic | tar -xpC /usr/local/opie/dic
# export QTDIR=/usr/local/opie
# export OPIEDIR=/usr/local/opie
シャープ製の libqte, libqpe は使わない。opie (or qtopia free) のものを使う。
それと CRIM 用の環境設定:
# export CRL_DIC_PATH=/usr/local/opie/dic

これがなくても起動はするが、文字を入力できない。 あとはふつーに opie (ないし Qtopia free) を立ち上げれば 日本語手書き入力が使える:

CRIM on OPIE

手書き入力用の窓を開いた時の上から 2 段目の widget がいかにも QLineEdit 風なのだが、 この部分は QLineEdit を使わずに仮名漢字変換 I/F から自前で実装されているようで、 シャープの libqte を使わなくても、 シャープの仮名漢字エンジンによる仮名漢字変換が使える。 実際 objdump -TC libCRIM.so しても QLineEdit の名はでてこない。

手書き入力とかな漢字変換

つまりシャープの Qtopia での日本語入力法は完全に 2 系統に分かれてると。

両者とも opie, qtopia free の libqpe の上で使えるが、

シャープの libqkeyboard.so を opie に持ち込むと起動はするし、入力もできるが、 シャープの QLineEdit/QMultiLineEdit の上で動かしていない場合は漢字キーが入力できない (仮名漢字変換モードに入らない)。

シャープの libqte の上で opie を動かした場合は QLineEdit/QMultiLineEdit で問題無く仮名漢字変換入力できた。 まあ qt-embedded 2.3.4 を要求するとこで qt-embedded free の libqte 2.3.2 でも動くような opie なら、シャープの libqte 2.3.2 でも動くってことだろう。 もちろん最新の opie は本当に libqte 2.3.4 を要求するので、 こちらは シャープの libqte 2.3.2 では動かないと思う。

すくなくとも libqpe についてはソース非公開バイナリを使う必要はないってことやね。
libqte に関しては 2.3.4 の IM サポートが使えるようになんないと置き換えられないが。

Qt/Embedded 2.3.4beta2

ところで、libqte 2.3.4beta2 の上でなら opie-snapshot-20021122 は起動した (opie-cvs は知らん。未テスト)。ただ fontmanager 周りが脆弱になったらしく、 TTF 非サポートの libqte を使いつつ ${OPIEDIR}/lib/fonts/ に qpf 以外のフォントを入れておくとフォントを実際に読み込むアプリ (eg. Appearance) がフォントを読み込むところで seg. fault して落ちた。 2.3.2 だと読めないフォントは単に無視されるだけなんだけども。

... てゆーか、2.3.4b2 が動くようになったとたんに 2.3.4 も動いた。むぅ。


[日記へ] [目次へ]