はじめに
たとえば英語論文を読んでいるとき、PDFの文章をコピーしてDeepLにぶん投げること、ありますよね。しかし普通にコピペすると、それぞれの行が改行扱いになって変な翻訳になってしまうことも多いわけです。
これを解消するために、よくブラウザのURL欄に一度貼り付けたりするわけですが、
「PDFコピー」→「URL欄にペースト」→「全選択」→「コピー」→「DeepLにペースト」
って普通に面倒ですよねっていう。
でもよく考えたらこれってBTTの機能で全自動化できないか?と思ってやってみました。
環境
MacBook Pro 15-inch, 2018
macOS Sonoma 14.2.1
BetterTouchTool Version: 4.356
実装
BTTの機能を利用して、専用のキーボードショートカットキーを作成します(もちろんショートカットキー以外でもOK)。適当なショートカットをトリガーに設定したら、アクションは
「Text Actions」から「JavaScriptで選択範囲を変換&コピー」
を選択してください。
クリップボードトランスフォーマー機能のところに、たとえば下記のように入力すると、忌まわしき改行を駆逐してコピーすることができるようになります(ついでに行末のハイフネーションも駆逐しています)。
async (clipboardContentString) => {
return clipboardContentString.replaceAll("-\n","").replaceAll("\n", " ");
}
結果
こんな感じの途切れてしまった文章を、ショートカット一つでコピーして
For example, when you want to
translate a sentence with many unnece-
ssary line breaks like this one,
you can paste it into DeepL easily!
こう普通にペーストできます
For example, when you want to translate a sentence with many unnecessary line breaks like this one, you can paste it into DeepL easily!
これでワンタッチで直接DeepLにコピペできるので、操作が半分以下になって効率爆上がりです。
おわりに
今回は単にハイフネーションと改行を取り除くような変換を行いましたが、他にも使い道はいろいろ見出せそうな気がします。そもそも実装が非常に簡単なので、何か特殊な変換を伴ってコピペしたいとき、手元の文字列から何かを計算したいときに逐一コードを書き換えて使うのもアリかもしれません。
例:なんなら文字数を計算してコピーする機能にする
こうやると、文字列をコピーしてペーストするだけで文字数カウントができます。
async (clipboardContentString) => {
return String(clipboardContentString.length);
}
追記:もっと便利な機能として実装してみました。
BTTは本当に思いつくことは大体何でも実装できますね!便利です。