AS3 ve Google Translate

Bildiğiniz gibi Google ın harika bir çeviri sistemi var ve bu sisteme uzun süre önce Türkçeyi de dahil etti.Uzun cümleleri çevirirken biraz garipleşsede bence yinede başarılı bir sistem olarak yoluna devam ediyor ve ilerleyen zamanda çok daha yeni özellikler barındıracağını Google ın blogunda okumuştum.Aslında öylede oldu.Google uygulamalarının çoğunda translate sistemini kullanmaya başladı.Bkz: www.gmail.com

Google bu uygulamarın herkes tarafından kullanılmasını istyor.Tabiki ActionScript geliştiricilerininde.Bu konuda bi çok api var.Ancak ben bu örnekte çok daha pratik bi yöntem kullanmayı tercih ettim.

Bu basit çalışmada yapacağımız şey şu: Uygulamamıza giren kullanıcıların Flash Player dilini öğrenip Google Transltate yardımıyla sahnede bulunan TextField ların içeriğini bu dile çevireceğiz.
Aslında çok ama çok basit ve yararlı olacağına inandığım bi yapı gibi geliyor bana.
Uygulamanın kodları şu şekilde:

stage.scaleMode="noScale";
stage.align="topLeft"

var tf:TextField;
var i:int = -1;
nextText ();
/**
* Bu fonksiyon sahnede bulunan objleri seçerek
* çevrilmesi için
*/

function nextText ():void
{
        i++;
        if (i < this.numChildren)
        {
               
       
                var item:DisplayObject = this.getChildAt(i);
                if (item is TextField)
                {
                        tf = TextField(item);
                        translate (tf);
                       
                }else
                {
                        nextText()
                }
        }
}
function translate (tf:TextField):void
{
        //Bu adres api adresi bizim ona gönderdiğimiz pramatrelere uygun olarak bize
        //çeviriyi dönderecek
        var request:URLRequest = new URLRequest("http://ajax.googleapis.com/ajax/services/language/translate");
        request.method = URLRequestMethod.GET;

        //Burda çeviri yapılacak dili belirledik
        //Biz  FlashPlayer ın dilini istedik.
        var to:String = Capabilities.language;
        var variables:URLVariables = new URLVariables();
        variables.v = "1.0"; //Api versiyonu
        variables.q = tf.text; //Çeviri yapılacak cümle veya kelime
        variables.langpair = "tr|" + to; //Çeviri sorgusu
        request.data = variables;

        if (to != "tr") //Eğer dil Türkçeyse zaten çevirmeye gerek yok
        {
                var loader:URLLoader = new URLLoader(request);
                loader.addEventListener (Event.COMPLETE, onComplete);
        }

}
function onComplete (event:Event):void
{
        var obj:String = (event.target.data);
        //Çeviri texte yazılıyor.Api bize JSon dönderiyor ancak ben bu uygulamada kolay olsun ufak bi
        //parsingle hızlı çeviri yapmayı amaçlamıştım
        tf.text = (obj.split("\"")[5]);
        nextText()

}

Uygulamanın Çalışan Hali:

Eğer bilgisayarınızın dili Türkçe ise bi çeviri göremeyeceksiniz.

O halde bu swf ye bakın:

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

6 Comments »

 
 

Bir Cevap Yazın