android

【Android】SimejiからGbordに辞書を移行する

2022年10月9日

最初にGoogle日本語入力を使用し、使いづらさを感じてSimejiに移行しました。Simejiにも使いづらさはありましたが、Google日本語入力よりかはマシかと思っていました。しかしGbord(Google日本語入力と統合された)を再度利用してみたところ、「Simejiより使いやすくなっているかも」と思いました。

問題は登録した辞書の移行でした。

辞書フォーマット

Simejiからエクスポートしたテキストファイルの内容

まずはSimejiの辞書をエクスポートしたSimeji_user_dic.txtの内容を以下に示します。改行なしの1行で書かれています。ここでは2個だけに絞ってあります。

{"JAJP_KEY":["このたびは","ただ"],"JAJP_VALUE":["この度はありがとうございました。","ただいま発送致しました。"],"EN_KEY":["このたびは","ただ"],"EN_VALUE":["この度はありがとうございました。","ただいま発送致しました。"]}

Gbordからエクスポートしたテキストファイルの内容

Gbordに辞書登録をしてエクスポートさせました。PersonalDictionary-xxxxxxxx.zipファイル(xxxxxxxxはなんらかの数字)が生成されています。
.zipファイルを解凍してGbordの辞書の中身(dictionary.txt)を見てみますと以下の通りです。1行目の#で始まる行はコメント行です。なくても構いません。

文字変換のキー(JAJP_KEY)と変換後の文字列(JAJP_VALUE)の間にある空白は[TAB]です。
このフォーマットになるようにSimeji_user_dic.txtから書き換えればよいのですね。

# Gboard Dictionary version:1
このたびは	この度はありがとうございました。	ja-JP
ただ	ただいま発送致しました。	ja-JP

移行実行手順

キーボードマクロ前の準備

中身のパターンさえわかってしまえば簡単です。Simeji_user_dic.txtの中で必要なのは下図の赤線で示したように、文字変換のキー(JAJP_KEY)と変換後の文字列(JAJP_VALUE)だけです。(EN_KEY)と(EN_VALUE)は何でしょうか?

[(始め角括弧)と”(ダブルクォーテーション)も不要なのですが、いきなり全部消すとわからなくなりますので、[]で囲まれたところを残し、JAJP_KEYとJAJP_VALUEにします。ここでは2単語しかありませんが、数が多いともっとみづらくなります。

  • 次に”(ダブルクォーテーション)を削除します。テキストエディタの置換を開き、元の文字に”(ダブルクォーテーション)、変換後の文字列の欄は空欄にします。「全置換」をクリックしますと”(ダブルクォーテーション)が一括で削除できます。
  • そして,(カンマ)を¥n(Enter)に置換します。元の文字に,(カンマ)を変換後の文字列の欄に¥n(Enter、あるいは\nと表示、半角入力)を入力します。この場合は必ず「正規表現」にチェックを入れます。こちらも「全置換」をクリックします。
  • [(始め角括弧)と](終わり角括弧)のところは[ENTER]キーで改行しておきます。結果は下図参照。

下図は秀丸エディタでの例。もし誤った全置換を実行した場合は[Ctrl]+[z]キーを押して現れるメッセージボックスにて「まとめてやり直し」を選択します。

キーボードマクロの開始から終了まで

マクロを組もうと思いましたが、調べるのが面倒でして、キーボードマクロにしました。秀丸エディタですと、[SHIFT]+[F1]でキーボードマクロの開始・終了、[SHIFT]+[F2]でキーボードマクロの実行となります。

キーボードマクロですので、マウスでの操作はしないように。マウス操作はマクロに登録されません。

  • 最初の[(始め角括弧)の下の文字(ここでは”こ”)にカーソルを合わせます。
  • [SHIFT]+[F1]。キーボードマクロの開始します。
  • [↓]カーソルキーを押下しながら、JAJP_VALUEの最初の文字列の行頭まで移動します。
  • [SHIFT]+[END]キーを押して文字列を選択状態にし、次に[Ctrl]+[x]でカットします。
  • [↑]カーソルキーを押下しながら、JAJP_KEYの最初の文字列の行頭に移動します。
  • [END]キーを押して行の最後に移動します。
  • [TAB]キーを押します(スペースではありません)。右側に数文字空白ができて移動しているはずです。
  • [Ctrl]+[v]にてカットした文字列をペーストします。
  • [TAB]キーを押します。
  • ja-JP、とキー入力します。
  • [→]カーソルキーを押して次の行の行頭に移動します。
  • [SHIFT]+[F1]。キーボードマクロを終了します。

キーボードマクロの実行

  • キーボードマクロが保存されていますので、次に実行します。
  • 実行は[SHIFT]+[F2]キーです(秀丸エディタの場合)。


やってみますと、上の面倒な手順が今度は一瞬(行数によっては一瞬ではないかも)で実行されているかと思います。
](終わり角括弧)の手前、JAJP_KEYの最後まで実行します。行数が多ければ[SHIFT]+[F2]キーは押しっぱなし。

.Zipファイルを作成してAndroidへコピー

以上の手順にて、Gbordの形式の辞書になっているかと思います。

  • できあがったファイルを「名前を付けて保存」します。
  • Gbordでインポートする場合は.zipファイル形式なので、このテキストファイルを圧縮して.zipファイルにします。ファイル名はなんでも良いようです。
  • .zipファイルをAndroid端末の適当なフォルダ、例えばDocuments内にコピーします。
  • Androidの設定の[言語と入力]-[キーボードを管理]からGbordを選び、[単語リスト]ー[単語リスト]-[日本語]から右上の[]-[インポート]としますとファイルエクスプローラーが起動します。上記の.zipファイルを選択しますとインポートが完了しているかと思います。

まとめ

今回は登録していた単語が100個未満でしたのでキーボードマクロで十分でした。もっと多い数百個などではマクロ実行がまどろっこしくなります。その場合は本格的にマクロを組んだ方が良いかもしれません。ポイントとなるのが行数の取得です。[(始め角括弧)から](終わり角括弧)までの行数をなんらかの方法で取得し、While文でループする個数に代入する箇所です。

ここではSimeji➡Gbordでしたが、フォーマットがわかっていますので、Gbord➡Simejiの辞書移行も可能です。

私が使用しているAndroid用のテキストエディタ・Jota+にはマクロ機能がありません。探せばAndroidでもマクロ機能を含むテキストエディタは存在するのかもしれませんが、パソコンで行う方が現実的だと思います。

-android