💡
アドレスバーに入力した内容を翻訳して検索できるソフトを作ってみた (Flask + DeepL API)
はじめに
アドレスバーに日本語を入力すると、英語に翻訳した検索結果を表示する「QueryTranslator」というソフトを作ってみたので紹介します。
主な機能
- 検索クエリに
@hogehoge
とつけることでWebサイトhogehogeの検索機能を使うことができます。
- 諸々の設定をJSONファイルで一括して管理することができます。
仕組み
主な流れとしては、
- Flaskでローカルサーバーを構築 (例: http://localhost:8041/search/)
- GETパラメータを取得 (例: /?q=ほげほげ)
- キーワードをDeepL APIを使って翻訳 (例: ほげほげ → hogehoge)
- 特定のサイトへリダイレクト (例: 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パターンがあります。
-
http://localhost:8041/search/example/?q=%s
example.comでのみ検索可能になります。検索ワードに@notをつけると、一時的に翻訳機能が無効になります。 -
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 を参考にしてみてください。
さいごに
クソアプリですが、意外と便利...かもしれません!
Discussion