博客園里有幾篇關於父親節的文章?什么狗屁的父親節母親節,為什么不去想想讓父母天天像過節一樣,為什么只有到了外國人的父親節,母親節才想起有個爸媽,除此在外boss比爹還親呢。
很多人把時間都用在了自己的所謂的事業上,但是又給家庭成員帶來了什么呢,也許你會常常看見,有人寫本書寫文章,說是獻給親愛的父母,老婆,孩子。但是父母,老婆,孩子知道程序是個錘子,人生沒有"烏雲"和"閃電"的時間也就短短幾年的時間,程序沒了可以重寫,書沒了,等老了經驗豐富了,無牽無掛了可以慢慢寫點此生最高水准的,可是親人沒了,就再也沒了,嚴重的自我安慰其實損失最大的還是親人,搞不定那天就為寫程序寫書過勞死了,提前掛點了,何必了,以后寫書,就改寫為了自己,別浪費親人感情了。
總之,寫這些,不是為了發牢騷,而是告訴大家一個道理,這個世界除了父母誰都可能會嫌棄你背叛你,父母才是世界上最可愛的人,用心去愛,不要想起什么狗屁的節日才去問候一下,不要為世界做點可有可無的所謂的貢獻的時候扯上父母。
好了,不閑扯了,繼續切入正題,今天女朋友讓我給寫一個翻譯器,於是就花了半個小時過些弄個簡單的,給她用,也就適合新手看看,簡單的程序,也基本沒什么注釋,基本看下就明白了。
效果如下:

直接就貼代碼了:
1 using System; 2 using System.Collections.Generic; 3 using System.Windows.Forms; 4 using System.Speech.Synthesis; 5 using System.Threading; 6 using System.Configuration; 7 using System.IO; 8 9 namespace 老婆的翻譯器 10 { 11 /// <summary> 12 /// Create By Rohelm.X 13 ///http://www.cnblogs.com/rohelm 14 /// 2012.6.17 15 /// </summary> 16 public partial class Form1 : Form 17 { 18 Translator.LanguageServiceClient client = new Translator.LanguageServiceClient(); 19 private string[] languagecodes = null; 20 private string[] languagenames = null; 21 private static readonly string appid = ConfigurationManager.AppSettings["appid"]; 22 private delegate void AsyncFunction(string text); 23 private AsyncFunction _asyncFunction = null; 24 SpeechSynthesizer _synthesizer = null; 25 26 public Form1() 27 { 28 InitializeComponent(); 29 } 30 31 private void Form1_Load(object sender, EventArgs e) 32 { 33 cbb_slan.DataSource = this.GetAllLanguageCode(); 34 cbb_slan.SelectedIndex = 3; 35 cbb_tarlan.DataSource = this.GetAllLanguageCode(); 36 cbb_tarlan.SelectedIndex = 8; 37 } 38 39 private void bt_transfram_Click(object sender, EventArgs e) 40 { 41 rtb_target.Text = client.Translate(appid, rtb_soruce.Text, ((LanguageCode)cbb_slan.SelectedItem).Code, ((LanguageCode)cbb_tarlan.SelectedItem).Code, "text/html", "general"); 42 } 43 private void btn_auto_Click(object sender, EventArgs e) 44 { 45 if (this.GetNameByCode(rtb_soruce.Text) != "No") 46 { 47 lb_disaply.Text = "親愛的老婆,當前軟件檢測到的需要翻譯的語言為" + this.GetNameByCode(rtb_soruce.Text) + "並已正常翻譯。"; 48 rtb_target.Text = client.Translate(appid, rtb_soruce.Text, client.Detect(appid, rtb_soruce.Text), ((LanguageCode)cbb_tarlan.SelectedItem).Code, "text/html", "general"); 49 } 50 else 51 { 52 lb_disaply.Text = "老婆你可能輸入有誤!"; 53 } 54 } 55 // 獲取語言代碼對應的名稱 56 public string GetNameByCode(string socrcetext) 57 { 58 string languagecode= client.Detect(appid,socrcetext); 59 for (int i = 0; i < languagecodes.Length; i++) 60 { 61 if (languagecode == languagecodes[i]) 62 { 63 return languagenames[i]; 64 } 65 } 66 return "No"; 67 } 68 //寫了一個方法將有的代碼和語言名字的集合 69 public IEnumerable<LanguageCode> GetAllLanguageCode() 70 { 71 List<LanguageCode> list = new List<LanguageCode>(); 72 languagecodes = client.GetLanguagesForTranslate(appid); 73 languagenames = client.GetLanguageNames(appid, "zh-cn", languagecodes); 74 for (int i = 0; i < languagecodes.Length; i++) 75 { 76 LanguageCode lan = new LanguageCode(); 77 lan.Name = languagenames[i]; 78 lan.Code = languagecodes[i]; 79 list.Add(lan); 80 } 81 return list; 82 } 83 84 private void pb_speakSource_Click(object sender, EventArgs e) 85 { 86 Speak(rtb_soruce.Text); 87 } 88 89 private void Speak(string textString) 90 { 91 _asyncFunction = new AsyncFunction(AsyncSpeak); 92 _asyncFunction.BeginInvoke(textString, null, null); 93 } 94 95 private void AsyncSpeak(string textString) 96 { 97 try 98 { 99 if (_synthesizer == null) 100 _synthesizer = new SpeechSynthesizer(); 101 102 _synthesizer.SpeakAsyncCancelAll(); 103 _synthesizer.Speak(textString); 104 } 105 catch (Exception ex) 106 { 107 using (TextWriter sw = new StreamWriter("Log.txt", true)) 108 { 109 sw.WriteLine(ex.Message); 110 } 111 } 112 } 113 114 private void pb_speaktarget_Click(object sender, EventArgs e) 115 { 116 Speak(rtb_target.Text); 117 } 118 } 119 120 public class LanguageCode 121 { 122 public string Name { get; set; } 123 public string Code { get; set; } 124 } 125 }
