可可肉的奋斗(第二天)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

 

 

语言包实现源代码:

 包实现源代码:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Threading.Tasks;  
  6. using System.Collections;  
  7. using System.Xml.Linq;  
  8.   
  9.   
  10. namespace cyrus.LanguagePackage  
  11. {  
  12.     /// <summary>  
  13.     /// 语言包相关类  
  14.     /// </summary>  
  15.     public class LanguagePackage  
  16.     {  
  17.   
  18.         private static Dictionary<int, String> DefaultLanguage { getset; }  
  19.  
  20.         #region 获取语言包  
  21.         /// <summary>  
  22.         /// 获取语言包  
  23.         /// </summary>  
  24.         /// <returns></returns>  
  25.         public static Dictionary<int, String> getLanguageDictionary()  
  26.         {  
  27.   
  28.             if (DefaultLanguage == null)  
  29.                 CreateDefaultLanguage();  
  30.             return DefaultLanguage;  
  31.         }  
  32.         /// <summary>  
  33.         /// 根据语言样式获取语言包  
  34.         /// </summary>  
  35.         /// <param name="languageStyle">语言样式</param>  
  36.         /// <returns>语言包</returns>  
  37.         public static Dictionary<int, String> getLanguageDictionary(String languageStyle)  
  38.         {  
  39.             return CreateLanguage(getLanguage(languageStyle));  
  40.         }  
  41.         #endregion  
  42.  
  43.         #region 获取语言配置文件xml  
  44.         /// <summary>  
  45.         /// 获取语言配置文件xml  
  46.         /// </summary>  
  47.         /// <param name="languageStyle">语言类别</param>  
  48.         /// <returns>对应语言xml</returns>  
  49.         private static String getLanguage(string languageStyle)  
  50.         {  
  51.   
  52.             string result = "Language/zh-CN.xml";  
  53.             var query22 = from c22 in XDocument.Load("Language/LanguageConfigure.xml").Elements("Languages") select c22;  
  54.             var query = from c in XDocument.Load("Language/LanguageConfigure.xml").Elements("Languages").Elements("LanguageItem") where c.Value == languageStyle select c;  
  55.   
  56.             if (query != null)  
  57.                 foreach (var languageItem in query)  
  58.                 {  
  59.                     result = languageItem.Attribute("src").Value;  
  60.                 }  
  61.             return result;  
  62.         }  
  63.         #endregion  
  64.  
  65.         #region 创建语言包  
  66.         /// <summary>  
  67.         /// 创建语言包  
  68.         /// </summary>  
  69.         /// <param name="languageURL"></param>  
  70.         /// <returns></returns>  
  71.         private static Dictionary<int, String> CreateLanguage(String languageURL)  
  72.         {  
  73.   
  74.             var query = from c in XDocument.Load(languageURL).Element("Contents").Elements("sentence") select c;  
  75.             if (query == null)  
  76.                 return getLanguageDictionary();  
  77.             //语言包  
  78.             Dictionary<int, String> languagePackage = new Dictionary<intstring>();  
  79.             foreach (var sentence in query)  
  80.             {  
  81.                 int id = Int32.Parse(sentence.Attribute("id").Value);  
  82.                 string mess = sentence.Value;  
  83.                 languagePackage.Add(id, mess);  
  84.             }  
  85.             return languagePackage;  
  86.         }  
  87.         #endregion  
  88.          
  89.         #region 创建默认语言包  
  90.         /// <summary>  
  91.         /// 使用并创建默认语言包  
  92.         /// </summary>  
  93.         private static void CreateDefaultLanguage()  
  94.         {  
  95.             DefaultLanguage = CreateLanguage(getLanguage("zh-CN"));  
  96.         }  
  97.         #endregion  
  98.           
  99.     }  
  100. }  


 

本文出自 “winRT” 博客,转载请与作者联系!

你可能感兴趣的:(TO,LINQ,Surface,WinRT,XM,可可肉的奋斗,二厶可可肉)