Languages

Using Google AJAX Language API

Your rating: None Average: 5 (3 votes)
/**
*
*    Description  : A simple snippet to demonstrate how to use Google AJAX API in Vala programming language
*    Vala version : 0.7.8
*    Developed by : Emad Al-Bloushi
*    Date         : Thu 12 Nov, 2009
*    Compile with : valac --thread --pkg libsoup-2.4 --pkg json-glib-1.0 GoogleTranslator.vala
*    Refer to     : http://code.google.com/apis/ajaxlanguage/documentation/#fonje
*
**/
 
using Soup;
using Json;
 
class GoogleTranslator {
 
    public static string execute ( string text , string il , string ol) throws GLib.Error {
 
	string uri = "http://ajax.googleapis.com/ajax/services/language/translate?"; 
    	string version = "1.0";
    	string input_language = il;
    	string output_language = ol;
	string full_uri = uri + "v=" + version + "&q=" + URI.encode (text,null) + "&langpair=" + input_language + "|" + output_language;
 
    	var parser = new Parser ();
    	var session = new SessionAsync ();
	var message = new Message ("GET", full_uri);
 
	session.send_message (message);
        parser.load_from_data (message.response_body.data, (int) message.response_body.length);
 
        unowned Json.Node root = parser.get_root ();
        unowned Json.Node translated_text = root.get_object ().get_member ("responseData").get_object ().get_member("translatedText");
	// Here you can get the value of responseDetails
        //unowned Json.Node response_details = root.get_object ().get_member ("responseDetails");
	// Here you can get the value of responseStatus
        //unowned Json.Node response_status = root.get_object ().get_member ("responseStatus");
        return translated_text.get_string ();
    }
 
    public static void main (string[] args) {
 
	try {
		string original_text = "Hello World";
		string translated_text = GoogleTranslator.execute (original_text,"en","ar");
		stdout.printf ("Translated Text : %s\n" , translated_text);
 
	} catch (Error e) {
        	stdout.printf ("I think there is something wrong !");
    	}
 
    }
 
}