はじめに
WindowsやMacで使えるDeepLのアプリではctrl-c ctrl-c
で簡単にコピーしたものが翻訳できて英文読むのが捗ります.
同じようなことをLinuxでもしたいと思いました.
調べて見るとdeepl cliのようなものがいくつかあり,これを使って簡単なアプリを作ろうかなと思いましたが, 現在はpro版の公式のapiを利用しないと翻訳結果にアクセスできないみたいです.なので, ブラウザからアクセスすることにしました.
同じようなことをしているものとして, @masan4444さんのLinuxでDeepL翻訳というものがありました.ショートカットにシェルスクリプトを登録するだけで簡単に利用できます.(参考にさせて頂きました.ありがとうございます.)
ただ, 個人的に,
- 翻訳の度にタブを開かずに同一タブで翻訳して欲しい.
- 翻訳元,翻訳先の言語を簡単に切り替えたい.
- 閲覧用ブラウザとは別ブラウザで翻訳したい.
- 改行を除きたい.
- [文章1].[文章2] と.のあとに文字列が続く場合[文章1]. [文章2]と.のあとにスペースを入れたい.(スペースがないと翻訳まるごとスキップされることがある.)
- 英語論文などの単語折り返しの-を除去したい.ex) app-\nleをappleに置換
ということをしたかったので作ってみました.
clip-translator
https://github.com/kosuke55/clip-translator
Install
google chromeのバージョンを確認.
google-chrome --version
Google Chrome 81.0.4044.113
調べたバージョンに最も近いchromedriver_binaryをインストール.
sudo pip install chromedriver_binary==81.0.4044.138.0
pip install chromedriver_binary==
とするとインストールできるバージョンを全て確認することができます.
以下のバッケージをインストール(PyPI登録はしてないです)
git clone https://github.com/kosuke55/clip-translator.git
cd clip-translator
sudo pip install -e .
Setting
以下のスクリプトを実行してキーボードショートカットを登録する.
PrimaryはCtrキーのことです.
python set_keyboard_shortcut.py 'clip-translate' 'clip_translate_c' '<Primary><Alt>c'
手動で登録する場合は,
keyboardと検索して,shorcuts, custom shortcutsの欄を選択.
+ボタンを押して以下の画像のようにショートカットを登録する.
(例ではctrl-alt-cを設定しています.)
サーバー側の方もデスクトップにショートカットを作成したい場合は
python create_desktop_shortcut.py
としてください. デフォルトでは英語->日本語になってます.
Run
作成したデスクトップショートカットを実行するとブラウザが立ち上がる.
またはターミナルから
clip_translate_s
ブラウザが立ち上がった後にctrl-cでtextをコピーしてctrl-alt-cを押すと,自動的にdeeplに送られて翻訳ができる.
Options
clip_translate_s -h
usage: clip_translate_s [-h] [--source SOURCE] [--target TARGET] [--mode MODE]
[--split SPLIT] [--remove-hyphen REMOVE_HYPHEN]
[--remove-newline REMOVE_NEWLINE]
optional arguments:
-h, --help show this help message and exit
--source SOURCE, -s SOURCE
source language (default: en)
--target TARGET, -t TARGET
target language (default: ja)
--mode MODE, -m MODE Translation site (deepl or google) (default: deepl)
--split SPLIT, -sp SPLIT
Use wordninja split (default: 0)
--remove-hyphen REMOVE_HYPHEN, -rh REMOVE_HYPHEN
Remove hypen (default: 0)
--remove-newline REMOVE_NEWLINE, -rn REMOVE_NEWLINE
Remove newline (default: 0)
DeepLの代わりにgoogle翻訳を使いたければ
clip_translate_s -m google
とする.
おわりに
とりあえずやりたいことはできた気がします. 公式アプリが出るまでこれで我慢します.