Buona Sera,
Acabo de desarrollar esta clase Actionscript3 util para traducir un texto dado a través de la api json de google.
No olvides de añadir el logo de google como credito.
Otra implementación encontrada en el blog de Cyril Hanquez
[as]
package com.mattimatti.translate
{
import com.adobe.serialization.json.JSON;
import flash.events.ErrorEvent;
import flash.events.Event;
import mx.controls.Alert;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
[Event(name="complete", type="flash.events.Event")]
[Event(name="error", type="flash.events.ErrorEvent")]
public class GTranslatorAsync extends HTTPService
{
private var _translated:String = “”;
private var _errorMessage:String = “”;
/**
* Constructor
*
*/
public function GTranslatorAsync()
{
super(null, null);
url = “http://ajax.googleapis.com/ajax/services/language/translate”;
request.v = “1.0″;
addEventListener(ResultEvent.RESULT, __onServerResponse);
addEventListener(FaultEvent.FAULT, __onFaultResponse);
}
/**
*
* @param inString the string to translate
* @param inLangPair the lang pair in format es|en
*
*/
public function translate(inString:String, inLangPair:String = null):void{
if(inLangPair)langpair=inLangPair;
request.q = inString;
if(!langpair)throw new Error(“SPECIFY_LANGPAIR”);
super.send();
}
/**
* Ovverrides function to inable it
*
*/
override public function send(parameters:Object = null):AsyncToken{
throw new Error(“UNIMPLEMENTED_METHOD”)
}
/**
* Setter for langpair
* @param inLang
*
*/
public function set langpair(inLang:String):void{
if(inLang.length!=5)throw new Error();
if(inLang.indexOf(“|”)!=2)throw new Error();
request.langpair = inLang;
}
/**
* getter for langpair
* @return
*
*/
public function get langpair():String{
return request.langpair;
}
/**
* Setter for translated
* @param inLang
*
*/
public function set translated(inLang:String):void{
}
/**
* getter for translated
* @return
*
*/
public function get translated():String{
return _translated;
}
/**
* getter for errorMessage
* @return
*
*/
public function get errorMessage():String{
return _errorMessage;
}
/**
* Setter for translated
* @param inLang
*
*/
public function set errorMessage(inLang:String):void{
}
/**
*
* @param e
*
*/
private function __onServerResponse(event:ResultEvent):void{
var json:Object = JSON.decode(event.result as String);
_translated = json.responseData.translatedText;
dispatchEvent(new Event(Event.COMPLETE,true,false));
}
/**
*
* @param e
*
*/
private function __onFaultResponse(event:FaultEvent):void{
_translated = “”;
_errorMessage = event.fault.message;
dispatchEvent(new ErrorEvent(ErrorEvent.ERROR,true,false));
}
override public function toString():String{
return “GTranslatorAsync”;
}
}
}
[/as]
MXML impementation
[as] creationComplete="creationCompleteHandler()" private function creationCompleteHandler():void{ translator.translate("shit","en|fr"); private function onComplete(e:Event):void{ } private function onError(e:ErrorEvent):void{ ]]>
>
import mx.controls.Alert;
import com.pukkas.tracing.TracePanelController;
}
Alert.show(translator.translated);
Alert.show(translator.errorMessage);
}
[/as]
This entry was posted on Tuesday, February 17th, 2009 at 12:45 pm
You can follow any responses to this entry through the RSS 2.0 feed.

Xing
LinkedIn
Twitter
Delicious
Facebook