[讀書筆記] Stephens' C# Programming with Visual Studio 2010 24-Hour Trainer 第三十四章

  • 1418
  • 0

閱讀Stephens' C#教材第三十四章筆記 介紹如何寫出當地語系化的程式

 

Chapter 34 Localizing Programs
 
程式開發後通常只用於自己所在的國家,但是隨著科技發達,要將程式傳播到世界各地非常容易,但是其中牽涉到不同國家文字、時間與單位表示的差異,C#及Visual Studio可以很容易做到程式當地語系化。
 
本章將介紹如何設計一個可以配合不同文化者使用的程式。更完整詳細的資料請參考微軟網頁
 
何謂Localization(當地語系化)呢?對電腦來說所謂的Local就是設定使用者操作的語言、國別與文化上的設定,這會決定電腦在時間、幣制的格式。
在FormatValues程式示範的就是四個不同國家的數字、幣別代碼、時間表式的差異。
 
第一步的畫面設計還是跟平常一樣將物件擺放到Form上面,接下來要設定Localizable(可當地語系化)屬性為True,然後選擇Language屬性,挑選要設定的地區語言,然後可以改變表單上面物件顯示的文字內容,配合所選擇的語言所代表的意義。當程式執行時,系統會根據所執行的語系不同,顯示對應的語系畫面與文字。
 
以LocalizedWeekdays程式為例,它設定了英語及德語環境的表單,所以會根據不同語言而呈現不同的操作畫面。
 
程式設計者要進行測試的方法,就是在Form表單呼叫InitializeComponent()方法前,將語系的資料設定進去,以LocalizedWeekdays程式為例,參考程式如下:

        public Form1()
        {
            // English.
            //Thread.CurrentThread.CurrentCulture =
            //    new CultureInfo("en-US", false);
            //Thread.CurrentThread.CurrentUICulture =
            //    new CultureInfo("en-US", false);

            // German.
            Thread.CurrentThread.CurrentCulture =
                new CultureInfo("de-DE", false);
            Thread.CurrentThread.CurrentUICulture =
                new CultureInfo("de-DE", false);

            InitializeComponent();
        }
 
程式中使用到語言文化名稱(Language Culture Name),可參考微軟網頁
CurrentCulture代表目前執行緒的文化特性,CurrentUICulture代表目前用以在執行階段查詢特定文化特性資源所用的文化特性
 
由於C#程式變數預設都是用英語格式儲存資料,例如日期,數字表示方式,一旦進行當地語系化,可能會產生不少錯誤,例如使用者輸入一組資料
"1,234.56",如果你假設[.]這個符號是表示小數點,那麼當你在德語的環境下可能會得到1的值,因為德國人會輸入"1.234,56",而在法國程式會當掉,因為法國人會輸入"1 234.56."
 
作者建議對於這些數字應該要用float.Parse方法處理過再使用比較保險。
LocalizedParsing程式就是示範float.Parse方法
 
TRY IT中示範SelectColors程式如何一步一步建立出可更改選單字體顏色的西班牙語系程式。