DeepLをCLIでたたけるようにする

2021年09月02日

deepl APIをCLIでかんたんに叩けるようにする。

deeplコマンドの後に英語

% deepl We have plenty of food right now because it is summer, but once winter comes, there will be no food to eat here.

日本語が出力される

今は夏だから食べ物がたくさんあるけ  、冬になったらここには食べるもの  ないよ。
#!/bin/bash

authKey=$DeepLKey # DeepLから認証キーを取得し、環境変数にセットしておく
toLang="JA"

arg=""
if [ -p /dev/stdin ]; then # パイプで標準入力が渡されたか
  # echo hoge | deepl
  arg=`cat -` # 標準入力取得
else
  # deepl hoge
  arg=$@ # 全引数取得
fi

text=$arg
# -sでダウンロード状況表示させない
# -Sでエラーは表示するように
resp=`curl -sS https://api-free.deepl.com/v2/translate \
  -d "auth_key=${authKey}" \
  -d "target_lang=${toLang}" \
  -d "text=${text}"`
# -rでダブルクオーテーションが消える
echo $resp | jq -r ".translations[].text"

exit 0