Presentation is loading. Please wait.

Presentation is loading. Please wait.

多國語系 建國科技大學 資管系 饒瑞佶.

Similar presentations


Presentation on theme: "多國語系 建國科技大學 資管系 饒瑞佶."— Presentation transcript:

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); }


Download ppt "多國語系 建國科技大學 資管系 饒瑞佶."

Similar presentations


Ads by Google