package { import flash.events.*; import flash.net.*; public class GoogleLanguage extends EventDispatcher { public static const COMPLETE :String = "complete"; private const API_PATH :String = "http://ajax.googleapis.com/ajax/services/language/translate"; private const VERSION :String = "1.0"; private var _urlloader :URLLoader; private var _result :String; public function GoogleLanguage() { _init(); } public function translate( text :String, fromLang :String = "en", toLang :String = "ja" ) { var variables :URLVariables = new URLVariables(); variables.v = VERSION; variables.q = text; variables.langpair = fromLang + "|" + toLang; var req :URLRequest = new URLRequest(); req.method = URLRequestMethod.POST; req.url = API_PATH; req.data = variables; _urlloader.load( req ); } private function _init ( ) :void { _urlloader = new URLLoader(); _urlloader.addEventListener(Event.COMPLETE, _loadComplete ); } private function _loadComplete ( evt :Event ) :void { var res :String = _urlloader.data as String; var arr :Array; if ( res.indexOf("detectedSourceLanguage") == -1 ) arr = res.match( /"translatedText":"(.*)"}/ ); else arr = res.match( /"translatedText":"(.*)",/ ); if ( arr ) _result = arr[1]; else _result = ""; dispatchEvent( new Event(GoogleLanguage.COMPLETE) ); } public function get result ( ) :String { return _result; } } }