英語のページでもChromeのGoogle翻訳の拡張機能を入れれば日本語に翻訳できて便利です。でも英語のアプリの場合、読めなくはないけど理解するまで時間がかかって面倒です。アプリも翻訳できたらなぁ。そう思って何でも翻訳しちゃうアプリを作ってみました。

今までのやり方

(1) スマホのGoogle翻訳アプリのカメラ入力で翻訳
(2) Win+Shift+T でテキストをコピー、Google翻訳にコピペして翻訳

これからのやり方

ホットキー(CTRL+ALT+T)を押して、翻訳したい範囲を選択→そのまま表示

文字の位置もそのままで文字のところだけ翻訳されるのでとっても便利!ただこれはあくまで画像で表示しているだけなので、翻訳後の画面で操作できるというわけではありません。マウスでドラッグすれば移動できるので、横に並べて使うのがいいですね。

しくみ

Windowsのスクリーンショットと同じように、ホットキーでスクリーンショットを取るモードに入ります。スクリーンショットを取ったらOCRして文字を抽出。複数行に分かれているテキストは1つのブロックとして処理します。次はそのテキストを翻訳します。翻訳は4種類の方法があります。

flowchart LR
    A[スクショ] --> B[OCR]

    B --> C[AI翻訳]
    B --> F[Google翻訳 非公式]
    B --> G[Google翻訳 API]
    B --> H[DeepL翻訳 API]


    C --> D[画像合成]
    F --> D
    G --> D
    H --> D

    D --> E[画像表示]

AI翻訳をおすすめします。AIの場合は全体の関連性を見て翻訳するので、意味のある翻訳結果になりやすいです。対してGoogle/DeepL翻訳はおそらく単語単位でやってるので、意味が繋がらなくなる恐れがあります。あとデバッグすらしてないので動くかわかりません。次期バージョンで消そうと思ってます。

翻訳したあとはスクショ画像の文字のあった場所を背景色で塗りつぶして、その上に翻訳したテキストを書いていきます。文字が入りきらない場合は縮小して入るようにします。最後にその画像をオリジナルと同じ位置のところにウィンドウを重ねて表示します。

ダウンロード

GitHub の Release からダウンロードできます。

先に言語パックのインストールが必要

ドキュメントがめっちゃわかりにくくてすいません。すべてがAIが作ったものそのまんまです。英語のページを翻訳するために英語用のOCR言語パックをインストールする必要があります。

AIの設定

翻訳をするためにAIを使うので、その設定が必要です。自分が加入しているサービスのAPIキーを取得して、APIのURLを入力してください。更新ボタンを押すと使用できるモデル一覧が出てきます。私は安くて速い gpt-6-luna を設定してみました。Effortは設定すると時間がかかるのでnoneにしています。

OpenAI互換APIですのでローカルLLMも使えるはずです。OCRはPC内で完結しますし、LLMもローカルで済ませれば、データを外に出さずに翻訳できますね。