Download presentation
Presentation is loading. Please wait.
1
多國語系 建國科技大學 資管系 饒瑞佶
2
先選定一個語系文字設定好UI 接著將Localizable屬性設定為true
3
系統將自動產生Form.resx
4
接著選擇language屬性的其他語系
5
修改版面上文字 專案會產生語系對應的resx
6
對應語系的resx內容
7
在專案屬性中設定一個語系的設定 預設值
8
專案屬性設定最後寫入App.config中
9
在每個表單的建構子中加入 這樣表單在啟動時就會自動載入對應的語系
Thread.CurrentThread.CurrentCulture = new CultureInfo(Properties.Settings.Default["LNG"].ToString()); Thread.CurrentThread.CurrentUICulture = new CultureInfo(Properties.Settings.Default["LNG"].ToString()); // 上面兩行需要在InitializeComponent()之前 InitializeComponent(); 這樣表單在啟動時就會自動載入對應的語系
10
可是如果表單已經開啟要馬上切換語系? // 修改app.config中的LNG設定
Properties.Settings.Default.LNG = "en-US"; Properties.Settings.Default.Save(); //設定語系,從App.config中讀取語系設定 SetLang("en-US ", this, typeof(Main)); // 重新載入表單 FormClosed += (o, a) => new Main().ShowDialog(); Hide(); Close(); 重新設定語系到app.config 重新載入表單 馬上就可以切換語系
11
SetLang方法 public static void SetLang(string lang, Form form, Type formType) { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang); if (form != null) System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(formType); resources.ApplyResources(form, "$this"); AppLang(form, resources); }
12
AppLang方法 private static void AppLang(Control control, System.ComponentModel.ComponentResourceManager resources) { if (control is MenuStrip) resources.ApplyResources(control, control.Name); MenuStrip ms = (MenuStrip)control; if (ms.Items.Count > 0) foreach (ToolStripMenuItem c in ms.Items) //設定語系 AppLang(c, resources); } foreach (Control c in control.Controls) resources.ApplyResources(c, c.Name);
13
// 下拉選單語系切換 private static void AppLang(ToolStripMenuItem item, System.ComponentModel.ComponentResourceManager resources) { if (item is ToolStripMenuItem) resources.ApplyResources(item, item.Name); ToolStripMenuItem tsmi = (ToolStripMenuItem)item; if (tsmi.DropDownItems.Count > 0) foreach (ToolStripMenuItem c in tsmi.DropDownItems) //if (tsmi != ToolStripSeparator) //{ } AppLang(c, resources); }
Similar presentations