Notion ページを別言語に翻訳するCLIを使う

何をするのか

notion-translator を使って、Notionの特定のページの翻訳ページを作る。

準備

1)Notion インテグレーションの作成とトークンの発行

インテグレーションにアクセスする。

  • 名前
    • インテグレーションの名前。自分でわかりやすいものでOK。
  • コンテンツ機能
    • 「コンテンツを読み取る」「コンテンツを挿入」について、チェックをつける
  • 「送信」を押す
  • トークンが発行されるので、後でこれを利用します。

2)DeepL API

  • テストのみなら無料で十分。セキュリティ対策的にはPROの方が良い。
  • アカウントを作成後、マイページの「アカウント」からトークンを取得する。

環境設定

CLIのインストール

$ npm install -g notion-translator

環境変数の指定

~/.bashrc や, ~/.bash_profile , ~/.zshrc などを開いて下記の通り環境変数を追加する(変数部分は先程取得したものを入れてください)

export NOTION_API_TOKEN=xxxxxxxxxxxxxxxx
export DEEPL_API_TOKEN=xxxxxxxxxxxxxxxx

Notion側の作業

  • 翻訳したいページにインテグレーションを追加する
    • ページ右上の「…」から、メニュー下部の「+コネクトの追加」を押して、自分がさきほど作成したインテグレーションを追加する。
  • 翻訳したいページがDB内にある場合、DBからサイドバーなどを使って普通のページに一旦戻す
  • 下記のような部分を削除しておく。
    • リスト内の画像
    • Slack/Figmaの埋め込みリンク
    • インラインコードやコードブロックなど
      • 多分この辺りがあるとエラーが出て翻訳失敗します
  • 逆に問題ないケース
    • DBの項目ページ内に作られた子ページ(=親がページであること)
    • 画像・添付ファイル(勝手にリムーブされるが翻訳はストップしない。翻訳後に画像や添付ファイルの補完をしておく)

ターミナルで作業

$ notion-translator --from ja --to en-us --url https://www.notion.so/{{ワークスペース名}}/{{ページID}}

翻訳完了したら下記のような表示とともに翻訳後のページができる

Wait a minute! Now translating the following Notion page:
https://www.notion.so/xxxx

(this may take some time) ............ Done!

Disclaimer:
Some parts might not be perfect.
If the generated page is missing something, please adjust the details on your own.

Here is the translated Notion page:
https://www.notion.so/xxxx

以上です。