這是簡單的界面。用的是wpf,winform也可以
具體的操作類
public partial class MainWindow : Window { string url = ""; public MainWindow() { InitializeComponent(); this.cbxTranslateChange.SelectedIndex = 0; } private TranClass tranClass = new TranClass(); private void btnTranslate_Click(object sender, RoutedEventArgs e) { WebClient client = new WebClient(); //引用System.Net string fromTranslate = tbxFromContent.Text; //翻譯前的內容 if (!string.IsNullOrEmpty(fromTranslate)) {
//client_id為自己的api_id,q為翻譯對象,from為翻譯語言,to為翻譯后語言 string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", "youAPI_Id", fromTranslate, tranClass.From, tranClass.To); 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對象 ,實行轉換 tbxToContent.Text = r.Trans_result[0].dst; //dst為翻譯后的值 } }
//改變翻譯語言來執行相應的操作 private void cbxTranslateChange_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBox comboBox = sender as ComboBox; switch (comboBox.SelectedIndex) { case 1: tranClass.From = "zh"; tranClass.To = "en"; break; case 2: tranClass.From = "en"; tranClass.To = "zh"; break; case 3: tranClass.From = "zh"; tranClass.To = "jp"; break; case 4: tranClass.From = "jp"; tranClass.To = "zh"; break; case 5: tranClass.From = "zh"; tranClass.To = "kor"; break; case 6: tranClass.From = "kor"; tranClass.To = "zh"; break; case 7: tranClass.From = "zh"; tranClass.To = "spa"; break; case 8: tranClass.From = "spa"; tranClass.To = "zh"; break; default: tranClass.From = "auto"; tranClass.To = "auto"; break; } }
//對翻譯后的內容發音,操作類具體我也不了解,默認發音英文,中文,其他語言要自己添加。 private void btnsound_Click(object sender, RoutedEventArgs e) { ///gettts?lan=en&text=Scattering&spd=2&source=web SpeechLib.SpeechVoiceSpeakFlags svsFlags = SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync; SpeechLib.SpVoice voice = new SpeechLib.SpVoice(); voice.Speak(tbxToContent.Text, svsFlags); } }
這是返回結果使用的類
namespace BDTranslate.Models { public class TranClass { public string From { get; set; } public string To { get; set; } public List<Trans_result> Trans_result { get; set; } } public class Trans_result { public string src { get; set; } public string dst { get; set; } } }
百度翻譯api :http://developer.baidu.com/wiki/index.php?title=幫助文檔首頁/百度翻譯/翻譯API