| using System.Collections; | 
| using System.Collections.Generic; | 
| using System; | 
| using UnityEngine; | 
|   | 
|   | 
| public static class Language | 
| { | 
|     public static int languageNumber | 
|     { | 
|         get; | 
|         set; | 
|     } | 
|   | 
|     public static event Action languageChangeEvent; | 
|   | 
|     public static void ChangeLanguage(int _number) | 
|     { | 
|         if (languageChangeEvent != null) | 
|         { | 
|             languageChangeEvent(); | 
|         } | 
|     } | 
|   | 
|   | 
|     /// <summary> | 
|     /// 根据系统语言自动设置默认语言 | 
|     /// </summary> | 
|     public static void InitDefaultLanguage() | 
|     { | 
|         var config = InitialFunctionConfig.Get("Language").Numerical1; | 
|         Debug.LogFormat("系统语言:{0} {1}", Application.systemLanguage, config); | 
|         if (string.IsNullOrEmpty(config)) | 
|             return; | 
|         var id = LocalSave.GetString("LANGUAGE_ID1"); | 
|         if (!string.IsNullOrEmpty(id)) | 
|             return; | 
|   | 
|         switch (Application.systemLanguage) | 
|         { | 
|             case SystemLanguage.Chinese: | 
|             case SystemLanguage.ChineseSimplified: | 
|             case SystemLanguage.ChineseTraditional: | 
|                 { | 
|                     id = "zh"; | 
|                     break; | 
|                 } | 
|         } | 
|         var json = LitJson.JsonMapper.ToObject(config); | 
|         if (json.Keys.Contains(id)) | 
|             Id = id; | 
|         else | 
|         { | 
|             //开启的情况下必须要有个默认值 | 
|             Id = InitialFunctionConfig.Get("Language").Numerical2; | 
|         } | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 语言的ID,用于区分下载资源 | 
|     /// </summary> | 
|     /// <value></value> | 
|     public static string Id | 
|     { | 
|         get | 
|         { | 
|             var config = InitialFunctionConfig.Get("Language").Numerical1; | 
|             if (string.IsNullOrEmpty(config)) | 
|                 return ""; | 
|             return LocalSave.GetString("LANGUAGE_ID1"); | 
|         } | 
|         set | 
|         { | 
|             LocalSave.SetString("LANGUAGE_ID1", value); | 
|         } | 
|     } | 
|   | 
|     //默认路径不附加地址,Id不为空时附加Id | 
|     public static string fixPath | 
|     { | 
|         get | 
|         { | 
|             if (string.IsNullOrEmpty(Id)) | 
|                 return ""; | 
|             return string.Format("/{0}", Id); | 
|         } | 
|     } | 
|   | 
|     public static string Get(string _id) | 
|     { | 
|         // return string.Empty; | 
|         var languageInfo = LanguageConfig.Get(_id); | 
|         if (languageInfo == null) | 
|         { | 
| #if UNITY_EDITOR | 
|             // TODO YYL | 
|             // if (_id.StartsWith(NewBieGuideScriptableObject.GuidesPrefixNewBie) || | 
|             //     _id.StartsWith(NewBieGuideScriptableObject.GuidesPrefixFun)) | 
|             //     return string.Empty; | 
|             Debug.LogErrorFormat("缺少语言表配置,id: {0}", _id); | 
| #endif | 
|             return string.Empty; | 
|         } | 
|   | 
|         if (string.IsNullOrEmpty(languageInfo.content)) | 
|         { | 
|             Debug.LogFormat("语言内容为空,id: {0}", _id); | 
|         } | 
|   | 
|         return languageInfo.content; | 
|     } | 
|   | 
|     public static string Get(string _id, params object[] _objects) | 
|     { | 
|         var content = Get(_id); | 
|         try | 
|         { | 
|             return string.Format(content, _objects); | 
|         } | 
|         catch (Exception ex) | 
|         { | 
|             Debug.LogFormat("语言内容格式错误,id: {0}", _id); | 
|             return content; | 
|         } | 
|     } | 
|   | 
|     public static string GetFromLocal(int _id) | 
|     { | 
|         return string.Empty; | 
|         var languageInfo = PriorLanguageConfig.Get(_id); | 
|         if (languageInfo == null) | 
|         { | 
|             Debug.LogFormat("缺少语言表配置,id: {0}", _id); | 
|             return string.Empty; | 
|         } | 
|   | 
|         if (string.IsNullOrEmpty(languageInfo.Content)) | 
|         { | 
|             Debug.LogFormat("语言内容为空,id: {0}", _id); | 
|         } | 
|   | 
|         return languageInfo.Content; | 
|     } | 
|   | 
|     public static string GetFromLocal(int _id, params object[] _objects) | 
|     { | 
|         var content = GetFromLocal(_id); | 
|         try | 
|         { | 
|             return string.Format(content, _objects); | 
|         } | 
|         catch (Exception ex) | 
|         { | 
|             Debug.LogFormat("语言内容格式错误,id: {0}", _id); | 
|             return content; | 
|         } | 
|     } | 
|   | 
|   | 
| } |