Edited at

iOS標準キーボードの登録単語をMac経由でATOK for iOSへインポートする

More than 3 years have passed since last update.

先程,長年待望されていた ATOK for iOS がとうとう公開されました!

しかし,これまで iOS の標準キーボードを鍛え込むため登録していた多数の単語は,ATOK for iOS へは反映されないようです。

自分はこれまで,固有名詞や顔文字をはじめ,「めーる」→自分のメールアドレス,「でんわ」→自分の電話番号 など,いろいろ単語登録することで入力を便利にしていましたので,これを引き継ぎたいと思い,登録単語のエクスポート・インポートを試みました。


1. iOS → iCloud → Mac 経由で辞書をエクスポート

iOS と Mac の「ことえり」は,iCloud を経由して登録単語を共有しています。普段Macで「ことえり」を使っていなくても,iCloudの「書類とデータ」の同期を有効にしていれば,登録単語は同期されています。

そこで,Mac 経由で登録単語一覧をファイルとしてエクスポートすることができます。

OS X 10.9 Mavericks では,ことえりの環境設定からではなく,システム環境設定の「キーボード→ユーザ辞書」から登録単語をエクスポートすることができます。

こちらの記述に従い,登録単語を全選択して画面外にドラッグ&ドロップすると,「ユーザ辞書.plist」が生成されます。





上記サイトより説明用画像を引用)


2. plist をATOK辞書形式に変換

次のスクリプトを ユーザ辞書.plist と同じフォルダで実行します。

すると,ATOK形式の辞書ファイル user_word.txt が生成されます。


plist2atok.rb

#!/usr/bin/ruby

require 'rexml/document'

dict = REXML::Document.new(open("ユーザ辞書.plist"))

open("user_word.txt","w:UTF-16LE"){|f|
f.print "\uFEFF!!ATOK_TANGO_TEXT_HEADER_1\r\n\r\n"
dict.elements.each('plist/array/dict') do |element|
phrase = element.elements[2].text
shortcut = element.elements[4].text
f.print sprintf("%s\t%s\t名詞*\r\n", shortcut, phrase).encode(Encoding::UTF_16)
end
}



スクリプト実行方法の詳細


  1. 上記スクリプトを plist2atok.rb として保存します。上のをコピー&ペーストしてもよいですし,Gistからダウンロードしてもよいでしょう。

  2. plist2atok.rb を ユーザ辞書.plist と同じフォルダに置きます。以下では例としてデスクトップに置いたとします。

  3. Finderで Command+Shift+U を押して「ユーティリティ」フォルダに移動し,ターミナルを起動します。

  4. 以下のコマンドを順に実行します。すると,デスクトップに user_word.txt が生成されます。

cd ~/Desktop

ruby plist2atok.rb


3. iTunes経由でiOS版ATOKにインポート

公式サイトの記述に従い,


iTunes → iPhone → App → ファイル共有 → ATOK


を選択し,[ATOKの書類]リストに user_word.txt をドラッグすると,iPhone 内にこのファイルがコピーされます。



公式サイトより説明用画像を引用)


4. iOS版ATOKで一括単語登録

iPhoneのホーム画面からATOKを起動し,


ツール → 一括処理 → 一覧出力ファイルの読み込み


をタップすると,単語が取り込まれ,読み込み結果画面が表示されます。

これで完了です!