The following Tcl/Tk code demonstrates a simple implementation of the BabelFish
web service:
package require SOAP
package require Iwidgets 4.0
SOAP::create getTranslation \
-uri "urn:xmethodsBabelFish" \
-name "BabelFish" \
-action "urn:xmethodsBabelFish#BabelFish" \
-proxy "http://services.xmethods.net:80/perl/soaplite.cgi" \
-params { "language" "string" "string" }
proc translate {} {
global sourcewordtemp lang
.mb issue "Contacting BabelFish" BABELFISH
update idletasks
.mb issue [getTranslation $lang $sourcewordtemp] INFO
update idletasks
}
iwidgets::entryfield .login -labeltext "Text:" -labelpos nw -textvariable
sourcewordtemp
pack .login -padx 4 -pady 4 -fill both
iwidgets::radiobox .rb -labeltext "Language:" -labelpos nw
pack .rb -padx 4 -pady 4 -fill both
.rb add en_fr -text "English to French" -variable lang -value en_fr
.rb add en_de -text "English to German" -variable lang -value en_de
.rb add en_it -text "English to Italian" -variable lang -value en_it
.rb add en_es -text "English to Spanish" -variable lang -value en_es
.rb select en_es
iwidgets::messagebox .mb -hscrollmode dynamic -labeltext "Output" \
-labelpos n -visibleitems 50x8
pack .mb -padx 5 -pady 5 -fill both -expand yes
.mb type add ERROR -background red -foreground white -bell 1
.mb type add BABELFISH -background seashell -foreground black
.mb type add INFO -background white -foreground black
frame .cntls
pack .cntls -padx 5 -pady 5 -fill x
button .cntls.error -text "Translate" -command {
translate
}
pack .cntls.error -side left -expand yes
button .cntls.warning -text "Exit" -command {
exit
}
pack .cntls.warning -side left -expand yes |