#!/bin/bash

# trans.sh - Ich verstehe nicht ;)
# Translate between languages using Yahoo's BabelFish
#
# 2008 - Mike Golvach - eggi@comcast.net
#
# Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License
#

if [ $1 == "-h" ]
then
 echo "Usage: $0 TranslationPref YourQuotedPhrase"
 echo
 echo "TranslationPref Values:"
 echo
 echo "zh_en => Chinese-simple to English"
 echo "zh_zt => Chinese-simple to Chinese-traditional"
 echo "zt_en => Chinese-traditional to English"
 echo "zt_zh => Chinese-traditional to Chinese-simple"
 echo "en_zh => English to Chinese-simple"
 echo "en_zt => English to Chinese-trad"
 echo "en_nl => English to Dutch"
 echo "en_fr => English to French"
 echo "en_de => English to German"
 echo "en_el => English to Greek"
 echo "en_it => English to Italian"
 echo "en_ja => English to Japanese"
 echo "en_ko => English to Korean"
 echo "en_pt => English to Portuguese"
 echo "en_ru => English to Russian"
 echo "en_es => English to Spanish"
 echo "nl_en => Dutch to English"
 echo "nl_fr => Dutch to French"
 echo "fr_nl => French to Dutch"
 echo "fr_en => French to English"
 echo "fr_de => French to German"
 echo "fr_el => French to Greek"
 echo "fr_it => French to Italian"
 echo "fr_pt => French to Portuguese"
 echo "fr_es => French to Spanish"
 echo "de_en => German to English"
 echo "de_fr => German to French"
 echo "el_en => Greek to English"
 echo "el_fr => Greek to French"
 echo "it_en => Italian to English"
 echo "it_fr => Italian to French"
 echo "ja_en => Japanese to English"
 echo "ko_en => Korean to English"
 echo "pt_en => Portuguese to English"
 echo "pt_fr => Portuguese to French"
 echo "ru_en => Russian to English"
 echo "es_en => Spanish to English"
 echo "es_fr => Spanish to French"
 exit 0
elif [ $# -lt 2 ]
then
 echo "Usage: $0 TranslationPref YourPhrase"
 echo "For Tranlation Options: $0 -h"
 echo "Ex: $0 en_de \"hi there. How are you?\""
 echo "Ex: $0 en_it \"hi there. How are you?\""
 exit 1
fi

langtran=$1
#oargs=$2
#args=`echo $oargs|sed -e 's/?/\\?/' -e 's/&/and/' -e 's/ /+/g'`
shift
oargs=$@
args=`echo $oargs|sed -e 's/?/\\?/' -e 's/&/and/' -e 's/ /+/g'`
fromlang=`echo $langtran|awk -F"_" '{print $1}'`
tolang=`echo $langtran|awk -F"_" '{print $2}'`
echo 

case $fromlang in
zh) longlang=Chinese-simple;fromlang=$longlang;;
zt) longlang=Chinese-traditional;fromlang=$longlang;;
en) longlang=English;fromlang=$longlang;;
nl) longlang=Dutch;fromlang=$longlang;;
fr) longlang=French;fromlang=$longlang;;
de) longlang=German;fromlang=$longlang;;
el) longlang=Greek;fromlang=$longlang;;
it) longlang=Italian;fromlang=$longlang;;
ja) longlang=Japanese;fromlang=$longlang;;
ko) longlang=Korean;fromlang=$longlang;;
pt) longlang=Portuguese;fromlang=$longlang;;
ru) longlang=Russian;fromlang=$longlang;;
es) longlang=Spanish;fromlang=$longlang;;
*)  longlang="Unrecognized Language!";fromlang=$longlang;;
esac

case $tolang in
zh) longlang=Chinese-simple;tolang=$longlang;;
zt) longlang=Chinese-traditional;tolang=$longlang;;
en) longlang=English;tolang=$longlang;;
nl) longlang=Dutch;tolang=$longlang;;
fr) longlang=French;tolang=$longlang;;
de) longlang=German;tolang=$longlang;;
el) longlang=Greek;tolang=$longlang;;
it) longlang=Italian;tolang=$longlang;;
ja) longlang=Japanese;tolang=$longlang;;
ko) longlang=Korean;tolang=$longlang;;
pt) longlang=Portuguese;tolang=$longlang;;
ru) longlang=Russian;tolang=$longlang;;
es) longlang=Spanish;tolang=$longlang;;
*)  longlang="Unrecognized Language!";tolang=$longlang;;
esac

wget=/usr/bin/wget

#echo -n "Translated $tolang: "
$wget -nv -O - http://babelfish.yahoo.com/translate_txt?ei=UTF-8\&doit=done\&fr=bf-res\&intl=1\&tt=urltext\&trtext=${args}\&lp=${langtran}\&btnTrTxt=Translate 2>&1|grep -i 'result'|egrep -iv 'txt-form|tips 1'|sed -e 's/$/\n/' -e :a -e 's/<[^>]*>/ /g;/</N;//ba' -e 's/\&[A-Za-z]*\;/ /g' -e 's/ / /g' -e 's/\(.\)$/\1\n/' -e '/^ *\t*$/d'
exit 0