| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using System;
- using System.Windows.Forms;
- using System.ComponentModel;
- using System.Threading;
- using MuchInfo.Chart.Data.EnumTypes; /// 线程空间
- namespace IndexFormula.Finance.Win
- {
- /// <summary>
- /// 语言库 class
- /// </summary>
- public class SetLanguage
- {
- /// <summary>
- /// 当前语言类型
- /// </summary>
- public static ChartLanguageType currentLanguage;
-
- /// <summary>
- /// 当前语言名称
- /// </summary>
- public static string languageName = string.Empty;
- public static void SetcurrentLanguage(ChartLanguageType language)
- {
- currentLanguage = language;
- switch (language)
- {
- case ChartLanguageType.SimplifiedChinese:
- languageName = "zh-Hans";
- break;
- case ChartLanguageType.TraditionalChinese:
- languageName = "zh-Hant";
- break;
- case ChartLanguageType.English:
- languageName = "en-us";
- break;
- default :
- languageName = "zh-Hans";
- break;
- }
- PluginManager.htAssemblyClear();
- PluginManager.Load(Environment.CurrentDirectory + "\\Plugins\\" + languageName);
- }
- /// <summary>
- /// 设置当前程序的界面语言
- /// </summary>
- /// <param name="lang">语言 </param>
- /// <param name="form">窗体</param>
- /// <param name="frmtype">窗体类型</param>
- private static void SetLang(string lang, Form form, Type frmtype)
- {
- languageName = lang;
- Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(languageName);
- if (form != null)
- {
- ComponentResourceManager resources = new ComponentResourceManager(frmtype);
- resources.ApplyResources(form, "$this");
- AppLang(form, resources);
-
- }
- }
- /// <summary>
- /// 遍历窗体所有控件,针对其设置当前界面语言
- /// </summary>
- /// <param name="contrl"></param>
- /// <param name="resoureces"></param>
- private static void AppLang(Control control, ComponentResourceManager resources)
- {
- resources.ApplyResources(control.Controls, control.Name);
- 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);
- AppLang(c, resources);
- }
- }
- /// <summary>
- /// 遍历菜单
- /// </summary>
- /// <param name="item"></param>
- /// <param name="resources"></param>
- 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);
- }
- }
- }
- }
- }
- }
|