1. 程式人生 > >用c#建立支援多語言的應用程式

用c#建立支援多語言的應用程式

網際網路無國界,越來越多的應用程式必須面對全球使用者了,如何設計一個支援多國語言的應用程式呢?

在.net2.0 中,m$ 為我們提供了一種簡單方便的方法, 使用資原始檔

1.新建一個 Winform 應用程式, 新建一 Form ,名為 Form1,新增兩個按鈕 btnChinese, btnEnglish
2. 設定 Form1 的 Localizable 屬性為 true, 設定該屬性後,.net 將根據不同的語言,為應用程式生成不同的資原始檔
3.設定各個控制元件的文字(系統預設語言下)
4.更改 Form1 的 Language 屬性為想要支援的另一種語言,此例中我們選用 English
5.重新設定各個控制元件的文字
 注:此時.net 將為 Form1 生成另一個資原始檔,在本例中名為 Form1.en.resx
6. 如果有其它的語言要設定,請重複第4,第5步
7.編寫程式碼
privatevoid btnChinese_Click(object sender, EventArgs e)
        
{
            
//更改當前執行緒的 CultureInfo
            
//zh-CN 為中文,更多的關於 Culture 的字串請查 MSDN
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
            
//對當前窗體應用更改後的資源
            ApplyResource();
        }


        
privatevoid btnEnglish_Click(object sender, EventArgs e)
        
{
            
//更改當前執行緒的 CultureInfo
            
//en 為英文,更多的關於 Culture 的字串請查 MSDN
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
            
//對當前窗體應用更改後的資源
            ApplyResource();
        }

        
        
/**////<summary>
        
/// 應用資源
        
/// ApplyResources 的第一個引數為要設定的控制元件
        
///                  第二個引數為在資原始檔中的ID,預設為控制元件的名稱
        
///</summary>

privatevoid ApplyResource()
        
{
            System.ComponentModel.ComponentResourceManager res 
=new ComponentResourceManager(typeof(Form1));
            
foreach (Control ctl in Controls)
            
{
                res.ApplyResources(ctl, ctl.Name);
            }

        }

 大致的程式碼就完成了,此時點選 “中文”按鈕,畫面切換為中文,點選“英文”按鈕,畫面立即切換為英文