Essa também veio lá do meu blog em inglês. Como criar uma ferramenta de tradução em Flex usando os recursos on-line que o google tem?
Google está cada vez mais entrando na esfera do Flash player e outras plataformas deixando-as consumir seus serviços, prova disso foi os outros testes feitos anteriormente à isso.
Para usar o serviço de tradução do Google é bem simples, ele respondendo com formato de dados em JSON, REST, XML, TXT no Flex fica mais fácil.
Para encurtar muito nessa explicação aqui abaixo você tem o código fonte da aplicação. Lembrando que para executá-la. à necessário você baixar o código fonte dele, devido ter algumas dependências de classes.
Código fonte
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 |
< ?xml version="1.0" encoding="utf-8"?> <mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="626"> </mx><mx :Script> < ![CDATA[ import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; import com.adobe.serialization.json.JSON; [Bindable]public var googleText:String = "http://ajax.googleapis.com/ajax/services/language/" ; [Bindable]public var tsrc:String ="translate?v=1.0&q="; [Bindable]public var lanpair:String = "&langpair="; [Bindable]public var pairCode:String = "%7C"; private function onJSONLoad(event:ResultEvent):void { var rawData:String = String(event.result); if(JSON.decode(rawData).responseData.translatedText !=null){ var decoded:String =JSON.decode(rawData).responseData.translatedText; }else { decoded = "None support"; } txtdest.text = decoded; } ]]> </mx> <mx :Array id="langFrom"> <mx :Object value="auto" label="Select Language"/> <mx :Object value="ar" label="Arabic"/> <mx :Object value="bg" label="Bulgarian"/> <mx :Object value="zh-CN" label="Chinese"/> <mx :Object value="hr" label="Croatian"/> <mx :Object value="cs" label="Czech"/> <mx :Object value="da" label="Danish"/> <mx :Object value="nl" label="Dutch"/> <mx :Object value="en" label="English"/> <mx :Object value="fi" label="Finnish"/> <mx :Object value="fr" label="French"/> <mx :Object value="de" label="German"/> <mx :Object value="el" label="Greek"/> <mx :Object value="hi" label="Hindi"/> <mx :Object value="it" label="Italian"/> <mx :Object value="ja" label="Japanese"/> <mx :Object value="ko" label="Korean"/> <mx :Object value="no" label="Norwegian"/> <mx :Object value="pl" label="Polish"/> <mx :Object value="pt" label="Portuguese"/> <mx :Object value="ru" label="Russian"/> <mx :Object value="es" label="Spanish"/> <mx :Object value="sv" label="Swedish"/> </mx> <mx :Array id="langTo"> <mx :Object value="ar" label="Arabic"/> <mx :Object value="bg" label="Bulgarian"/> <mx :Object value="zh-CN" label="Chinese (Simplified)"/> <mx :Object value="zh-TW" label="Chinese (Traditional)"/> <mx :Object value="hr" label="Croatian"/> <mx :Object value="cs" label="Czech"/> <mx :Object value="da" label="Danish"/> <mx :Object value="nl" label="Dutch"/> <mx :Object value="en" label="English"/> <mx :Object value="fi" label="Finnish"/> <mx :Object value="fr" label="French"/> <mx :Object value="de" label="German"/> <mx :Object value="el" label="Greek"/> <mx :Object value="hi" label="Hindi"/> <mx :Object value="it" label="Italian"/> <mx :Object value="ja" label="Japanese"/> <mx :Object value="ko" label="Korean"/> <mx :Object value="no" label="Norwegian"/> <mx :Object value="pl" label="Polish"/> <mx :Object value="pt" label="Portuguese"/> <mx :Object value="ru" label="Russian"/> <mx :Object value="es" label="Spanish"/> <mx :Object value="sv" label="Swedish"/> </mx> <mx :ComboBox id="langFromCbx" prompt="Select a language" x="28.5" y="64" dataProvider="{langFrom}"/> <mx :HTTPService id="googleTransService" url="{googleText + tsrc+txtsource.text + lanpair + String(langFromCbx.selectedItem.value)+pairCode+String(langToCbx.selectedItem.value)}" useProxy="false" showBusyCursor="true" result="onJSONLoad(event)" resultFormat="text"/> <mx :TextArea id="txtsource" x="28.5" y="124" width="569" height="116"/> <mx :TextArea id="txtdest" x="28.5" y="274" width="569" height="248"/> <mx :Button x="473.5" y="61" label="Translate" click="googleTransService.send()" width="124" height="28"/> <mx :ComboBox id="langToCbx" x="222.5" y="64" prompt="Select a language" dataProvider="{langTo}"></mx> <mx :Label x="30.5" y="45" text="Translate from:"/> <mx :Label x="28.5" y="98" text="Text to Translate"/> <mx :Label x="28.5" y="248" text="Result Text translated"/> <mx :Label x="222.5" y="45" text="Translate To:"/> |
[Update] Alguns códigos exibidos neste post podem não aparecer corretamente, devido a um problema antigo em um plug-in para exibir código fonte. Pedimos desculpas.

05/29/2008, 08:49 am
heheh, boa igor. Isso é bom pra dar um a+ no sistema.
08/14/2008, 10:25 am
Cara aqui ele ta dando o seguinte erro:
unable to open ‘X:PrestonFlex Builder 3GoogleTranslateAS3APIlibs’
o q vem a ser isso???