首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

可可肉的奋斗(第二天)2012-12-25-语言包兑现实例及LINQ to XML

2012-12-31 
可可肉的奋斗(第二天)2012-12-25----------语言包实现实例及LINQ to XML这个系列的贴子属于日记类型的帖子

可可肉的奋斗(第二天)2012-12-25----------语言包实现实例及LINQ to XML

这个系列的贴子属于日记类型的帖子,现在看可能会比较水,算是我个人的奋斗记录吧,希望将来可以对后来(学习)人有所帮助

个人技术背景:做JAVA开发五年,懂C#基本语法(停留在2.0)工作经验3.5年

 

----------------------------------------------------

2012-12-25

今天是学习WinRT的第二天,早上从朋友那里(鹿泉)爬起来往家赶,之前一直在想做一个什么应用呢?为了简便,找个带源码的移植一下吧!简单的体验技术,同时又有了一个App(盈利不是重点,重点是增加自信)回家了去网上找了一个魔塔的原代,简单的试玩了一下,感觉不错(可惜语言不通= =!)

不过还好吧,我本着“虽然这个语言我不懂,而且还不知道是什么语言,写不出来看总能看懂吧?”的精神,硬着头皮决定我的第一个Surface应用就是它了!

经过简单的看文件结构,我发现他不能直接copy到项目里,决定明天再详细的去看源代码,今天先了解了解周边生态环境。进入微软的应用商店,发现里面游戏类的应用现在并不多。现在是377款游戏应用,其中免费的353个,收费的24个,市场空间还是蛮大的,打算开发个至少可以跨语言的应用。随后进行关于语言包的实现。

 

吼吼,晚上8点多实现了语言包功能,在实现的过程中实践学习了LinQ的功能,感觉收获不小!(LinQ to XML )

 

顺便说下,网上很多帖子把类所在的命名空间都写错了,导致耽误了很久时间,相关类在 System.Xml.Linq;命名空间下。好了,上一下成品吧,部分源代哦~

转载请注明作者:二厶可可肉.cyrusLiu.刘.步云.龙飞...小雪  (好吧有点长)

        出处:http://blog.csdn.net/cyrusliu/article/details/8435219

 

语言包实现源代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections;using System.Xml.Linq;namespace cyrus.LanguagePackage{    /// <summary>    /// 语言包相关类    /// </summary>    public class LanguagePackage    {        private static Dictionary<int, String> DefaultLanguage { get; set; }        #region 获取语言包        /// <summary>        /// 获取语言包        /// </summary>        /// <returns></returns>        public static Dictionary<int, String> getLanguageDictionary()        {            if (DefaultLanguage == null)                CreateDefaultLanguage();            return DefaultLanguage;        }        /// <summary>        /// 根据语言样式获取语言包        /// </summary>        /// <param name="languageStyle">语言样式</param>        /// <returns>语言包</returns>        public static Dictionary<int, String> getLanguageDictionary(String languageStyle)        {            return CreateLanguage(getLanguage(languageStyle));        }        #endregion        #region 获取语言配置文件xml        /// <summary>        /// 获取语言配置文件xml        /// </summary>        /// <param name="languageStyle">语言类别</param>        /// <returns>对应语言xml</returns>        private static String getLanguage(string languageStyle)        {            string result = "Language/zh-CN.xml";            var query22 = from c22 in XDocument.Load("Language/LanguageConfigure.xml").Elements("Languages") select c22;            var query = from c in XDocument.Load("Language/LanguageConfigure.xml").Elements("Languages").Elements("LanguageItem") where c.Value == languageStyle select c;            if (query != null)                foreach (var languageItem in query)                {                    result = languageItem.Attribute("src").Value;                }            return result;        }        #endregion        #region 创建语言包        /// <summary>        /// 创建语言包        /// </summary>        /// <param name="languageURL"></param>        /// <returns></returns>        private static Dictionary<int, String> CreateLanguage(String languageURL)        {            var query = from c in XDocument.Load(languageURL).Element("Contents").Elements("sentence") select c;            if (query == null)                return getLanguageDictionary();            //语言包            Dictionary<int, String> languagePackage = new Dictionary<int, string>();            foreach (var sentence in query)            {                int id = Int32.Parse(sentence.Attribute("id").Value);                string mess = sentence.Value;                languagePackage.Add(id, mess);            }            return languagePackage;        }        #endregion                #region 创建默认语言包        /// <summary>        /// 使用并创建默认语言包        /// </summary>        private static void CreateDefaultLanguage()        {            DefaultLanguage = CreateLanguage(getLanguage("zh-CN"));        }        #endregion            }}


 

 

热点排行