using System;
using System.Windows.Forms;
using System.ComponentModel;
using System.Threading;
using MuchInfo.Chart.Data.EnumTypes; /// 线程空间
namespace IndexFormula.Finance.Win
{
///
/// 语言库 class
///
public class SetLanguage
{
///
/// 当前语言类型
///
public static ChartLanguageType currentLanguage;
///
/// 当前语言名称
///
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);
}
///
/// 设置当前程序的界面语言
///
/// 语言
/// 窗体
/// 窗体类型
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);
}
}
///
/// 遍历窗体所有控件,针对其设置当前界面语言
///
///
///
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);
}
}
///
/// 遍历菜单
///
///
///
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);
}
}
}
}
}
}