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(); } } //默认ID private static string defaultId { get { return InitialFunctionConfig.Get("Language").Numerical1; } } /// /// 根据系统语言自动设置默认语言 /// public static void InitDefaultLanguage() { Debug.LogFormat("系统语言:{0}", Application.systemLanguage); var config = InitialFunctionConfig.Get("Language").Numerical2; if (string.IsNullOrEmpty(config)) return; var id = LocalSave.GetString("LANGUAGE_ID"); if (!string.IsNullOrEmpty(id)) return; switch (Application.systemLanguage) { case SystemLanguage.Chinese: case SystemLanguage.ChineseSimplified: { id = "jt"; break; } case SystemLanguage.ChineseTraditional: { id = "ft"; break; } } var json = LitJson.JsonMapper.ToObject(config); if (json.Keys.Contains(id)) Id = id; } /// /// 语言的ID,用于区分下载资源 /// /// public static string Id { get { var id = LocalSave.GetString("LANGUAGE_ID"); if (string.IsNullOrEmpty(id)) id = defaultId; return id; } set { LocalSave.SetString("LANGUAGE_ID", value); } } public static string Get(string _id) { var languageInfo = LanguageConfig.Get(_id); if (languageInfo == null) { DebugEx.LogFormat("缺少语言表配置,id: {0}", _id); return string.Empty; } if (string.IsNullOrEmpty(languageInfo.content)) { DebugEx.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) { DebugEx.LogFormat("语言内容格式错误,id: {0}", _id); return content; } } public static string GetFromLocal(int _id) { var languageInfo = PriorLanguageConfig.Get(_id); if (languageInfo == null) { DebugEx.LogFormat("缺少语言表配置,id: {0}", _id); return string.Empty; } if (string.IsNullOrEmpty(languageInfo.Content)) { DebugEx.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) { DebugEx.LogFormat("语言内容格式错误,id: {0}", _id); return content; } } }