misc-scripts/stranslate

54 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# DEFAULT OPTIONS
INSTANCE="https://translate.bus-hit.me"
ENGINE="google"
FLANG="auto"
TLANG="en"
BN="${0##*/}"
errecho() {
>&2 echo "$@"
}
fail() {
errecho "error: $BN: $*"
exit 1
}
usage() {
errecho \
"usage: $BN [-h] [-i INSTANCE] [-e ENGINE] [-f LANG] [-t LANG] TEXT
translate text using simplytranslate
-h show this help
-i <INSTANCE> choose simplytranslate instance
default: \"$INSTANCE\"
-e <ENGINE> use ENGINE to translate
default: \"$ENGINE\"
-f <LANG> translate from LANG
default: \"$FLANG\"
-t <LANG> translate to LANG
default: \"$TLANG\""
exit 0
}
# Read options
while getopts :hi:f:t: OPT; do
case "$OPT" in
h) usage ;;
i) INSTANCE="$OPTARG" ;;
e) ENGINE="$OPTARG" ;;
f) FLANG="$OPTARG" ;;
t) TLANG="$OPTARG" ;;
*) fail "unknown option: -$OPTARG. run $BN -h to see all options" ;;
esac
done
shift $((OPTIND - 1))
[ -n "$*" ] || set -- "$(cat /dev/stdin)"
[ -n "$*" ] || usage
curl -s "${INSTANCE}/api/translate?engine=${ENGINE}&from=${FLANG}&to=${TLANG}&text=$(jq -rn --arg x "$*" '$x|@uri')" | jq -r '."translated-text"'