知识大全 C#的Windows编程中多语言的实现
Posted 语言
篇首语:有志者事竟成,破釜沉舟,百二秦关终属楚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#的Windows编程中多语言的实现相关的知识,希望对你有一定的参考价值。
C#的Windows编程中多语言的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
实现多语言的方法是通过配置文件实现 通过从配置文件中读取资源 然后在显示窗口的时候 即Load()方法中 动态显示相应的选择语言 下面是在C#的Windows编程中实现多语言的步骤 第一步 设置默认语言和修改默认语言 我们定义了一个XML文件来存放默认语言 文件名为LanguageDefine XML LanguageDefine xml <?xml version= standalone= yes ?> <Language> <DefaultLanguage>ZH</DefaultLanguage> </Language> 该文件只有一个DefaultLanguage属性 用于存放默认语言 需要注意的是这个属性要与语言配置文件中_后的字符串相同 下面是用于读取默认语言和修改默认语言的函数 //读取默认语言 public static string ReadDefaultLanguage() XmlReader reader = new XmlTextReader( resources/LanguageDefine xml ); XmlDocument doc = new XmlDocument(); doc Load(reader); XmlNode root = doc DocumentElement; //选取DefaultLangugae节点 XmlNode node = root SelectSingleNode( DefaultLanguage ); string result = EN ; if (node != null) //取出节点中的内容 result = node InnerText; reader Close(); return result; //修改默认语言 public static void WriteDefaultLanguage(string lang) DataSet ds = new DataSet(); ds ReadXml( resources/LanguageDefine xml ); DataTable dt = ds Tables[ Language ]; dt Rows[ ][ DefaultLanguage ] = lang; ds AcceptChanges(); ds WriteXml( resources/LanguageDefine xml ); 我们又用一个XML文件来存储要显示的语言的种类 和在特定的语言下语言选择下拉菜单的显示文字 现我们只构造了两种语言 不过通过添加Item 我们可以很容易的实现增加一种语言的功能 我们是通过一个ComboBox下拉菜单来实现多语言的选择的 当选择了相应的语言时 我们会把系统的默认语言 即LanguageDefine xml中的语言改成所选的语言 同时 系统马上重新Load() 以显示所选择的语言对应的界面 ppConfig xml <?xml version= encoding= gb ?> <AppConfig> <Area> <Language>ZH</Language> <List> <Item>中文[ZH]</Item> <Item>英文[EN]</Item> </List> </Area> <Area> <Language>EN</Language> <List> <Item>Chinese[ZH]</Item> <Item>English[EN]</Item> </List> </Area> <Area> </AppConfig> 相应的读取该配置文件的函数是 public static IList GetLanguageList(string lang) IList result = new ArrayList(); XmlReader reader = new XmlTextReader( resources/AppConfig xml ); XmlDocument doc = new XmlDocument(); doc Load(reader); XmlNode root = doc DocumentElement; XmlNodeList nodelist = root SelectNodes( Area[Language= + lang + /List/Item ); foreach (XmlNode node in nodelist) result Add(node InnerText); reader Close(); return result; 第三步 根据语言获取要显示页面的显示值 通过上面的几步 我们可以在每个页面的Load()方法中 根据ReadDefaultLanguage()函数 获取这个页面的显示语言 取得默认语言后 我们要该语言的资源文件中读取相应的资源 该资源文件的格式如下(现只显示英文的资源文件 中文资源文件的格式与其相同 只是text中的值换成了相应的中文值) AppResource_EN xml <?xml version= encoding= utf ?> <Resource> <Form> <Name>FrmLogon</Name> <Controls> <Control name= frmlogon text= User logon /> <Control name= lblusername text= Username: /> <Control name= lblpassword text= Password: /> <Control name= lbllanguage text= Language: /> <Control name= btnlogon text= Logon /> <Control name= btncancel text= Exit /> <Control name= btnchangepwd text= Change Password /> </Controls> </Form> <Form> <Name>FrmPasswordChange</Name> <Controls> <Control name= frmpasswordchange text= Change password /> <Control name= lblusername text= Username: /> <Control name= lblpassword text= Old Password: /> <Control name= lblnewpassword text= New Password: /> <Control name= lblpasswordconfirm text= Password Confirm: /> <Control name= btnok text= OK /> <Control name= btncancel text= Return /> </Controls> </Form> </Resource>
cha138/Article/program/net/201311/12039相关参考
Windows中不规则窗体的编程实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Window
VisualC#中调用Windows服务初探 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Wi
C#中调用WindowsAPI的要点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在NetFr
C#中调用WindowsAPI的技术要点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Net
VB.NET编程中调用WindowsAPI 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Windo
知识大全 C#中调用Windows API时的数据类型对应关系
C#中调用WindowsAPI时的数据类型对应关系 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Visual C#中调用Windows API的要点
VisualC#中调用WindowsAPI的要点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
编程中使用C#的BitmapData实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近要转
深入解析C#编程中的事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一个事件是一个使对象或类
C#编程实现在Excel文档中搜索文本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixi