« Kobo: 辞書ウィンドウ・カスタマイズ(FW4.x以降) | トップページ | 楽天がtolinoを買収するらしい »

2016年12月29日 (木)

Kobo: カスタム辞書追加(新方式)

koboに入れたカスタム辞書(たとえばオランダ語の辞書を英語の辞書に差し替える)は同期を取ると、元のオランダ語の辞書に戻されてしまう。

FW3.xまではこの面倒を回避するパッチがあったが、FW4.xではなくなってしまった。そこで別のやり方。

mobilereadのNew dictionaries for kobo (no limits)のやり方。
簡単に手順を言うと、
1.いつものパッチの[バージョン番号]_source/libnickel.so.1.0.0.patchに、上記リンクのパッチ(`Allow searches on Extra dictionaries`)を追記して(Spoilerのところ全部)、KoboRoot.tgzを作成、FWを更新。

2. カスタム辞書を用意する。
 Index of Custom Dictionaries for Kobo eReaderにいろいろ辞書がある。
 dicthtml-○○.zipの〇〇の部分は2文字で、koboにある辞書と重ならないようにする。

3. kobo端末の\.kobo\Kobo\Kobo eReader.confを編集。
 [ApplicationPreferences]セクションに
   ExtraLocales=〇〇, 〇〇
の行を追記する。dicthtml-〇〇.zipの〇〇を入れていく。

4. 辞書ファイル(dicthtml-〇〇.zip)をkobo端末の\.kobo\dict フォルダにコピー。

5. データベース(KoboReader.sqlite)に、好きなデータベース用プログラムを使って、辞書のデータを追加する。
 Dictionaryテーブルに
  Suffix: -〇〇 (-e1など、頭にハイフン)
  Name: 辞書の名前(〇〇辞典 好きなように)
  Installed: true
  Size: 辞書のサイズ(バイト)
  LastModified: "" (空っぽ)
  IsSynced: true
 のように、辞書毎に書き入れていく。

6. USB接続を解除、kobo端末を再起動。

と、こんな感じだが、いちいち手動入力するのが面倒なので、自分用に適当にスクリプトを作成した。
手順の3.から5.までをほぼ自動化した。辞書名の一覧表だけは作るが、Kobo eReader.confの手動書き換えや、データベースの手動入力はしなくて済む。

使う人がいるのかわからないが、いちおうアップしておく。
ダウンロード: set_extradict.zip

*Kobo eReader.conf とKoboReader.sqliteを書き換えるので、この2つをバックアップしてから作業すること。

すでにインストールしていたカスタム辞書を今回ファイル名を変えてインストールし直すつもりなら、古いカスタム辞書を削除してから作業したほうがいい。(「設定」 > 「言語/辞書」 > 「辞書」の「編集」で、中身を差し替えているカスタム辞書のチェックをはずす)

○手順
いつものパッチの[バージョン番号]_source/libnickel.so.1.0.0.patchに、上記リンクのパッチ(`Allow searches on Extra dictionaries`)を追記して(Spoilerのところ全部)、KoboRoot.tgzを作成、FWを更新したら、

1) set_extradict.zipを解凍。
その中のextradictフォルダを、PCにつないだkoboドライブの一番上にコピー。
さらに、 追加するカスタム辞書(dicthtml-XX.zip)を同じextradictフォルダにコピー。

2) extradictフォルダ内の、dict_name.lst に辞書ファイルと辞書名の対応表を作る。
書式:
dicthtml_XX.zip=辞書の名前
XXはkoboの辞書にないもの。2文字で。
例:
dicthtml_e1.zip=English - German Dictionary
dicthtml_d2.zip=English Dictionary(WordNet)

これだけは手動で。
左辺が辞書ファイル(dichthtml_XX.zip)、右辺がデータベースに登録する辞書名(好きにつける)。これを=(半角)でつなぐだけ。また、dichthtml_XX.zipはかならず行頭(前にスペースなどを入れないこと)。

3) telnetでkoboにログインして、以下のコマンド
$ cd /mnt/onboard/extradict (Enter)
$ killall nickel
$ ./set_extradict.sh
(処理が終わってプロンプトが戻ったら)
$ reboot; exit

おしまい。動作確認したら、extradictフォルダは削除してよい。
データベース編集ソフトを使うより楽なはず。

-- 追記
下のリンクのランチャーをインストールしてないと、sqlite3がないんだった。つまりスクリプトが使えない・・・。
インストールしていない場合は、ランチャーのKoboRoot.tgzを解凍して、sqlite3を取り出して、koboの適当な場所にコピーしてやれば使える。あとset_extradict.shを1行書き換える。
たとえば、extradictフォルダにsqlite3をコピーしたら、set_extradict.shの最初にある
 dbprg=$dotkobo/db_scripts/sqlite3  を
 dbprg=/mnt/onboard/extradict/sqlite3 に変更
これでOK。CFWを使っている場合はsqlite3はインストールされているので、そのパスに変更。
-- 追記おしまい


○telnetが使えない場合/ランチャーを使っている場合
ランチャーにスクリプト(set_extradict.sh)を登録してやればいい。

1)と2)は上と同じ。

3) extradictフォルダにあるset_extradict.shをkobo端末の\.kobo\db_scriptsフォルダにコピー。

4) \.kobo\db_script\applications.in をエディタで開いて、スクリプト(set_extradict.sh)を登録。
  Extra辞書追加 = set_extradict.sh
 のように追記(場所は好きなところに。左辺の「Extra辞書追加」も好きなようにつければよい)。

5) koboを再起動(ランチャーのメニューが更新されないので)。

再起動後、ランチャーからスクリプトを実行する。
(ランチャーメニューの他のスクリプトと違って、「更新中」の黒い画面にはならない。画面が真っ白になるが、処理が終わればランチャー画面に戻る。)

readme.txtにも手順は書いておいた。

何度も使うものではないが、データベースが壊れて作り直した時などにはいるかもしれない。FW4.2.xxで導入された「アカウントの復元」とやらを実行した時なんかも必要になるのか?


|

« Kobo: 辞書ウィンドウ・カスタマイズ(FW4.x以降) | トップページ | 楽天がtolinoを買収するらしい »

kobo」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Kobo: カスタム辞書追加(新方式):

« Kobo: 辞書ウィンドウ・カスタマイズ(FW4.x以降) | トップページ | 楽天がtolinoを買収するらしい »