一個翻譯小程序(帶一點點抒情)


     博客園里有幾篇關於父親節的文章?什么狗屁的父親節母親節,為什么不去想想讓父母天天像過節一樣,為什么只有到了外國人的父親節,母親節才想起有個爸媽,除此在外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 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM