Winform 多國語系切換

  • 1030
  • 0

i18n練習

練習winform多國語系切換

本文最後有原始碼可以參考

1.建立需要的表單的內容

2.選取Form屬性中的Language

3.選取完畢後,並設定完顯示資料,在Form1底下會自動產生For1.zh_TW.resx檔案

中文資源檔

3.1重複上一步驟新增英文,選擇美國(en-US)

英文介面

 

英文資源檔

4.建立更換語言事件

 

        private void btnChangeLang_Click(object sender, EventArgs e)
        {
            //取得語系資料 zh-TW etc..
            string UICulture = Thread.CurrentThread.CurrentUICulture.Name;
            //更換語系
            UICulture = UICulture == "zh-TW" ? "en-US" : "zh-TW";
            //設定文化特性
            ci = new CultureInfo(UICulture);
            //變更文化特性
            Thread.CurrentThread.CurrentUICulture = ci;
            //取得資源檔
            this._ResourceManager = new ComponentResourceManager(this.GetType());
            //套用語系
            this._ResourceManager.ApplyResources(this, "$this");
            SetLang(this);
        }
        //更換語系
        private void SetLang(Control control)
        {
            foreach (Control ctrl in control.Controls)
            {
                this._ResourceManager.ApplyResources(ctrl, ctrl.Name);
                if (ctrl.HasChildren)
                {
                    SetLang(ctrl);
                }
            }
        }

5.成果展示

成果展示

 

 

原始碼:https://github.com/Wonsle/Winformi18n