1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
#!/bin/sh
# $Id: translate,v 1.3 2001/12/23 10:15:19 proff Exp $
# elvis: translate -- Translate human languages (various providers)
. surfraw || exit 1
w3_config_hook () {
def SURFRAW_translate_provider babelfish
def SURFRAW_translate_from fr
def SURFRAW_translate_to en
}
w3_usage_hook () {
cat <<EOF
Usage: $w3_argv0 [options] [words-to-translate]...
Description:
Surfraw translate human language
Local options:
-from=LANGUAGE Souce language
Default: $SURFRAW_translate_from
Environment: SURFRAW_translate_from
-to=LANGUAGE Destination language
Default: $SURFRAW_translate_to
Environment: SURFRAW_translate_to
-provider= Translation service provider
babelfish babelfish.altavista.com (systrans)
raging babelfish.altavista.com/raging (systrans)
Default: $SURFRAW_translate_provider
Environment: SURFRAW_translate_provider
Languages:
de German
en English
es Spanish
fr French
it Italian
ja Japanese
ko Korean
pt Portuguese
ru Russian
zh Chinese
Examples:
$w3_argv0 Provider's standard translation page
$w3_argv0 -provider raging Use raging search as a translation provider
$w3_argv0 -from fr -to en la verite vous liberera
Bugs:
Systrans derived providers only support the following translation
combinations:
English to Chinese
English to French
English to German
English to Italian
English to Japanese
English to Korean
English to Portuguese
English to Spanish
Chinese to English
French to English
French to German
German to English
German to French
Italian to English
Japanese to English
Korean to English
Portuguese to English
Russian to English
Spanish to English
EOF
w3_global_usage
}
w3_parse_option_hook () {
opt="$1"
optarg="$2"
case "$opt" in
-from=*) setopt SURFRAW_translate_from $optarg ;;
-to=*) setopt SURFRAW_translate_to $optarg ;;
-provider=*) setopt SURFRAW_translate_provider $optarg ;;
*) return 1 ;;
esac
return 0
}
w3_config
w3_parse_args "$@"
# w3_args now contains a list of arguments
test -z "$w3_args" || escaped_args=`w3_url_of_arg $w3_args`
case $SURFRAW_translate_provider in
babelfish | raging)
case $SURFRAW_translate_provider in raging) r=raging/ ;; *) r="";; esac
if test -z "$escaped_args"; then
w3_browse_url "http://babelfish.altavista.com/${r}translate.dyn"
else
case "$escaped_args" in
http*) w3_browse_url "http://babelfish.altavista.com/${r}translate.dyn?doit=done&BabelFishFrontPage=yes&bblType=url&url=${escaped_args}&lp=${SURFRAW_translate_from}_${SURFRAW_translate_to}"
;;
*) w3_browse_url "http://babelfish.altavista.com/${r}translate.dyn?doit=done&BabelFishFrontPage=yes&bblType=urltext&urltext=${escaped_args}&lp=${SURFRAW_translate_from}_${SURFRAW_translate_to}"
;;
esac
fi
;;
*) err "unknown provider ${SURFRAW_translate_provider}"
esac
exit $?
|