Add 'deepl-cli'
First commit
This commit is contained in:
parent
15197c0355
commit
1964671ab8
1 changed files with 54 additions and 0 deletions
54
deepl-cli
Normal file
54
deepl-cli
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
# You need an API key. You can get it for free from https://www.deepl.com/pro-api
|
||||||
|
key=""
|
||||||
|
usage="usage: $0 [-h] [-l] target language [-t] text"
|
||||||
|
lang="IT" # Target language (EN, FR, ES, RU...)
|
||||||
|
|
||||||
|
# API request
|
||||||
|
request () {
|
||||||
|
response=$(curl -s https://api-free.deepl.com/v2/translate -d auth_key="$key" -d "text=$2" -d "target_lang=$1")
|
||||||
|
echo $response
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main
|
||||||
|
while getopts ":hl:t:" option; do
|
||||||
|
case $option in
|
||||||
|
h)
|
||||||
|
echo $usage;
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
l)
|
||||||
|
lang=${OPTARG^^} # Uppercase
|
||||||
|
;;
|
||||||
|
t)
|
||||||
|
text=${OPTARG} # Text to translate
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "error: option -$OPTARG is not implemented";
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Get stdin
|
||||||
|
if [ -z "$text" ] && [ -p /dev/stdin ]; then
|
||||||
|
text=$(cat /dev/stdin)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$text" ]; then
|
||||||
|
echo "error: text not provided or empty"
|
||||||
|
echo $usage
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$key" ]; then
|
||||||
|
echo "error: you need an API key. You can get it for free from https://www.deepl.com/pro-api"
|
||||||
|
echo $usage
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
response=$(request $lang "$text")
|
||||||
|
# You can use jq, alternatively
|
||||||
|
echo $response | cut -d: -f4 | cut -d'"' -f2
|
Loading…
Reference in a new issue