当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net利用google的api做翻译

asp.net利用google的api做翻译

2017年12月12日  | 移动技术网IT编程  | 我要评论

拉丁语我爱你,丹东 供求,我在垦丁天气晴吻戏

说明:google提供了一组api可以给我们很方便的实现语言翻译功能,对于我们(中国人)而言,常用的是中文与英文的互译。大家英文好的可以看看google的文档: 

这篇文章原创在:

需要使用到json.net在下载。

什么是序列化?可以看看我前面的文章。

       其实google已经提供了在js下很方便的翻译功能,但有些情况下我们却需要在.net下操作。什么情况?采集中文文章并翻译成英文入库,或者是写一个c/s的软件。下面我将主要贴出代码,具体的可以看木子写的文章。
其需要用:
encodeuricomponent
传值。
主要代码:
复制代码 代码如下:

/// <summary>
/// 替换翻译后的特殊字符,用于换行等
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private string transtohtml(string str)
{
string temp;
temp = str.replace("003c", "<");
temp = temp.replace("003e",">");
return temp;
}

/// <summary>
/// 使用webrequest获取google翻译后的内容
/// </summary>
/// <param name="str"></param>
/// <param name="strrequestlan"></param>
/// <param name="strresultlan"></param>
/// <returns></returns>
private string getgoogletransjsonstring(string str, string strrequestlan, string strresultlan)
{
try
{
webrequest request = httpwebrequest.create("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + str + "&langpair=" + strrequestlan + "%7c" + strresultlan);
request.credentials = credentialcache.defaultcredentials;
httpwebresponse response = (httpwebresponse)request.getresponse();
stream stream = response.getresponsestream();
streamreader reader = new streamreader(stream);
string responsefromserver = reader.readtoend();
reader.close();
stream.close();
response.close();
return responsefromserver;
}
catch (exception ex)
{
return ex.message;
}
}


/// <summary>
/// 翻译
/// </summary>
/// <param name="str">需要翻译的内容</param>
/// <param name="strreuest">原文</param>
/// <param name="strresult">译文</param>
/// <returns></returns>
public string translate(string str, string strreuestlan, string strresultlan)
{
try
{
if (!string.isnullorempty(str))
{
translatestring transtr = (translatestring)newtonsoft.json.javascriptconvert.deserializeobject(getgoogletransjsonstring(str, strreuestlan, strresultlan),typeof(translatestring));
if (transtr.responsestatus == 200)
{
return transtr.responsedata.translatedtext;
}
else
{
return "有错误发生";
}
}
else
{
return str;
}

}
catch (exception ex)
{
return ex.message;
}
}

反序列化:
复制代码 代码如下:

using system;

/// <summary>
///反序列化
/// </summary>
/// {"responsedata": {"translatedtext":"ahuinan"}, "responsedetails": null, "responsestatus": 200}
[serializable]
public class translatestring
{
private translatedtext _responsedata;
private string _responsedetails;
private int _responsestauts;

public translatedtext responsedata
{
get
{
return _responsedata;
}
set
{
_responsedata = value;
}
}

public string responsedetails
{
get
{
return _responsedetails;
}
set
{
_responsedetails = value;
}
}

public int responsestatus
{
get
{
return _responsestauts;
}
set
{
_responsestauts = value;
}
}

/// <summary>
/// 译文内容
/// </summary>
public class translatedtext
{
private string _translatedtext;
public string translatedtext
{
get
{
return _translatedtext;
}
set
{
_translatedtext = value;
}
}
}
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网