💡

アドレスバーに入力した内容を翻訳して検索できるソフトを作ってみた (Flask + DeepL API)

2022/02/20に公開

はじめに


アドレスバーに日本語を入力すると、英語に翻訳した検索結果を表示する「QueryTranslator」というソフトを作ってみたので紹介します。

主な機能

  • 検索クエリに@hogehogeとつけることでWebサイトhogehogeの検索機能を使うことができます。
  • 諸々の設定をJSONファイルで一括して管理することができます。

仕組み

主な流れとしては、

  1. Flaskでローカルサーバーを構築 (例: http://localhost:8041/search/)
  2. GETパラメータを取得 (例: /?q=ほげほげ)
  3. キーワードをDeepL APIを使って翻訳 (例: ほげほげ → hogehoge)
  4. 特定のサイトへリダイレクト (例: https://twitter.com/search?q=hogehoge)

となっています。

課題

  • 待ち時間が発生する (→ Google の Cloud Translation API を使うとある程度短縮できそう)

使い方

1. セットアップ&実行

以下のようにしてセットアップ&実行できます。DeepL翻訳のAPIキーが必要になるため、事前に取得しておいてください。

git clone git@github.com:eb1ta1/QueryTranslator.git
pip install -r requirements.txt
export QUERY_TRANSLATOR_DEEPL_API_KEY=********-****-****-****-************:**
python3 ~/QueryTranslator/querytranslator/index.py

2. ブラウザに検索エンジンとして追加

ブラウザに検索エンジンとして追加します。検索エンジンのクエリURLには以下の2パターンがあります。

  1. http://localhost:8041/search/example/?q=%s
    example.comでのみ検索可能になります。検索ワードに@notをつけると、一時的に翻訳機能が無効になります。
  2. http://localhost:8041/search/?q=%s
    いろいろなサイトで検索できます。検索ワードに@example、example.com内で検索されます。@notとつけると一時的に翻訳機能が無効になります。

3. config.jsonのカスタマイズ

先程上げた @example や、http://localhost:8041/search/example/?q=%sなどを利用する際には、config.jsonでサイトのURLを指定しておく必要があります。

{
   "sites": {
        "default_site": "google",
        "google": {
            "url": "https://www.google.com/search?q=%s"
        },
        "twitter": {
            "url": "https://twitter.com/search?q=%s"
        },
        "example.com": {
	        "url": "https://example.com/search?word=%s"
    	}
    }
}

更にカスタマイズ(例: ポート番号の変更、翻訳先言語の変更など)をしたい場合は、https://github.com/eb1ta1/QueryTranslator/blob/main/config.json を参考にしてみてください。

さいごに

クソアプリですが、意外と便利...かもしれません!
https://github.com/eb1ta1/QueryTranslator/

Discussion