[c#]中英文對照

中英文對照

同事手頭上東西太多,程式工程師要互相照顧,因此支援同事完成一些小東西,這個功能是寫一個報名系統自動寄信給報名的民眾,

原先也沒想太多,反正就加幾個欄位,寄信的功能已經有前輩把它寫成一個類別,沒想到居然在內容上吃了一記重拳,不知道是昨晚沒睡好,整個下午昏沉沉的關係,還是真的該好好檢討。

好險有上Allen老師的課,突然想起來課程內容中有提過相同的東西,以下為今日遇到的問題,在此做個筆記,順便加深自己的印象。

文件內容類似如下(英文為示意用 !),要依據建立活動時,設定寄送Email的條件來寄送不同的信件內容,條件為1.不寄送 2.中文 3.英文 4.中英文,

 

文先生您好
Dear Mr Man'

您已經報名參加本季淡定紅茶品嘗會,
You have signed up to participate in the season calm tea tasting,

品嘗會時間訂於中華民國101年05月10號,忠孝東路麥當勞一樓舉辦,
The tasting was set at 101 years May 10, Chung Hsiao East Road organized by the McDonald's on the first floor.

我們會提供大量的紅茶包與熱水和冰塊。
We will provide a large number of tea bags with hot water and ice.

 

不寄送、中文、英文都沒有問題,但中英文對照....,當下只想到這是一場硬戰,切割成好多段字串來組吧!
突然想起之前上課時,Allen老師有教過相關的議題,翻了一下上課的code,馬上慶幸有上課,但感到慚愧,自己寫過相關字串筆記,還上過相關的課程,沒有活用與應用真的很糟糕。

在此code筆記中運用到,格式化字串,文化特性設定,字串切割,字串切割移除陣列中空白字元。

 

            string chUserName = "文";
            string chActivityName = "淡定紅茶";
            string chActivityPlace = "忠孝東路麥當勞一樓";
            string chActivityNote = "我們會提供大量的紅茶包與熱水和冰塊";
            DateTime activityDate = DateTime.Today;

            string chEmailContent = string.Format(@"
            {0}您好
            您已經報名參加本季{1}品嘗會,
            品嘗會時間訂於{2},{3}舉辦。
            {4}。",
                    chUserName, chActivityName, activityDate.ToString("d"), chActivityPlace, chActivityNote);

            string enUserName = "jerry";
            string enActivityName = "calm tea";
            string enActivityPlace = "the McDonald's on the first floor";
            string enActivityNote = "We will provide a large number of tea bags with hot water and ice.";
            CultureInfo UsCulture = new CultureInfo("en-US");

            string enEmailContent = string.Format(@"
            Dear {0}
            You have signed up to participate in the season {1} tasting,
            The tasting was set at {2}, Chung Hsiao East Road organized by the {3}.
            {4}."
                , enUserName, enActivityName, activityDate.ToString("D", UsCulture), enActivityPlace, enActivityNote);

            char[] separator = new char[] { '\n', '\r', '\t' };

            string[] chTmp = chEmailContent.Split(separator, StringSplitOptions.RemoveEmptyEntries);

            string[] enTmp = enEmailContent.Split(separator, StringSplitOptions.RemoveEmptyEntries);

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < chTmp.Length; i++)
            {
                sb.Append(chTmp[i] + "\n"); //Email或網頁要換成<br/>
                sb.Append(enTmp[i] + "\n");
            }

            Console.Write(sb.ToString());

Output :

2012-05-10_222459

 

如文章有錯誤,煩請告知,新人發帖請多包涵

 

創用 CC 授權條款