private TranClass tranClass = new TranClass();
private void BtnTranslate_Click(object sender, EventArgs e)
{
WebClient client = new WebClient(); //引用System.Net
string q = content; //翻译前的内容
tranClass.From = "zh";
tranClass.To = "en";
string salt = DateTime.Now.Ticks.ToString();
string str1 = appid + q + salt + key;
string path = AppDomain.CurrentDomain.BaseDirectory + "js\\md5.js";
string str2 = File.ReadAllText(path);
string fun = string.Format(@"MD5('{0}')", str1);
string sign = ExecuteScript(fun, str2);
if (!string.IsNullOrEmpty(q))
{
string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from={1}&to={2}&appid={3}&salt={4}&sign={5}", q, tranClass.From, tranClass.To, appid, salt, sign);
var buffer = client.DownloadData(url);
string result = Encoding.UTF8.GetString(buffer);
StringReader sr = new StringReader(result);
JsonTextReader jsonReader = new JsonTextReader(sr); //引用Newtonsoft.Json 自带
JsonSerializer serializer = new JsonSerializer();
var r = serializer.Deserialize<TranClass>(jsonReader); //因为获取后的为json对象 ,实行转换
contentEN = r.Trans_result[0].dst; //dst为翻译后的值
}
}
/// <summary>
/// 执行JS
/// </summary>
/// <param name="sExpression">参数体</param>
/// <param name="sCode">JavaScript代码的字符串</param>
/// <returns></returns>
private string ExecuteScript(string sExpression, string sCode)
{
//
MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
scriptControl.UseSafeSubset = true;
scriptControl.Language = "JScript";
scriptControl.AddCode(sCode);
try
{
string str = scriptControl.Eval(sExpression).ToString();
return str;
}
catch (Exception ex)
{
string str = ex.Message;
}
return null;
}
百度翻译,窗体调用js
最新推荐文章于 2023-09-25 13:02:43 发布