#!/usr/bin/env bash # set -vx if [ $# -lt 3 ]; then printf "not enough arguments given\n\ usage: ltranslate sourcelang targetlang query\n" exit 1 fi dependencycheck() { numdependencies="$#" dependencies=("$@") missingdependencies=0 for ((i = 0; i < numdependencies; i++)) ; do if ! command -v "${dependencies[$i]}" &> /dev/null ; then printf "dependency not met: %s\n" "${dependencies[$i]}" missingdependencies=$((missingdependencies+1)) fi done if [ $missingdependencies -gt 0 ]; then exit 1 fi } dependencycheck curl awk sed ua='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36' url="https://libretranslate.de/translate" headers="Content-Type: application/json" source=$1 target=$2 query="${*:3}" main() { result=$(curl -sAX POST "${ua}" "${url}" -H "${headers}" -d '{"q": "'"${query}"'", "source": "'"${source}"'", "target": "'"${target}"'"}' | awk -F ':' '{ print $2 }' | sed 's/"//g; s/}//g') printf '%s'"${result}\n" } main