1
1

[deepl-python]でクリップボードに保存された文章をコンソールで一発翻訳

Last updated at Posted at 2024-06-07

きっかけ

ブラウジング中や電子書籍を読んでいるとき、ちょっと引っかった文章の翻訳にdeepl-pythonを使っています。
しかし、ブラウザや電子書籍からコピーした文字列にはスペースが含まれているため、クリップボードからペーストした文字列を"で囲む必要があります。
これまで"の挿入を手作業で行っていましたが、コマンド一発でクリップボードに保存された文章を翻訳できる簡単なpythonコードを書きました。

準備

pip3 install --user deepl
pip3 install --user pyperclip

pythonコード

下記コードを作成し~/.local/bin/deepl_en.pyに保存

import pyperclip
import deepl

# DeepL APIキーを設定
API_KEY = "YOUR_API_KEY"

# DeepL翻訳クライアントを作成
translator = deepl.Translator(API_KEY)

# クリップボードから文字列を取得(文字列から不要な改行も削除)
text = pyperclip.paste().replace("\n", "")

# 翻訳を実行(日本語への翻訳なら"EN-US"を"JA"に)
translation = translator.translate_text(text, target_lang="EN-US")

# 翻訳結果をターミナルに表示
print(translation.text)

呼び出し

翻訳したい文章をクリップボードに取り込んで、コンソール上で

python3 ~/.local/bin/deepl_en.py

と叩けばOKですが、面倒なのでShellにエイリアスを追加。

alias De='python3 ~/.local/bin/deepl_en.py'

おまけ

セキュリティ上、API Keyは環境変数DEEPL_AUTH_KEYに入れる設定のほうが安心かもしれませんね。
それから、もしsdcv(stardict形式の辞書をコンソールで表示)をお使いなら、クリップボードから一発で辞書が引けて便利です。

sdcv -u "YOUR_STARDICT" -n $(xclip -o)

環境によるのかもしれませんが、最新のgoldendictはバックグラウウンドで無駄にCPUやメモリーを浪費するうえ、Waylandにも未対応のようなので、当面、辞書検索も翻訳もコンソールで行うつもりです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1