diff --git a/SunnyUI.Demo/Controls/FAvatar.Designer.cs b/SunnyUI.Demo/Controls/FAvatar.Designer.cs index 286a9d3c..355627b3 100644 --- a/SunnyUI.Demo/Controls/FAvatar.Designer.cs +++ b/SunnyUI.Demo/Controls/FAvatar.Designer.cs @@ -196,7 +196,7 @@ namespace Sunny.UI.Demo this.uiAvatar2.AvatarSize = 55; this.uiAvatar2.Font = new System.Drawing.Font("宋体", 12F); this.uiAvatar2.Icon = Sunny.UI.UIAvatar.UIIcon.Image; - this.uiAvatar2.Image = global::Sunny.UI.Demo.Properties.Resources.SunnyUISmall; + this.uiAvatar2.Image = global::Sunny.UI.Demo.Properties.Resources.SunnyUI72; this.uiAvatar2.Location = new System.Drawing.Point(30, 85); this.uiAvatar2.MinimumSize = new System.Drawing.Size(1, 1); this.uiAvatar2.Name = "uiAvatar2"; diff --git a/SunnyUI.Demo/FMain.Designer.cs b/SunnyUI.Demo/FMain.Designer.cs index 5c77ae81..c287cf05 100644 --- a/SunnyUI.Demo/FMain.Designer.cs +++ b/SunnyUI.Demo/FMain.Designer.cs @@ -31,8 +31,12 @@ this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FMain)); this.uiContextMenuStrip1 = new Sunny.UI.UIContextMenuStrip(); - this.关于ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.关于ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.NHome = new System.Windows.Forms.ToolStripMenuItem(); + this.NAbout = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.NZhCN = new System.Windows.Forms.ToolStripMenuItem(); + this.NZhTW = new System.Windows.Forms.ToolStripMenuItem(); + this.NEnUS = new System.Windows.Forms.ToolStripMenuItem(); this.StyleManager = new Sunny.UI.UIStyleManager(this.components); this.uiNavBar1 = new Sunny.UI.UINavBar(); this.uiAvatar1 = new Sunny.UI.UIAvatar(); @@ -52,32 +56,63 @@ // uiContextMenuStrip1 // this.uiContextMenuStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(249)))), ((int)(((byte)(255))))); - this.uiContextMenuStrip1.Font = new System.Drawing.Font("宋体", 12F); + this.uiContextMenuStrip1.Font = new System.Drawing.Font("Tahoma", 12F); this.uiContextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.关于ToolStripMenuItem, - this.关于ToolStripMenuItem1}); + this.NHome, + this.NAbout, + this.toolStripMenuItem1, + this.NZhCN, + this.NZhTW, + this.NEnUS}); this.uiContextMenuStrip1.Name = "uiContextMenuStrip1"; - this.uiContextMenuStrip1.Size = new System.Drawing.Size(107, 48); + this.uiContextMenuStrip1.Size = new System.Drawing.Size(143, 130); // - // 关于ToolStripMenuItem + // NHome // - this.关于ToolStripMenuItem.Name = "关于ToolStripMenuItem"; - this.关于ToolStripMenuItem.Size = new System.Drawing.Size(106, 22); - this.关于ToolStripMenuItem.Text = "主页"; - this.关于ToolStripMenuItem.Click += new System.EventHandler(this.关于ToolStripMenuItem_Click); + this.NHome.Name = "NHome"; + this.NHome.Size = new System.Drawing.Size(142, 24); + this.NHome.Text = "主页"; + this.NHome.Click += new System.EventHandler(this.关于ToolStripMenuItem_Click); // - // 关于ToolStripMenuItem1 + // NAbout // - this.关于ToolStripMenuItem1.Name = "关于ToolStripMenuItem1"; - this.关于ToolStripMenuItem1.Size = new System.Drawing.Size(106, 22); - this.关于ToolStripMenuItem1.Text = "关于"; - this.关于ToolStripMenuItem1.Click += new System.EventHandler(this.关于ToolStripMenuItem1_Click); + this.NAbout.Name = "NAbout"; + this.NAbout.Size = new System.Drawing.Size(142, 24); + this.NAbout.Text = "关于"; + this.NAbout.Click += new System.EventHandler(this.关于ToolStripMenuItem1_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(139, 6); + // + // NZhCN + // + this.NZhCN.Name = "NZhCN"; + this.NZhCN.Size = new System.Drawing.Size(142, 24); + this.NZhCN.Text = "简体中文"; + this.NZhCN.Click += new System.EventHandler(this.NZhCN_Click); + // + // NZhTW + // + this.NZhTW.Name = "NZhTW"; + this.NZhTW.Size = new System.Drawing.Size(142, 24); + this.NZhTW.Text = "繁体中文"; + this.NZhTW.Click += new System.EventHandler(this.NZhTW_Click); + // + // NEnUS + // + this.NEnUS.Name = "NEnUS"; + this.NEnUS.Size = new System.Drawing.Size(142, 24); + this.NEnUS.Text = "English"; + this.NEnUS.Click += new System.EventHandler(this.NEnUS_Click); // // StyleManager // this.StyleManager.DPIScale = true; this.StyleManager.GlobalFont = true; this.StyleManager.GlobalFontName = "Tahoma"; + this.StyleManager.MultiLanguageSupport = true; // // uiNavBar1 // @@ -160,6 +195,7 @@ this.uiPanel3.Location = new System.Drawing.Point(842, 0); this.uiPanel3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiPanel3.MinimumSize = new System.Drawing.Size(1, 1); + this.uiPanel3.MultiLanguageSupport = false; this.uiPanel3.Name = "uiPanel3"; this.uiPanel3.RadiusSides = Sunny.UI.UICornerRadiusSides.None; this.uiPanel3.RectSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top))); @@ -175,6 +211,7 @@ this.uiPanel2.Location = new System.Drawing.Point(0, 0); this.uiPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiPanel2.MinimumSize = new System.Drawing.Size(1, 1); + this.uiPanel2.MultiLanguageSupport = false; this.uiPanel2.Name = "uiPanel2"; this.uiPanel2.RadiusSides = Sunny.UI.UICornerRadiusSides.None; this.uiPanel2.RectSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)((System.Windows.Forms.ToolStripStatusLabelBorderSides.Top | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right))); @@ -190,11 +227,14 @@ this.uiNavMenu1.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll; this.uiNavMenu1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiNavMenu1.FullRowSelect = true; + this.uiNavMenu1.HotTracking = true; this.uiNavMenu1.ItemHeight = 35; this.uiNavMenu1.Location = new System.Drawing.Point(2, 162); this.uiNavMenu1.Name = "uiNavMenu1"; this.uiNavMenu1.ShowLines = false; this.uiNavMenu1.ShowOneNode = true; + this.uiNavMenu1.ShowPlusMinus = false; + this.uiNavMenu1.ShowRootLines = false; this.uiNavMenu1.Size = new System.Drawing.Size(286, 650); this.uiNavMenu1.TabIndex = 4; this.uiNavMenu1.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); @@ -224,6 +264,7 @@ // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(1132, 846); + this.CloseAskString = "您确认要退出程序吗?"; this.Controls.Add(this.uiTabControl1); this.Controls.Add(this.uiNavMenu1); this.Controls.Add(this.uiPanel1); @@ -231,11 +272,14 @@ this.ExtendBox = true; this.ExtendMenu = this.uiContextMenuStrip1; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.IconImage = global::Sunny.UI.Demo.Properties.Resources.Sunny24; this.MainTabControl = this.uiTabControl1; this.Name = "FMain"; this.Padding = new System.Windows.Forms.Padding(2, 36, 2, 2); + this.Resizable = true; this.ShowDragStretch = true; this.Text = "Form1"; + this.ZoomScaleRect = new System.Drawing.Rectangle(15, 15, 1132, 846); this.HotKeyEventHandler += new Sunny.UI.HotKeyEventHandler(this.Form1_HotKeyEventHandler); this.PageSelected += new Sunny.UI.OnUIPageChanged(this.Form1_PageSelected); this.ReceiveParams += new Sunny.UI.OnReceiveParams(this.Form1_ReceiveParams); @@ -249,8 +293,8 @@ #endregion private UIContextMenuStrip uiContextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem 关于ToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem 关于ToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem NHome; + private System.Windows.Forms.ToolStripMenuItem NAbout; private UIStyleManager StyleManager; private UINavBar uiNavBar1; private UIPanel uiPanel1; @@ -262,5 +306,9 @@ private UIPanel uiPanel3; private System.Windows.Forms.Timer timer1; private UIPanel uiPanel4; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem NZhCN; + private System.Windows.Forms.ToolStripMenuItem NZhTW; + private System.Windows.Forms.ToolStripMenuItem NEnUS; } } \ No newline at end of file diff --git a/SunnyUI.Demo/FMain.cs b/SunnyUI.Demo/FMain.cs index 2cc91065..16283790 100644 --- a/SunnyUI.Demo/FMain.cs +++ b/SunnyUI.Demo/FMain.cs @@ -195,5 +195,56 @@ namespace Sunny.UI.Demo { uiPanel3.Text = DateTime.Now.DateTimeString(); } + + private void NZhCN_Click(object sender, EventArgs e) + { + UIStyles.CultureInfo = CultureInfos.zh_CN; + } + + private void NZhTW_Click(object sender, EventArgs e) + { + UIStyles.CultureInfo = CultureInfos.zh_TW; + } + + private void NEnUS_Click(object sender, EventArgs e) + { + UIStyles.CultureInfo = CultureInfos.en_US; + } + + /// + /// 重载多语翻译 + /// + public override void Translate() + { + //必须保留 + base.Translate(); + //读取翻译代码中的多语资源 + CodeTranslator.Load(this); + + //设置多语资源 + this.CloseAskString = CodeTranslator.Current.CloseAskString; + this.uiNavMenu1.Nodes[0].Text = this.uiNavBar1.Nodes[0].Text = CodeTranslator.Current.Controls; + this.uiNavMenu1.Nodes[1].Text = this.uiNavBar1.Nodes[1].Text = CodeTranslator.Current.Forms; + this.uiNavMenu1.Nodes[2].Text = this.uiNavBar1.Nodes[2].Text = CodeTranslator.Current.Charts; + this.uiNavMenu1.Nodes[3].Text = this.uiNavBar1.Nodes[3].Text = CodeTranslator.Current.Industrial; + this.uiNavBar1.Nodes[4].Text = CodeTranslator.Current.Theme; + this.uiNavMenu1.Nodes[4].Text = CodeTranslator.Current.Colorful; + this.uiNavMenu1.Nodes[5].Text = CodeTranslator.Current.Symbols; + + this.uiNavBar1.Invalidate(); + this.uiNavMenu1.Invalidate(); + } + + private class CodeTranslator : IniCodeTranslator + { + public string CloseAskString { get; set; } = "您确认要退出程序吗?"; + public string Controls { get; set; } = "控件"; + public string Forms { get; set; } = "窗体"; + public string Charts { get; set; } = "图表"; + public string Industrial { get; set; } = "工控"; + public string Theme { get; set; } = "主题"; + public string Symbols { get; set; } = "字体图标"; + public string Colorful { get; set; } = "多彩主题"; + } } -} +} \ No newline at end of file diff --git a/SunnyUI.Demo/Forms/FDialogs.Designer.cs b/SunnyUI.Demo/Forms/FDialogs.Designer.cs index 39d64bfe..9279125d 100644 --- a/SunnyUI.Demo/Forms/FDialogs.Designer.cs +++ b/SunnyUI.Demo/Forms/FDialogs.Designer.cs @@ -64,7 +64,6 @@ this.uiSymbolButton13 = new Sunny.UI.UISymbolButton(); this.uiLine11 = new Sunny.UI.UILine(); this.uiSymbolButton12 = new Sunny.UI.UISymbolButton(); - this.uiPagination1 = new Sunny.UI.UIPagination(); this.SuspendLayout(); // // btnError @@ -89,7 +88,7 @@ this.btnError.StyleCustomMode = true; this.btnError.Symbol = 61532; this.btnError.TabIndex = 29; - this.btnError.Text = "Error"; + this.btnError.Text = "错误"; this.btnError.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnError.Click += new System.EventHandler(this.btnError_Click); // @@ -115,7 +114,7 @@ this.btnWarn.StyleCustomMode = true; this.btnWarn.Symbol = 61553; this.btnWarn.TabIndex = 28; - this.btnWarn.Text = "Warn"; + this.btnWarn.Text = "警告"; this.btnWarn.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnWarn.Click += new System.EventHandler(this.btnWarn_Click); // @@ -141,7 +140,7 @@ this.btnSuccess.StyleCustomMode = true; this.btnSuccess.Symbol = 61528; this.btnSuccess.TabIndex = 27; - this.btnSuccess.Text = "Success"; + this.btnSuccess.Text = "成功"; this.btnSuccess.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnSuccess.Click += new System.EventHandler(this.btnSuccess_Click); // @@ -157,7 +156,7 @@ this.btnAsk.StyleCustomMode = true; this.btnAsk.Symbol = 61529; this.btnAsk.TabIndex = 26; - this.btnAsk.Text = "Query"; + this.btnAsk.Text = "确认"; this.btnAsk.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnAsk.Click += new System.EventHandler(this.btnAsk_Click); // @@ -188,7 +187,7 @@ this.btnInfo.StyleCustomMode = true; this.btnInfo.Symbol = 61530; this.btnInfo.TabIndex = 37; - this.btnInfo.Text = "Info"; + this.btnInfo.Text = "提示"; this.btnInfo.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnInfo.Click += new System.EventHandler(this.btnInfo_Click); // @@ -345,7 +344,7 @@ this.uiSymbolButton2.StyleCustomMode = true; this.uiSymbolButton2.Symbol = 61530; this.uiSymbolButton2.TabIndex = 57; - this.uiSymbolButton2.Text = "Info"; + this.uiSymbolButton2.Text = "提示"; this.uiSymbolButton2.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton2.Click += new System.EventHandler(this.uiSymbolButton2_Click); // @@ -371,7 +370,7 @@ this.uiSymbolButton4.StyleCustomMode = true; this.uiSymbolButton4.Symbol = 61532; this.uiSymbolButton4.TabIndex = 55; - this.uiSymbolButton4.Text = "Error"; + this.uiSymbolButton4.Text = "错误"; this.uiSymbolButton4.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton4.Click += new System.EventHandler(this.uiSymbolButton4_Click); // @@ -397,7 +396,7 @@ this.uiSymbolButton5.StyleCustomMode = true; this.uiSymbolButton5.Symbol = 61553; this.uiSymbolButton5.TabIndex = 54; - this.uiSymbolButton5.Text = "Warn"; + this.uiSymbolButton5.Text = "警告"; this.uiSymbolButton5.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton5.Click += new System.EventHandler(this.uiSymbolButton5_Click); // @@ -423,7 +422,7 @@ this.uiSymbolButton6.StyleCustomMode = true; this.uiSymbolButton6.Symbol = 61528; this.uiSymbolButton6.TabIndex = 53; - this.uiSymbolButton6.Text = "Success"; + this.uiSymbolButton6.Text = "成功"; this.uiSymbolButton6.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton6.Click += new System.EventHandler(this.uiSymbolButton6_Click); // @@ -506,7 +505,7 @@ this.uiSymbolButton7.StyleCustomMode = true; this.uiSymbolButton7.Symbol = 61532; this.uiSymbolButton7.TabIndex = 64; - this.uiSymbolButton7.Text = "Error"; + this.uiSymbolButton7.Text = "错误"; this.uiSymbolButton7.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton7.Click += new System.EventHandler(this.uiSymbolButton7_Click); // @@ -532,7 +531,7 @@ this.uiSymbolButton8.StyleCustomMode = true; this.uiSymbolButton8.Symbol = 61553; this.uiSymbolButton8.TabIndex = 63; - this.uiSymbolButton8.Text = "Warn"; + this.uiSymbolButton8.Text = "警告"; this.uiSymbolButton8.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton8.Click += new System.EventHandler(this.uiSymbolButton8_Click); // @@ -558,7 +557,7 @@ this.uiSymbolButton9.StyleCustomMode = true; this.uiSymbolButton9.Symbol = 61528; this.uiSymbolButton9.TabIndex = 62; - this.uiSymbolButton9.Text = "Success"; + this.uiSymbolButton9.Text = "成功"; this.uiSymbolButton9.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton9.Click += new System.EventHandler(this.uiSymbolButton9_Click); // @@ -586,7 +585,7 @@ this.uiSymbolButton3.Size = new System.Drawing.Size(100, 35); this.uiSymbolButton3.Symbol = 62144; this.uiSymbolButton3.TabIndex = 68; - this.uiSymbolButton3.Text = "Login"; + this.uiSymbolButton3.Text = "登录"; this.uiSymbolButton3.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton3.Click += new System.EventHandler(this.uiSymbolButton3_Click); // @@ -601,7 +600,7 @@ this.uiSymbolButton10.Size = new System.Drawing.Size(100, 35); this.uiSymbolButton10.Symbol = 61447; this.uiSymbolButton10.TabIndex = 67; - this.uiSymbolButton10.Text = "Login"; + this.uiSymbolButton10.Text = "登录"; this.uiSymbolButton10.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton10.Click += new System.EventHandler(this.uiSymbolButton10_Click); // @@ -689,32 +688,11 @@ this.uiSymbolButton12.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiSymbolButton12.Click += new System.EventHandler(this.uiSymbolButton12_Click); // - // uiPagination1 - // - this.uiPagination1.ButtonFillSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(128)))), ((int)(((byte)(204))))); - this.uiPagination1.ButtonStyleInherited = false; - this.uiPagination1.CausesValidation = false; - this.uiPagination1.Font = new System.Drawing.Font("宋体", 12F); - this.uiPagination1.Location = new System.Drawing.Point(258, 482); - this.uiPagination1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.uiPagination1.MinimumSize = new System.Drawing.Size(1, 1); - this.uiPagination1.Name = "uiPagination1"; - this.uiPagination1.PagerCount = 11; - this.uiPagination1.RadiusSides = Sunny.UI.UICornerRadiusSides.None; - this.uiPagination1.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None; - this.uiPagination1.ShowText = false; - this.uiPagination1.Size = new System.Drawing.Size(442, 35); - this.uiPagination1.TabIndex = 79; - this.uiPagination1.Text = "uiDataGridPage1"; - this.uiPagination1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; - this.uiPagination1.TotalCount = 40; - // // FDialogs // this.AllowShowTitle = true; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(800, 590); - this.Controls.Add(this.uiPagination1); this.Controls.Add(this.uiLine11); this.Controls.Add(this.uiSymbolButton12); this.Controls.Add(this.uiLine1); @@ -798,6 +776,5 @@ private UISymbolButton uiSymbolButton13; private UILine uiLine11; private UISymbolButton uiSymbolButton12; - private UIPagination uiPagination1; } } \ No newline at end of file diff --git a/SunnyUI.Demo/Forms/FDialogs.cs b/SunnyUI.Demo/Forms/FDialogs.cs index e98b4cbc..8c29948b 100644 --- a/SunnyUI.Demo/Forms/FDialogs.cs +++ b/SunnyUI.Demo/Forms/FDialogs.cs @@ -19,56 +19,56 @@ namespace Sunny.UI.Demo private void btnInfo_Click(object sender, EventArgs e) { - this.ShowInfoDialog2("默认信息提示框"); - this.ShowInfoDialog("默认信息提示框"); + this.ShowInfoDialog2(CodeTranslator.Current.Default); + this.ShowInfoDialog(CodeTranslator.Current.Default); } private void btnAsk_Click(object sender, EventArgs e) { - if (this.ShowAskDialog2("确认信息提示框", true)) + if (this.ShowAskDialog2(CodeTranslator.Current.Confirm, true)) { - this.ShowSuccessTip("您点击了确定按钮"); + this.ShowSuccessTip(CodeTranslator.Current.PressedOK); } else { - this.ShowErrorTip("您点击了取消按钮"); + this.ShowErrorTip(CodeTranslator.Current.PressedCancel); } - if (this.ShowAskDialog("确认信息提示框")) + if (this.ShowAskDialog(CodeTranslator.Current.Confirm)) { - this.ShowSuccessTip("您点击了确定按钮"); + this.ShowSuccessTip(CodeTranslator.Current.PressedOK); } else { - this.ShowErrorTip("您点击了取消按钮"); + this.ShowErrorTip(CodeTranslator.Current.PressedCancel); } } private void btnSuccess_Click(object sender, EventArgs e) { - this.ShowSuccessDialog2("正确信息提示框", false, 3000); - this.ShowSuccessDialog("正确信息提示框", false, 3000); + this.ShowSuccessDialog2(CodeTranslator.Current.Success, false, 3000); + this.ShowSuccessDialog(CodeTranslator.Current.Success, false, 3000); } private void btnWarn_Click(object sender, EventArgs e) { - this.ShowWarningDialog2("警告信息提示框"); - this.ShowWarningDialog("警告信息提示框"); + this.ShowWarningDialog2(CodeTranslator.Current.Warning); + this.ShowWarningDialog(CodeTranslator.Current.Warning); } private void btnError_Click(object sender, EventArgs e) { - this.ShowErrorDialog2("错误信息提示框"); - this.ShowErrorDialog("错误信息提示框"); + this.ShowErrorDialog2(CodeTranslator.Current.Error); + this.ShowErrorDialog(CodeTranslator.Current.Error); } private void btnStatus2_Click(object sender, EventArgs e) { - this.ShowStatusForm(100, "数据加载中......", 0); + this.ShowStatusForm(100, CodeTranslator.Current.Loading + "......", 0); for (int i = 0; i < 88; i++) { SystemEx.Delay(50); - this.SetStatusFormDescription("数据加载中(" + i + "%)......"); + this.SetStatusFormDescription(CodeTranslator.Current.Loading + "(" + i + "%)......"); this.SetStatusFormStepIt(); } @@ -77,8 +77,8 @@ namespace Sunny.UI.Demo private void btnStringInput_Click(object sender, EventArgs e) { - string value = "请输入字符串"; - if (this.ShowInputStringDialog(ref value, true, "请输入字符串:", true)) + string value = CodeTranslator.Current.InputString; + if (this.ShowInputStringDialog(ref value, true, CodeTranslator.Current.InputString, true)) { this.ShowInfoDialog(value); } @@ -128,7 +128,7 @@ namespace Sunny.UI.Demo private void InfoNotifierClick(object sender, EventArgs e) { - this.ShowInfoTip("嗨,你点击了右下角的弹窗消息"); + this.ShowInfoTip(CodeTranslator.Current.PressedNotifier); } private void uiSymbolButton6_Click(object sender, EventArgs e) @@ -148,17 +148,17 @@ namespace Sunny.UI.Demo private void uiSymbolButton9_Click(object sender, EventArgs e) { - this.ShowSuccessTip("轻便消息提示框 - 成功"); + this.ShowSuccessTip(CodeTranslator.Current.Success); } private void uiSymbolButton8_Click(object sender, EventArgs e) { - this.ShowWarningTip("轻便消息提示框 - 警告"); + this.ShowWarningTip(CodeTranslator.Current.Warning); } private void uiSymbolButton7_Click(object sender, EventArgs e) { - this.ShowErrorTip("轻便消息提示框 - 错误"); + this.ShowErrorTip(CodeTranslator.Current.Error); } private void uiSymbolButton10_Click(object sender, EventArgs e) @@ -167,7 +167,7 @@ namespace Sunny.UI.Demo frm.ShowDialog(); if (frm.IsLogin) { - UIMessageTip.ShowOk("登录成功"); + UIMessageTip.ShowOk(CodeTranslator.Current.LoginSuccess); } frm.Dispose(); @@ -188,7 +188,7 @@ namespace Sunny.UI.Demo frm.ShowDialog(); if (frm.IsLogin) { - UIMessageTip.ShowOk("登录成功"); + UIMessageTip.ShowOk(CodeTranslator.Current.LoginSuccess); } frm.Dispose(); @@ -201,24 +201,24 @@ namespace Sunny.UI.Demo private void uiSymbolButton11_Click(object sender, EventArgs e) { - this.ShowWaitForm("准备开始..."); + this.ShowWaitForm(CodeTranslator.Current.Prepare); Thread.Sleep(1000); - this.SetWaitFormDescription(UILocalize.SystemProcessing + "20%"); + this.SetWaitFormDescription(UIStyles.CurrentResources.SystemProcessing + "20%"); Thread.Sleep(1000); - this.SetWaitFormDescription(UILocalize.SystemProcessing + "40%"); + this.SetWaitFormDescription(UIStyles.CurrentResources.SystemProcessing + "40%"); Thread.Sleep(1000); - this.SetWaitFormDescription(UILocalize.SystemProcessing + "60%"); + this.SetWaitFormDescription(UIStyles.CurrentResources.SystemProcessing + "60%"); Thread.Sleep(1000); - this.SetWaitFormDescription(UILocalize.SystemProcessing + "80%"); + this.SetWaitFormDescription(UIStyles.CurrentResources.SystemProcessing + "80%"); Thread.Sleep(1000); - this.SetWaitFormDescription(UILocalize.SystemProcessing + "100%"); + this.SetWaitFormDescription(UIStyles.CurrentResources.SystemProcessing + "100%"); this.HideWaitForm(); } private void uiSymbolButton13_Click(object sender, EventArgs e) { string dir = ""; - if (DirEx.SelectDirEx("扩展打开文件夹", ref dir)) + if (DirEx.SelectDirEx(CodeTranslator.Current.OpenDir, ref dir)) { UIMessageTip.ShowOk(dir); } @@ -233,29 +233,40 @@ namespace Sunny.UI.Demo private void btnCH_Click(object sender, EventArgs e) { - UILocalizeHelper.SetCH(); - LoginText = "登录"; - UIStyles.Translate(); + UIStyles.CultureInfo = CultureInfos.zh_CN; } private void btnEN_Click(object sender, EventArgs e) { - UILocalizeHelper.SetEN(); - LoginText = "Login"; - UIStyles.Translate(); + UIStyles.CultureInfo = CultureInfos.en_US; } - private string LoginText = "登录"; - - public void Translate() + /// + /// 重载多语翻译 + /// + public override void Translate() { - uiSymbolButton6.Text = btnSuccess.Text = uiSymbolButton9.Text = UILocalize.SuccessTitle; - uiSymbolButton5.Text = btnWarn.Text = uiSymbolButton8.Text = UILocalize.WarningTitle; - uiSymbolButton4.Text = btnError.Text = uiSymbolButton7.Text = UILocalize.ErrorTitle; - uiSymbolButton2.Text = btnInfo.Text = UILocalize.InfoTitle; - btnAsk.Text = UILocalize.AskTitle; + //必须保留 + base.Translate(); + //读取翻译代码中的多语资源 + CodeTranslator.Load(this); + } - uiSymbolButton3.Text = uiSymbolButton10.Text = LoginText; + private class CodeTranslator : IniCodeTranslator + { + public string Default { get; set; } = "默认信息提示框"; + public string Confirm { get; set; } = "确认信息提示框"; + public string PressedOK { get; set; } = "您点击了确定按钮"; + public string PressedCancel { get; set; } = "您点击了取消按钮"; + public string Success { get; set; } = "正确信息提示框"; + public string Warning { get; set; } = "警告信息提示框"; + public string Error { get; set; } = "错误信息提示框"; + public string Loading { get; set; } = "数据加载中"; + public string InputString { get; set; } = "请输入字符串"; + public string PressedNotifier { get; set; } = "嗨,你点击了右下角的弹窗消息"; + public string LoginSuccess { get; set; } = "登录成功"; + public string Prepare { get; set; } = "准备开始"; + public string OpenDir { get; set; } = "打开文件夹"; } } } \ No newline at end of file diff --git a/SunnyUI.Demo/Program.cs b/SunnyUI.Demo/Program.cs index 8fadc715..b7f14270 100644 --- a/SunnyUI.Demo/Program.cs +++ b/SunnyUI.Demo/Program.cs @@ -13,6 +13,13 @@ namespace Sunny.UI.Demo { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); + + //增加一个繁体中文的内置资源配置 + UIStyles.BuiltInResources.TryAdd(CultureInfos.zh_TW.LCID, new zh_TW_Resources()); + //从项目方案生成多语言配置文件,生成文件在可执行文件夹的Language目录下 + //生成后界面没有修改的情况下,可注释掉下一行,只运行一次即可 + //TranslateHelper.LoadCsproj(@"D:\Source\SunnyUI\SunnyUI.Demo\SunnyUI.Demo.csproj"); + Application.Run(new FMain()); } } diff --git a/SunnyUI.Demo/Properties/Resources.Designer.cs b/SunnyUI.Demo/Properties/Resources.Designer.cs index e7d6390a..21069752 100644 --- a/SunnyUI.Demo/Properties/Resources.Designer.cs +++ b/SunnyUI.Demo/Properties/Resources.Designer.cs @@ -600,6 +600,16 @@ namespace Sunny.UI.Demo.Properties { } } + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Sunny24 { + get { + object obj = ResourceManager.GetObject("Sunny24", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// @@ -623,9 +633,9 @@ namespace Sunny.UI.Demo.Properties { /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// - internal static System.Drawing.Bitmap SunnyUISmall { + internal static System.Drawing.Bitmap SunnyUI72 { get { - object obj = ResourceManager.GetObject("SunnyUISmall", resourceCulture); + object obj = ResourceManager.GetObject("SunnyUI72", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } diff --git a/SunnyUI.Demo/Properties/Resources.resx b/SunnyUI.Demo/Properties/Resources.resx index 28922d90..048eb00e 100644 --- a/SunnyUI.Demo/Properties/Resources.resx +++ b/SunnyUI.Demo/Properties/Resources.resx @@ -253,14 +253,17 @@ ..\Resources\sevilla.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Sunny24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\SunnyLogin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\SunnyUI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\SunnyUISmall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\SunnyUI72.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Tom.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/SunnyUI.Demo/Resources/Sunny24.png b/SunnyUI.Demo/Resources/Sunny24.png new file mode 100644 index 00000000..a408eaf4 Binary files /dev/null and b/SunnyUI.Demo/Resources/Sunny24.png differ diff --git a/SunnyUI.Demo/Resources/SunnyUI72.png b/SunnyUI.Demo/Resources/SunnyUI72.png new file mode 100644 index 00000000..af1cdef5 Binary files /dev/null and b/SunnyUI.Demo/Resources/SunnyUI72.png differ diff --git a/SunnyUI.Demo/SunnyUI.Demo.csproj b/SunnyUI.Demo/SunnyUI.Demo.csproj index d0e0d181..3773d213 100644 --- a/SunnyUI.Demo/SunnyUI.Demo.csproj +++ b/SunnyUI.Demo/SunnyUI.Demo.csproj @@ -41,20 +41,20 @@ app.manifest - - ..\packages\SunnyUI.3.7.0\lib\net472\SunnyUI.dll + + ..\packages\SunnyUI.3.7.2\lib\net472\SunnyUI.dll ..\packages\SunnyUI.COM.6.3.3\lib\net472\SunnyUI.COM.dll - - ..\packages\SunnyUI.Common.3.7.0\lib\net472\SunnyUI.Common.dll + + ..\packages\SunnyUI.Common.3.7.2\lib\net472\SunnyUI.Common.dll ..\packages\SunnyUI.FrameDecoder.7.1.6\lib\net472\SunnyUI.FrameDecoder.dll - - ..\packages\SunnyUI.Serialization.6.3.5\lib\net472\SunnyUI.Serialization.dll + + ..\packages\SunnyUI.Serialization.6.3.6\lib\net472\SunnyUI.Serialization.dll @@ -416,6 +416,7 @@ FCommon.cs + FDoughnutChart.cs @@ -772,6 +773,8 @@ + + diff --git a/SunnyUI.Demo/Units/UZhTW.cs b/SunnyUI.Demo/Units/UZhTW.cs new file mode 100644 index 00000000..d6860803 --- /dev/null +++ b/SunnyUI.Demo/Units/UZhTW.cs @@ -0,0 +1,55 @@ +using System.Globalization; + +namespace Sunny.UI.Demo +{ + /// + /// 多語言字符串定義 + /// + public class zh_TW_Resources : UIBuiltInResources + { + public override CultureInfo CultureInfo { get; } = CultureInfos.zh_TW; + public override string InfoTitle { get; set; } = "提示"; + public override string SuccessTitle { get; set; } = "正確"; + public override string WarningTitle { get; set; } = "警告"; + public override string ErrorTitle { get; set; } = "錯誤"; + public override string AskTitle { get; set; } = "提示"; + public override string InputTitle { get; set; } = "輸入"; + public override string SelectTitle { get; set; } = "選擇"; + public override string CloseAll { get; set; } = "全部關閉"; + public override string OK { get; set; } = "確定"; + public override string Cancel { get; set; } = "取消"; + public override string GridNoData { get; set; } = "[ 無資料 ]"; + public override string GridDataLoading { get; set; } = "資料加載中,請稍候..."; + public override string GridDataSourceException { get; set; } = "資料源必須為DataTable或者List"; + public override string SystemProcessing { get; set; } = "系統正在處理中,請稍候..."; + public override string Monday { get; set; } = "一"; + public override string Tuesday { get; set; } = "二"; + public override string Wednesday { get; set; } = "三"; + public override string Thursday { get; set; } = "四"; + public override string Friday { get; set; } = "五"; + public override string Saturday { get; set; } = "六"; + public override string Sunday { get; set; } = "日"; + public override string Prev { get; set; } = "上一頁"; + public override string Next { get; set; } = "下一頁"; + public override string SelectPageLeft { get; set; } = "第"; + public override string SelectPageRight { get; set; } = "頁"; + public override string January { get; set; } = "一月"; + public override string February { get; set; } = "二月"; + public override string March { get; set; } = "三月"; + public override string April { get; set; } = "四月"; + public override string May { get; set; } = "五月"; + public override string June { get; set; } = "六月"; + public override string July { get; set; } = "七月"; + public override string August { get; set; } = "八月"; + public override string September { get; set; } = "九月"; + public override string October { get; set; } = "十月"; + public override string November { get; set; } = "十一月"; + public override string December { get; set; } = "十二月"; + public override string Today { get; set; } = "今天"; + public override string Search { get; set; } = "搜尋"; + public override string Clear { get; set; } = "清除"; + public override string Open { get; set; } = "打開"; + public override string Save { get; set; } = "保存"; + public override string All { get; set; } = "全部"; + } +} diff --git a/SunnyUI.Demo/packages.config b/SunnyUI.Demo/packages.config index 56c2b709..a21784f2 100644 --- a/SunnyUI.Demo/packages.config +++ b/SunnyUI.Demo/packages.config @@ -1,10 +1,10 @@  - + - + - + diff --git a/SunnyUI/Style/UCultureInfo.cs b/SunnyUI/Style/UCultureInfo.cs index e8b6b3ca..c91d3c4a 100644 --- a/SunnyUI/Style/UCultureInfo.cs +++ b/SunnyUI/Style/UCultureInfo.cs @@ -6,6 +6,7 @@ namespace Sunny.UI { //语言文件对应ID网址 //https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms912047(v=winembedded.10)?redirectedfrom=MSDN + //https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c //ID语言 ID语言 //1025 阿拉伯语 //1041 日语 @@ -32,7 +33,6 @@ namespace Sunny.UI //1038 匈牙利语 //2070 葡萄牙语 //1040 意大利语 - //3076 汉语 - 香港 /// /// 2052 简体中文 diff --git a/SunnyUI/Style/UTranslate.cs b/SunnyUI/Style/UTranslate.cs index f5c6ae1d..0de9d019 100644 --- a/SunnyUI/Style/UTranslate.cs +++ b/SunnyUI/Style/UTranslate.cs @@ -91,7 +91,6 @@ namespace Sunny.UI private static Dictionary NativeControlsProperty = new Dictionary() { ["Button"] = "Text", - ["ToolStripMenuItem"] = "Text", ["CheckBox"] = "Text", ["RadioButton"] = "Text", ["GroupBox"] = "Text", @@ -217,12 +216,9 @@ namespace Sunny.UI int count = ini.ReadInt("Controls", "Count", 0); if (count == 0) return; - string key = UIStyles.CultureInfo.LCID.ToString() + ".DisplayName"; - if (ini.Read(section, key, "") != UIStyles.CultureInfo.DisplayName) - ini.Write(section, key, UIStyles.CultureInfo.DisplayName); - key = UIStyles.CultureInfo.LCID.ToString() + ".EnglishName"; - if (ini.Read(section, key, "") != UIStyles.CultureInfo.EnglishName) - ini.Write(section, key, UIStyles.CultureInfo.EnglishName); + string key = UIStyles.CultureInfo.LCID.ToString() + ".Name"; + if (ini.Read(section, key, "") != UIStyles.CultureInfo.Name) + ini.Write(section, key, UIStyles.CultureInfo.Name); Dictionary Ctrls2 = new Dictionary(); Dictionary Ctrls3 = new Dictionary(); @@ -357,12 +353,9 @@ namespace Sunny.UI ini.Write(section, "Warning", warning); } - string key = UIStyles.CultureInfo.LCID.ToString() + ".DisplayName"; - if (ini.Read(section, key, "") != UIStyles.CultureInfo.DisplayName) - ini.Write(section, key, UIStyles.CultureInfo.DisplayName); - key = UIStyles.CultureInfo.LCID.ToString() + ".EnglishName"; - if (ini.Read(section, key, "") != UIStyles.CultureInfo.EnglishName) - ini.Write(section, key, UIStyles.CultureInfo.EnglishName); + string key = UIStyles.CultureInfo.LCID.ToString() + ".Name"; + if (ini.Read(section, key, "") != UIStyles.CultureInfo.Name) + ini.Write(section, key, UIStyles.CultureInfo.Name); ConcurrentDictionary idents = InitIdents(current); diff --git a/SunnyUI/SunnyUI.csproj b/SunnyUI/SunnyUI.csproj index 2d7d2d00..ec56f921 100644 --- a/SunnyUI/SunnyUI.csproj +++ b/SunnyUI/SunnyUI.csproj @@ -9,7 +9,7 @@ SunnyUI.Net 是基于.Net Framework4.0+、.Net6、.Net8 框架的 C# WinForm 开源控件库、工具类库、扩展类库、多页面开发框架。 CopyRight © SunnyUI.Net 2012-2024 GPL-3.0-only - 3.7.0.0 + 3.7.2.0 ShenYonghua SunnyUI.Net SunnyUI @@ -72,7 +72,7 @@ - +