iOS4のユーザー辞書にPCから単語を一括登録する手順 / よみ表示問題解決版

  • このエントリーをはてなブックマークに追加
  • LINEで送る

[追記 / 2011-10-18]
iOS5のユーザー辞書(ただしくはユーザ辞書)にはバグがあって
iOS4のバックアップデータから復元すると
辞書の中身が見えなくなるみたい。
変換はできるし登録もできる。

ios5 ユーザー辞書 – Google 検索

バックアップから引き継がなくても辞書が見えなくなるって話もあるし
iOSのアップデートで修正されるんでしょうかね。

はじめに

iPhoneのユーザー辞書に、PCから一括登録する話もこれで3回目?
ついに普通に登録して使えるレベルまできました、長かった。

一応テストで10,000語までは一括登録してみました、それで.sqliteの容量が6MBほど(デカイヨ)
あと、「よみ」は70文字あたりまでチェック済。
それ以上の「よみ」を登録するとどうなるかわかりません。

こんな感じで、よみも反映される。

[image]before / after

それでは、脱獄していないiPhone(iOS4)にPCから単語を一括登録する手順を、2通り解説します。

うちの説明が下手だから面倒臭そうに見えるけど実際やることは少しだけなので大丈夫。
所要時間は復元1回と数分です。

作業の流れ

それぞれ辞書ファイルの編集部分がちょっと変わるだけなので、1.2.4.5の手順は前回までと変わらず。

順番 やること 使用アプリ
1 バックアップ作成 iTunes
2 ユーザー辞書関連ファイルのエクスポート iBackupBot
3-1 ユーザー辞書変換と編集 .txtだけで必要ファイルを作成するけど.sqliteの結合は手動な方法
PupSQLite
plist Editor
3-2 ユーザー辞書変換と編集 .txtと抽出した.sqliteが必要だけど.sqliteの結合は自動な方法
plist Editor
4 ユーザー辞書関連ファイルのインポート iBackupBot
5 復元 iTunes
iBackupBot

使用する3つのアプリ / ダウンロードしておく

[image]iBackupBot for iTunesのアイコン
iBackupBot for iTunes / iPhoneのバックアップを開いて編集できるソフト
iTunes Backup Manager for iPhone 3G, iPhone 3GS, iPod Touch, iPad
[image]PupSQLiteのアイコン
PupSQLite / SQLite3データベースを閲覧・作成・編集するためのソフトウェア
Pup’s Atelier-Software
[image]plist Editor for Windowsのアイコン
plist Editor for Windows / .plistを編集できる
plist Editor for Windows (Freeware)

ユーザー辞書テキストファイルを上記アプリが扱えるように変換するページ

[image]辞書テキストファイルの変換サイト
手順3-1ルートで使用する / UserWords / .txt to .sqlite +
辞書テキストファイルを、Library_Keyboard_UserWords.sqliteに追加する.sqliteと、それを結合するSQL文を出力してLibrary_Keyboard_SerializedUserWords-ja用のテキストを吐き出すページ
[image]辞書テキストファイルの変換サイト
手順3-2ルートで使用する / UserWords / .txt & .sqlite to .sqlite +
iPhoneのバックアップからエクスポートしたLibrary_Keyboard_UserWords.sqliteに直接辞書テキストファイルの中身を追加して Library_Keyboard_SerializedUserWords-ja用のテキストも吐き出すページ

作業開始しませう。

1) iTunesでiPhoneのバックアップを作成。

iPhoneを右クリックしてバックアップ

[image]iPhoneのバックアップを作成

2) 辞書関連ファイルエクスポート

iBackupBotでユーザー辞書関連ファイルを抽出

[image]iBackupBotでエクスポートする2ファイル

必要なのは以下の2ファイルです、頑張って探す。

Library/Keyboard/UserWords.sqlite
iPhoneのユーザー辞書上に表示されるデータを管理してるっぽい
Library/Keyboard/SerializedUserWords-ja(iPhone上で単語を登録しないと出現しない)
このファイルに無い「よみ と 単語」はiPhone上で表示されていても(Library_Keyboard_UserWords.sqliteに登録されていても)変換できない。

両方のファイルにそれぞれ違う形式で「よみ」と「単語」を登録する事でユーザー辞書として機能する。

見つけたらチェックを付けてエクスポート[File] – [Export](ctrl + E)

[image]エクスポートの設定

Export Backed-Up Files というウインドウが開くので
Export only checled file(s). にチェックを入れると
Export with backup information, for import to another backup. が出現、こっちにもチェックが付いている事を確認して[OK]

以下の4ファイルが出力されてたら次へ
[image]exportされたファイルは4つだった。


3-共通) 登録する辞書ファイルの用意

ユーザー辞書に追加する[よみ]と[単語]を準備

次のような、よくあるフォーマットで辞書ファイルを作成しておけば、この後の作業が楽になる。

よみ [Tab か 全角スペース] 単語
よみ [Tab か 全角スペース] 単語
よみ [Tab か 全角スペース] 単語

区切り文字は[Tab か 全角スペース]どちらでも大丈夫だけど、どちらかに統一する。

自分のIMEをテキストファイルに出力したり、顔文字サイトからダウンロードしてきたファイルはだいたいそんなフォーマットになってるハズ。

PCの辞書ファイルをそのまま移行しても、iPhoneでもともと変換できないタイプの『よみ』だともちろん変換できないです(アルファベットなど)

MatsuCon – 顔文字辞書ダウンロードにあるMicrosoft IMEライト版を参考にさせてもらうとこんな感じ。

あうあう	⊂ミ⊃^ω^ )⊃ アウアウ!!	顔文字
あせ	(;´Д`)	顔文字
あせ	:(;゙゚'ω゚'):	顔文字

品詞がついてるけどよみ [Tab か 全角スペース] 単語の順番で始まっていれば大丈夫。
iPhoneでもともと変換できない[よみ]は(英数とか)登録できるけど変換できないので注意。

3-1) .txtからユーザー辞書変換と編集

[Cドライブ直下]に[sqlite]フォルダを新規作成しておくと後の作業が幾分楽になりんす(c:\sqlite)。

手順3で用意したテキストを userwords / .txt to .sqlite +のformで変換します。

※テキストファイルをドラッグして、アップロード開始をクリックしてから変換
[image]ドラッグでファイルを登録したら、アップロードを開始

[image]アップロード成功

無事変換が終了すると左側に3つのリンクが出現するので上から簡単に説明していきます。

plist Editor で Library_Keyboard_SerializedUserWords-ja に『よみ』と『単語』のデータを追加

[image]Library_Keyboard_SerializedUserWords-ja 追加用テキストファイル

[image]plist Editor for Windowsのアイコン plist Editorを起動して Library_Keyboard_SerializedUserWords-ja を開く。

変換サイトのピンク側のリンク先のテキスト(『よみ』と『単語』がにラップされてるもの)を全選択(Ctrl+A)してコピー。

[image]stringでラップされてるテキスト

Library_Keyboard_SerializedUserWords-jaの前にペーストして保存。

[image]stringでラップされてるテキストを/arrayの前へペースト

PupSQLiteで(sql文を使って)Library_Keyboard_UserWords.sqlite(偽物)をLibrary_Keyboard_UserWords.sqlite(本物)に結合

[image]Library_Keyboard_UserWords.sqlite 追加用.sqliteファイル

ダウンロードしてPupSQLiteで中身を確認。
テーブルがZTIUSERWORDだけの.sqliteが出来てるはず。
ZSORTKEY_JAやZSTRINGがずれていたら変換に使ったテキストファイルに不備があるかもしれないです。
変換からアゲインしてください。

[image]Library_Keyboard_UserWords.sqlite 追加用.sqliteファイルの中身

ダウンロードしたsqliteに問題がなければ、iBackupBptでエクスポートしたLibrary_Keyboard_UserWords.sqlite(本物)を開いて以下のSQL文を実行。

コメント欄のアドバイスを参考に更新

attach 'Library_Keyboard_UserWords.sqlite(偽物)の絶対パス' AS Library_Keyboard_UserWords.sqliteの名前(任意);
insert into ZTIUSERWORD select * from Library_Keyboard_UserWords.sqliteの名前(任意).ZTIUSERWORD;
update ZTIUSERWORD set Z_PK = rowid;
update z_primarykey set z_max=(select max(z_pk) from ztiuserword);

add.sqlも参考にしてみてください。

以前の記述(久しぶりに見直してみたらここが変だった?)

attach 'Library_Keyboard_UserWords.sqlite(本物)の絶対パス' AS Library_Keyboard_UserWords.sqliteの名前;
insert into ZTIUSERWORD select * from Library_Keyboard_UserWords.sqliteの名前.ZTIUSERWORD;

Byte[]配列が入ったBLOBを一括でインポートする方法をずっ~と試しててこれでやっと出来た。

パスとかよくわからない場合は、次のzipをダウンロードしてc:\sqliteに保存して解凍すれば、そのまま使えるsql文(add.sql)が中にあるです。

zip

[image]zipダウンロード

これを解凍するとこんな感じ
C:\sqlite\output\[乱数] の中に3ファイル入っているかを確認。
[image]zipの中身

iBackupBptでエクスポートしたLibrary_Keyboard_UserWords.sqlite(本物)を開いて
[image]エクスポートしたLibrary_Keyboard_UserWords.sqlite

PupSQLite上からSQL文(add.sql)を実行。
[SQL文を記入して実行] – [開く] – [解凍したフォルダ内にあるadd.sql]

[image]PupSQLiteからSQL文を使う

上記SQL文実行後、ZPROPERTIESを反映させて結合できた。
[image]SQL文を実行して結合

コメント欄で教えていただいたsql文を追加したので以下の手順は不必要になった。
でも念のため確認しておくといいかもです。
最後に、テーブル:ZTIUSERWORDのZ_PKの一番大きい数字を、テーブル:Z_PRIMARYKEYのZ_MAXに入力して手順3-1は終了。

ここもSQL文で代入できたらいいんだけど、ZTIUSERWORDの行数は取得できても、カラム(Z_PK)の内容を取得して別テーブルにコピーする書き方がわからんかったので諦めました。

それでは、手順4へ

[image]Z_PRIMARYKEYのZ_MAXに入力

3-2) .txtと.sqliteからユーザー辞書変換と編集

手順3で用意したテキストとiBAckupBotから抽出した本物のLibrary_Keyboard_UserWords.sqliteを、次のサイトで変換します userwords / .txt & .sqlite to .sqlite +

こっちも無事変換が終了すると3つのリンクが出現するので上から簡単に説明していきます。
単語の数が多いと変換にちょっと時間がかかるので(回線の状況によるけど、10,000語を変換するのに大体3~5秒くらいかかるかも)反応がないからって「変換する」を何度もクリックしちゃうとエラーになります、ごめんなさい。

plist Editor で Library_Keyboard_SerializedUserWords-ja に『よみ』と『単語』のデータを追加

手順3-1と同じなので省略。

Library_Keyboard_UserWords.sqlite

手順3-2はsqliteをローカルで編集する必要がないので、そのまま手順4のインポートへ。

(※手順3-2の方が楽チンですけど、Library_Keyboard_UserWords.sqliteをアップロードする事に抵抗がある人の為に手順3-1を作ったのでそちら作業してください。

4) インポート

iBackupBot に戻って [File] – [Import](Ctrl + I) から、Exportしてファイルを保存したフォルダを選んでそこにある2ファイルをimport
[image]importするところ

5) 復元

iBackupBot か iTunesからバックアップデータを復元。画像はiBackupBotからの復元。
[image]復元


ユーザー辞書が反映されたか確認

よみが表示されているか確認してみる

[image] [設定] - [一般] - [キーボード] - [ユーザー辞書を編集…]で確認

おー、入ってる。

※ 登録した単語が表示されない場合は一度キーボードの数を変更してみてください。

変換できるかチェックしてみる。

ついに

ついか

できた

おー、変換候補に表示されてる。

iPhoneから単語を追加しても大丈夫かチェックしてみる

前回はPCから登録した単語が全て消滅したけれど今回はどう?
[image]iPhoneから追加

おー、大丈夫みたい。

というわけで以上で終了です、今度こそ本当にお疲れ様でした(*- -)(*_ _)ペコリ

その他

『ユーザー辞書を編集…』を開いても登録した辞書が表示されていない場合

各国のキーボードからキーボードの数を変更すると反映されるみたいです。

[image]キーボードの数を変更する

この作業の後に同期でエラーが出るなら

警告をリセットを試してみるといいかも。

[image]警告をリセット

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。