#!/bin/sh ## TODO: support for long texts. _printhelp () { cat</dev/null else ## Use sed to fetch first entry only. sed -e 's/\[\[\[[^[]*\[\[[^[]*\[\([^[]*\)\].*/\1/' -e 's/"//g' echo fi } _translate() { TEXT="$(tr '\n' ' ' | sed 's/[\t ]\+/%20/g')" ## If input is not a single word, disable alternative translations. We use a ## point in the grep string to ignore any space at the end. [ -n "$(echo $TEXT | grep '%20.')" ] && OPT_LONG=false if [ "$SL" = "" ]; then curl -A "Mozilla/5.0" 'http://translate.google.com/translate_a/t?client=t&text='$TEXT'&tl='$TL'&ie=UTF-8&oe=UTF-8' else curl -A "Mozilla/5.0" 'http://translate.google.com/translate_a/t?client=t&text='$TEXT'&sl='$SL'&tl='$TL'&ie=UTF-8&oe=UTF-8' fi 2>/dev/null | _filter } if [ $# -ne 0 ]; then echo "$@" | _translate else _translate fi ## Original command: # curl -A "Mozilla/5.0" 'http://translate.google.com/translate_a/t?client=t&text=hello&hl=en&sl=en&tl=zh-CN&ie=UTF-8&oe=UTF-8&multires=1&prev=btn&ssel=0&tsel=0&sc=1' | sed 's/\[\[\["\([^"]*\).*/\1/'