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