Google日本語入力の辞書をWindowsとMacで共有クラウド管理

クラウド上で辞書ファイル（とおまけ）を管理する。ここではGoogle Driveをローカルフォルダとして同期させている場合を想定する。

## Windowsの場合

シンボリックリンクを使って、あたかもGoogle日本語入力アプリケーションが読み込むフォルダ内（`C:\Users\ユーザー名\AppData\LocalLow\Google\Google Japanese Input\`にクラウド上の辞書ファイル（`user_dictionary.db`）が存在するかのように設定したかったが、[Google日本語入力の辞書ツールを複数台のPCで同期(共有)する方法](https://newstella.co.jp/2017/02/23/182)を見る限り、非常に面倒くさそうなので、次の方法を採用する。

クラウド上の辞書ファイル（`user_dictionary.db`）が存在するフォルダは、`C:\Users\ユーザー名\GoogleDrive\Documents\Manage_user_dictionary`とする。

1. [Google日本語入力のユーザー辞書を複数のPCで同期する方法](https://www.y-shinno.com/google-japanese-input-sync/)に沿ってバッチファイルを作成、起動時のタスクも作成
   - タスクスケジューラーについて：ノートパソコンの場合は、「条件」→「電源」→「コンピューターをAC電源で使用している場合のみタスクを開始する」をオフにする
     ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276577/0608ed96-49b8-993c-080f-5d3d95e49f06.png)

1. シャットダウンも行うバックアップ用のバッチファイルをショートカットキーで実行できるようにする
   1. たとえば、ファイルを右クリック
   1. ショートカットを作成
   1. ショートカットを右クリック
   1. プロパティでショートカットキーを登録（たとえば、Ctrl+Alt+4）
   1. このままだと誤作動しかねないので、バックアップ用のバッチファイルの先頭に、[バッチ実行時にメッセージを出して処理の続行を確認する方法](https://www.projectgroup.info/tips/Windows/cmd_0028.html)のような確認メッセージ表示スクリプトを追加（記事中の`...`に元のスクリプトが入る）

最終的にアップデート用のバッチファイルは

```bat
@rem update_dic.bat
@rem [Google日本語入力のユーザー辞書を複数のPCで同期する方法](https://www.y-shinno.com/google-japanese-input-sync/)

set filepathFrom="C:\Users\ユーザー名\GoogleDrive\Documents\Manage_user_dictionary\user_dictionary.db"
set filepathTo="C:\Users\ユーザー名\AppData\LocalLow\Google\Google Japanese Input\user_dictionary.db"
copy /Y  %filepathFrom%,%filepathTo% 
"C:\Program Files (x86)\Google\Google Japanese Input\GoogleIMEJaTool.exe" --mode=dictionary_tool
```

バックアップ用のバッチファイルは

```bat
@rem backup_dic.bat
@rem [Google日本語入力のユーザー辞書を複数のPCで同期する方法](https://www.y-shinno.com/google-japanese-input-sync/)
@rem [バッチ実行時にメッセージを出して処理の続行を確認する方法](https://www.projectgroup.info/tips/Windows/cmd_0028.html)

set /P ANSWER="backup_dic.datを実行します。よろしいですか (Y/N)？"

if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={yes} (goto :yes)

exit

:yes

set filepathFrom="C:\Users\ユーザー名\AppData\LocalLow\Google\Google Japanese Input\user_dictionary.db"
set filepathTo="C:\Users\ユーザー名\GoogleDrive\Documents\Manage_user_dictionary\user_dictionary.db"
copy /Y  %filepathFrom%,%filepathTo%
shutdown.exe /s /t 0
```

## Macの場合

シンボリックリンクが容易に使える。クラウド上の辞書ファイル（`user_dictionary.db`）が存在するフォルダは、`/Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary`とする。

1. `/Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary`上に、`/Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput`内のファイルを**`user_dictionary.db`以外**コピーする（念の為`.`から始まる隠しファイルもコピーする）：以下コマンドで可能

    ```sh
    cp -rn /Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput/. /Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary/
    ```

1. `/Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput`フォルダを別名（`JapaneseInput_original`とか）に変更
1. フォルダのシンボリックリンクを作成

    ```
    ln -s /Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary /Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput
    ```

1. `/Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput`というフォルダ（に見えるもの）が作成されて、かつGoogle日本語入力の辞書ツールを開いたときにクラウド上の辞書ファイル内に登録していた単語が確認できたら成功：辞書ツールは画像の場所で確認可能
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276577/dee0e840-af7c-9b19-9d40-62e5831e32de.png" alt="image-20210114224607621" width="50%" />

## まとめ

クラウド経由で、WindowsとMacの両方で辞書ファイルを管理する方法をまとめた。面倒でなければ、Windowsもシンボリックリンク（フォルダではなくファイルに直接作って自動で修復し続ける）が利用できるらしいので記事を参照。シンボリックリンクフォルダバージョンを理解するのにえらい時間かかった...