Google Translator API
This program used to translate one language to other language.
private void button1_Click(object sender, EventArgs e)
{
string Text = "This is a string to translate";
Console.WriteLine("Before Translation:{0}", Text);
Text = Google.API.Translate.Translator.Translate(Text, Google.API.Translate.Language.English,
Google.API.Translate.Language.French);
Console.WriteLine("Before Translation:{0}", Text);
// Translate(textBox1.Text,ENGLISH,MALAYALAM);
}
private string Translate(string stringToTranslate, string fromLanguage, string toLanguage)
{
// make sure that the passed string is not empty or null
if (!String.IsNullOrEmpty(stringToTranslate))
{
// per Google's terms of use, we can only translate
// a string of up to 5000 characters long
if (stringToTranslate.Length <= 5000)
{
const int bufSizeMax = 65536;
const int bufSizeMin = 8192;
try
{
// by default format? is text.
// so we don't need to send a format? key
string requestUri = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + stringToTranslate + "&langpair=" + fromLanguage + "%7C" + toLanguage;
// execute the request and get the response stream
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
// get the length of the content returned by the request
int length = (int)response.ContentLength;
int bufSize = bufSizeMin;
if (length > bufSize)
bufSize = length > bufSizeMax ? bufSizeMax : length;
// allocate buffer and StringBuilder for reading response
byte[] buf = new byte[bufSize];
StringBuilder sb = new StringBuilder(bufSize);
// read the whole response
while ((length = responseStream.Read(buf, 0, buf.Length)) != 0)
{
sb.Append(Encoding.UTF8.GetString(buf, 0, length));
}
// the format of the response is like this
// {"responseData": {"translatedText":"¿Cómo estás?"}, "responseDetails": null, "responseStatus": 200}
// so now let's clean up the response by manipulating the string
string translatedText = sb.Remove(0, 36).ToString();
translatedText = translatedText.Substring(0,
translatedText.IndexOf("\"},"));
return translatedText;
}
catch
{
return "Cannot get the translation. Please try again later.";
}
}
else
{
return "String to translate must be less than 5000 characters long.";
}
}
else
{
return "String to translate is empty.";
}
}
This program used to translate one language to other language.
private void button1_Click(object sender, EventArgs e)
{
string Text = "This is a string to translate";
Console.WriteLine("Before Translation:{0}", Text);
Text = Google.API.Translate.Translator.Translate(Text, Google.API.Translate.Language.English,
Google.API.Translate.Language.French);
Console.WriteLine("Before Translation:{0}", Text);
// Translate(textBox1.Text,ENGLISH,MALAYALAM);
}
private string Translate(string stringToTranslate, string fromLanguage, string toLanguage)
{
// make sure that the passed string is not empty or null
if (!String.IsNullOrEmpty(stringToTranslate))
{
// per Google's terms of use, we can only translate
// a string of up to 5000 characters long
if (stringToTranslate.Length <= 5000)
{
const int bufSizeMax = 65536;
const int bufSizeMin = 8192;
try
{
// by default format? is text.
// so we don't need to send a format? key
string requestUri = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + stringToTranslate + "&langpair=" + fromLanguage + "%7C" + toLanguage;
// execute the request and get the response stream
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
// get the length of the content returned by the request
int length = (int)response.ContentLength;
int bufSize = bufSizeMin;
if (length > bufSize)
bufSize = length > bufSizeMax ? bufSizeMax : length;
// allocate buffer and StringBuilder for reading response
byte[] buf = new byte[bufSize];
StringBuilder sb = new StringBuilder(bufSize);
// read the whole response
while ((length = responseStream.Read(buf, 0, buf.Length)) != 0)
{
sb.Append(Encoding.UTF8.GetString(buf, 0, length));
}
// the format of the response is like this
// {"responseData": {"translatedText":"¿Cómo estás?"}, "responseDetails": null, "responseStatus": 200}
// so now let's clean up the response by manipulating the string
string translatedText = sb.Remove(0, 36).ToString();
translatedText = translatedText.Substring(0,
translatedText.IndexOf("\"},"));
return translatedText;
}
catch
{
return "Cannot get the translation. Please try again later.";
}
}
else
{
return "String to translate must be less than 5000 characters long.";
}
}
else
{
return "String to translate is empty.";
}
}
No comments:
Post a Comment