Net

posts(13) comments(41) trackbacks(0)
  • 博客园
  • 联系
  • 订阅 订阅
  • 管理

公告

昵称:strgvi
园龄:5年9个月
粉丝:1
关注:0

搜索

 

常用链接

我的标签

  • mscrm(10)
  • crm(10)
  • crm4.0(9)
  • mscrm4.0(9)
  • Plug-In(3)
  • 插件(2)
  • 工作流(2)
  • 工作流程(2)
  • 90天试用(1)
  • webservice(1)
  • 更多

随笔分类

  •  c#2.0(6)
  •  MSCRM(3)
  •  net框架(2)

随笔档案

  • 2009年9月 (1)
  • 2008年12月 (2)
  • 2008年7月 (1)
  • 2007年9月 (1)
  • 2007年6月 (3)
  • 2007年5月 (1)
  • 2007年1月 (2)
  • 2006年5月 (1)
  • 2006年4月 (1)

文章分类

  •  Ajax(2)
  •  c# WebForm(18)
  •  c# Winform控件(2)
  •  c#基础知识(21)
  •  c#技巧(17)
  •  ERP(5)
  •  javascript(4)
  •  MSCRM编程(25)
  •  MSCRM业务(7)
  •  NetAdvantage(7)
  •  Other(5)
  •  sql(14)
  •  window2003服务器(2)
  •  框架(11)
  •  系统故障解决(6)

相册

  • me

Ajax

  • 开源PBX软件 Elastix

AsterRisk

  • Asterisk manager API(AMI)文档(中文版)
  • blog=星星的天空

blogs

  • 听雨轩

it网站

  • it实验室
  • mbs
  • Oracle及其它数据库 ≡,≡ ERP与CRM ≡ ....
  • 源码下载(asp)

MSCRM-技术论坛

  • Microsoft Dynamics Community
  • Microsoft Dynamics CRM Team Blog
  • Microsoft Dynamics 系列
  • MSDN
  • sql-server-performance

net

  • 基于Asterisk的VoIP开发指南——Asterisk模块编写指南详细出处参考
  • 本文来自:CTI论坛: 呼叫中心 统一通信 融合通信专业资讯网(http://www.ctiforum.com/) 基于Asterisk的VoIP开发指南——Asterisk模块编写指南详细出处参考:http://www.ctiforum.com/technology/Voip/2008/06/voip0608.htm
  • aafshzj的blogs --AAF持久层
  • ASP.NET Forums
  • codeproject
  • 有大量的控件及源码,net
  • freetextbox使用
  • 广州.NET俱乐部
  • 海洋工作室,SharePoint
  • 海洋工作室
  • 海洋工作室,SharePoint
  • 一个查询连接字符串的网站

技术文章页面

  • Visual Studio Team System 深度培训
  • Web Service开发
  • WebServices网址集锦
  • 正则表达式网址集锦
  • 海洋工作室,SharePoint

汽车

  • 酷车欣赏

商业

  • 连锁加盟业2005年年度报告
  • 张五常blog

最新评论

阅读排行榜

评论排行榜

推荐排行榜

View Post

动态多语言功能,想用XML文件作为语言包

下面是我的源代码,也是从别的地方copy下来的,自己修改了一些,但是现在有问题啊。
运行的时候可以从xml文件中取出对应的值,但是就是不能显示到对应的button上,怎么回事啊?是不是需要设置什么东西?多谢,
namespace mulLan
{
    public partial class Demo : Form
    {
        public Demo()
        {
            InitializeComponent();
        }
        /*********************** derrick language *****************/
        //read default language
        public static string ReadDefaultLanguage()
        {
            XmlReader reader = new XmlTextReader("resources/LanguageDefine.xml");
            XmlDocument doc = new XmlDocument();
            doc.Load(reader);
            XmlNode root = doc.DocumentElement;
            //select DefaultLangugae node
            XmlNode node = root.SelectSingleNode("DefaultLanguage");

            string result = node.Value;
            if (node != null)
                //get node's context
                result = node.InnerText;

            reader.Close();
            return result;
        }

        //modify default language
        public static void WriteDefaultLanguage(string lang)
        {
            DataSet ds = new DataSet();
            ds.ReadXml("resources/LanguageDefine.xml");
            DataTable dt = ds.Tables["Language"];

            dt.Rows[0]["DefaultLanguage"] = lang;
            ds.AcceptChanges();
            ds.WriteXml("resources/LanguageDefine.xml");
        }

        //read AppConfig.xml file
        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;
        }

        /// <summary></summary>
        /// read multi language file
        /// </summary>
        /// <param name="frmName">Form Name</param>
        /// <param name="lang">will display language(zh or en)</param>
        /// <returns></returns>
        public static Hashtable ReadResource(string frmName, string lang)
        {
            Hashtable result = new Hashtable();

            XmlReader reader = null;
            FileInfo fi = new FileInfo("resources/AppResource_" + lang + ".xml");
            if (!fi.Exists)
                reader = new XmlTextReader("resources/AppResource.xml");
            else
                reader = new XmlTextReader("resources/AppResource_" + lang + ".xml");

            XmlDocument doc = new XmlDocument();
            doc.Load(reader);

            XmlNode root = doc.DocumentElement;
            XmlNodeList nodelist = root.SelectNodes("Form[Name='" + frmName + "']/Controls/Control");
            foreach (XmlNode node in nodelist)
            {
                try
                {
                    XmlNode node1 = node.SelectSingleNode("@name");
                    XmlNode node2 = node.SelectSingleNode("@text");
                    if (node1 != null)
                    {
                        result.Add(node1.InnerText.ToLower(), node2.InnerText);
                    }
                }
                catch (FormatException fe)
                {
                    Console.WriteLine(fe.ToString());
                }
            }
            reader.Close();
            return result;
        }


        public static void getNames(Form form)
        {
            //Hashtable table = AppConfig.ReadResource(form.Name,Global.GetValue("lang").ToString());
            Hashtable table = ReadResource(form.Name, "ZH");
            Control.ControlCollection controlNames = form.Controls;
            try
            {
                foreach (Control control in controlNames)
                {
                    if (control.GetType() == typeof(System.Windows.Forms.Panel))
                        GetSubControls(control.Controls, table);

                    if (control.GetType() == typeof(System.Windows.Forms.GroupBox))
                        GetSubControls(control.Controls, table);

                    if (table.Contains(control.Name.ToLower()))
                        control.Text = (string)table[control.Name.ToLower()];
                   
                }
                if (table.Contains(form.Name.ToLower()))
                    form.Text = (string)table[form.Name.ToLower()];
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        private static void GetSubControls(Control.ControlCollection controls, Hashtable table)
        {
            foreach (Control control in controls)
            {
                if (control.GetType() == typeof(System.Windows.Forms.Panel))
                    GetSubControls(control.Controls, table);

                if (control.GetType() == typeof(System.Windows.Forms.GroupBox))
                    GetSubControls(control.Controls, table);

                if (table.Contains(control.Name.ToLower()))
                    control.Text = (string)table[control.Name.ToLower()];
            }
        }

        /*********************** end derrick language *****************/
        private void Demo_Load(object sender, EventArgs e)
        {
            IList list;
            //Hashtable resourceFile;
            Demo form = new Demo();

            string Language;

            Language = ReadDefaultLanguage();
            list = Demo.GetLanguageList(Language);
            comLanguage.DataSource = list;
            comLanguage.Text = Language;

            getNames(form);
        }

        private void Default_Click(object sender, EventArgs e)
        {
            int strB;
            string Language;
            Language = comLanguage.Text;
            strB = Language.IndexOf('[');
            Language = Language.Substring(strB + 1, 2);
            Demo.WriteDefaultLanguage(Language);
        }
    }
}

绿色通道:好文要顶关注我收藏该文与我联系

posted on 2006-10-25 17:59 strgvi 阅读(185) 评论(0)  编辑 收藏

注册用户登录后才能发表评论,请 登录 或 注册,返回博客园首页。
首页博问闪存新闻园子招聘知识库
最新IT新闻:
· 13岁学生两次“黑”了教育局网站
· 微软发布长篇文章:解释WOA定位及兼容性
· 用户称iTunes账户失窃 苹果返还被盗金额
· 向Google学习打造灵动的web体验
· 《愤怒的小鸟》在列 Win8首批游戏图赏
» 更多新闻...
最新知识库文章:
· 如何学习一门新的编程语言?
· 学习不同编程语言的重要性
· 为什么我喜欢富于表达性的编程语言
· 计算机专业的女生为什么要学编程
· 前端必读:浏览器内部工作原理
» 更多知识库文章...

China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
 
Powered by:
博客园
Copyright © strgvi