示例#1
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="strResourceName"></param>
            /// <returns></returns>
            public SetStringEventHandler GetHandler(string strResourceName)
            {
                SetStringEventHandler strHandler = null;

                m_Handlers.TryGetValue(strResourceName, out strHandler);
                return(strHandler);
            }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="strResourceName"></param>
 /// <param name="onPacketReceive"></param>
 public void Register( string strResourceName, SetStringEventHandler onPacketReceive )
 {
     m_Handlers.Add( strResourceName, onPacketReceive );
 }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        public static void LoadLanguageFile(Assembly assembly, ref LanguageString globalString)
        {
            // 以下是读取XML文件内的语言信息
            const string LANGUAGE_VERSION = "0.0.1.0";

            if (assembly == null)
            {
                return;
            }

            string lngFile = Path.ChangeExtension(assembly.Location, ".lng");

            if (lngFile == string.Empty)
            {
                return;
            }

            if (File.Exists(lngFile) == false)
            {
                return;
            }

            XDocument languageXML = null;

            try
            {
                languageXML = XDocument.Load(lngFile);
            }
            catch (Exception)
            {
                Debug.WriteLine("Language.SetLanguageString(...) - XDocument.Load(...) throw Exception!");
                return;
            }

            XElement elementRoot = languageXML.Element((XName)"Mmose.Language");

            if (elementRoot == null)
            {
                return;
            }

            XAttribute attributeVersion = elementRoot.Attribute((XName)"Version");

            if (attributeVersion == null)
            {
                return;
            }

            if (attributeVersion.Value != LANGUAGE_VERSION)
            {
                return;
            }

            XAttribute attributeLanguage = elementRoot.Attribute((XName)"Language");

            if (attributeLanguage == null)
            {
                return;
            }

            // 设置语言信息
            globalString.CultureInfo = new CultureInfo(attributeLanguage.Value, false);


            var stringInfo = from languageInfo in elementRoot.Elements((XName)"String") select languageInfo;

            if (stringInfo == null)
            {
                return;
            }

            // 初始化处理函数的接口
            InitSetStringHandler();

            foreach (XElement itemString in stringInfo)
            {
                XAttribute attributeName = itemString.Attribute((XName)"Name");
                if (attributeName == null)
                {
                    continue;
                }

                XAttribute attributeValue = itemString.Attribute((XName)"Value");
                if (attributeValue == null)
                {
                    continue;
                }

                SetStringEventHandler strHandler = s_SetStringHandler.GetHandler(attributeName.Value);
                if (strHandler == null)
                {
                    continue;
                }

                strHandler(globalString, attributeValue.Value);
            }
        }
示例#4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="strResourceName"></param>
 /// <param name="onPacketReceive"></param>
 public void Register(string strResourceName, SetStringEventHandler onPacketReceive)
 {
     m_Handlers.Add(strResourceName, onPacketReceive);
 }