C# Winform软件多语言(汉语、英语。。。)界面的切换,低耦合

您所在的位置:网站首页 字体改成英语的软件 C# Winform软件多语言(汉语、英语。。。)界面的切换,低耦合

C# Winform软件多语言(汉语、英语。。。)界面的切换,低耦合

2024-03-15 14:58| 来源: 网络整理| 查看: 265

最近做程序需要用到多语言版本的问题,在网上收集了一些资料,现做以整理。

方法1. 通过添加不同语言的资源文件的方式进行切换

步骤1):

窗体属性Localizable设为TRUE,Language选择需要的语言,然后修改一下窗体的Text属性,就可以在窗体工程树下生成对应语言的资源文件,如下图所示。

步骤2)

双击对应的资源文件,对控件名称进行修改,就可以。

问题:

只能修改控件的标题等属性,不能修改软件中的内容(也可能是我没找方法)

 

方法2. 通过添加语言XML文件的方法

该方法转自网络,非原创。   https://www.cnblogs.com/liangwenchao-912/p/5084076.html

 

1、设计图(自己瞎画的呵呵)

2、做的小demo,界面如下

3、下面是代码展示部分

    1)Form1代码展示

复制代码

1 namespace WindowsFormsApplication1 2 { 3 public partial class Form1 : Form 4 { 5 public Form1() 6 { 7 InitializeComponent(); 8 SetLanguage(); 9 } 10 11 private void SetLanguage() 12 { 13 this.lbUserName.Text = GlobalData.GlobalLanguage.Login_UserName; 14 this.lbPwd.Text = GlobalData.GlobalLanguage.Login_UserPwd; 15 this.btnLogin.Text = GlobalData.GlobalLanguage.Login_Login; 16 } 17 } 18 }

复制代码

    2)GlobalData类代码展示

复制代码

1 namespace WindowsFormsApplication1 2 { 3 public class GlobalData 4 { 5 /// 6 /// 系统语言(Chinese(中文),English(英文)。。。) 7 /// 8 public static string SystemLanguage = System.Configuration.ConfigurationManager.AppSettings["Language"]; 9 // 在调用ConfigurationManager时,要加载System.Configuration.dll 10 private static Language globalLanguage; 11 public static Language GlobalLanguage 12 { 13 get 14 { 15 if (globalLanguage == null) 16 { 17 globalLanguage = new Language(); 18 return globalLanguage; 19 } 20 return globalLanguage; 21 } 22 } 23 24 } 25 }

复制代码

    3)Language类代码展示

复制代码

1 namespace WindowsFormsApplication1 2 { 3 public class Language 4 { 5 #region 登陆界面 6 public string Login_UserName = ""; 7 public string Login_UserPwd = ""; 8 public string Login_Login = ""; 9 #endregion 10 11 protected Dictionary DicLanguage = new Dictionary(); 12 public Language() 13 { 14 XmlLoad(GlobalData.SystemLanguage); 15 BindLanguageText(); 16 } 17 18 /// 19 /// 读取XML放到内存 20 /// 21 /// 22 protected void XmlLoad(string language) 23 { 24 try 25 { 26 XmlDocument doc = new XmlDocument(); 27 string address = AppDomain.CurrentDomain.BaseDirectory + "Languages\\" + language + ".xml"; 28 doc.Load(address); 29 XmlElement root = doc.DocumentElement; 30 31 XmlNodeList nodeLst1 = root.ChildNodes; 32 foreach (XmlNode item in nodeLst1) 33 { 34 DicLanguage.Add(item.Name, item.InnerText); 35 } 36 } 37 catch (Exception ex) 38 { 39 throw ex; 40 } 41 } 42 43 public void BindLanguageText() 44 { 45 Login_UserName = DicLanguage["Login_UserName"]; 46 Login_UserPwd = DicLanguage["Login_UserPwd"]; 47 Login_Login = DicLanguage["Login_Login"]; 48 } 49 } 50 }

复制代码

    4)App.config代码展示

复制代码

1 2 3 4 5 6 7

复制代码

    5)English.xml代码展示

复制代码

1 2 3 UserName: 4 Password: 5 Login 6

复制代码

    6)Chinese.xml代码展示

复制代码

1 2 3 用户名: 4 密码: 5 登录 6

复制代码

4、如果想要换法语则只需要在App.config中配置换成French,然后再添加一个French.xml,内容和其他语言模板一样把内容换成法语则可。

5、OK。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3