using GameCore; using LitJson; using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; namespace GameLogic { public enum more_language { CANEL = 0, CONFIRM = 1, CONFIRM_CLOSE = 2, GET_GAME_SETTINGS = 3, RETRY = 4, GET_GAME_SETTINGS_FAILED = 5, GET_GAME_SETTINGS_ERROR = 6, GET_VERSION_INFO = 7, GET_GAME_SETTINGS_FAILED_CONFIRM_WIFI = 8, DOWNlOAD_FILE_FAILED_CONFIRM_WIFI = 9, GET_RESOURCES_SETTINGS = 10, GET_RESOURCES_VERSION_FAILED_CONFIRM_WIFI = 11, CHECK_RESOURCES_FILE = 12, GET_RESOURCES_SETTINGS_FAILED_CONFIRM_WIFI = 13, NOT_WIFI_CONFIRM = 14, WIFI_CONFIRM = 15, DOWNlOAD_RESOURCES_FILE_FAILED_CONFIRM_WIFI = 16, DOWNLOAD_NEWEST_APP = 17, DOWNLOAD_PROGRESS_RATE = 18, DOWNLOAD_PROGRESS = 19, UPDATE_COMPLETE = 20, RELOAD_RESOURCES = 21, TIPS = 22, INIT_FAILED = 23, } /// /// 更新管理器 /// public class SLanguageMoreLanguageMgr : Singleton { //Hashtable data; JsonData jData; /// /// 版本号文件 /// const string languageFilePath = "Language"; /// /// 版本文件路径 /// string LanguageFilePath { get { return AppConst.PersistentDataPath + languageFilePath + ".json"; } } public class languageStruct { public string chinese; public string english; } public void InitData() { InitLanguageConfig(); InitLanguagedictionary(); } private void ReadJson(string strjson) { XDebug.Log.l(strjson); jData = JsonMapper.ToObject(strjson); } public int GetLanguageType() { return PlayerPrefs.GetInt("multi_language", AppConst.originLan); } public void InitLanguageConfig() { //> 系统语音问题 todo //if (!PlayerPrefs.HasKey("multi_language")) //{ // if (Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional) // { // PlayerPrefs.SetInt("multi_language", 0); // } // else // { // PlayerPrefs.SetInt("multi_language", 1); // } //} //string languageStr = ""; //switch (GetLanguageType()) //{ // case 0: languageStr = "中文";break; // case 1: languageStr = "英文"; break; //} //XDebug.Log.l("当前语言是:" + languageStr); } /// /// 初始化 /// public void InitLanguagedictionary() { try { //首先检测读写目录是否有配置文件,如果有读取配置,如果没有,从resource加载 StreamReader sr; if (File.Exists(LanguageFilePath)) { sr = File.OpenText(LanguageFilePath); if (null != sr) { string strinfo = sr.ReadToEnd(); if (strinfo != null && strinfo.Length > 10) { ReadJson(strinfo); } } } else { //加载本地默认配置 TextAsset config = Resources.Load(languageFilePath) as TextAsset; if (null != config) { ReadJson(config.ToString()); } else { //取默认值 XDebug.Log.l("language.txt is no exist get the default"); } } } catch (Exception ex) { XDebug.Log.l(ex.ToString()); } } string languageThrans = ""; public string GetLanguageChValBykey(more_language language) { if (this.jData == null) this.InitData(); try { string index1 = ((int)language).ToString(); //var data2 = JsonMapper.ToJson(); //var data1 = JsonMapper.ToObject(data2); int L = ((int)Math.Floor((double)(GetLanguageType() / 100))) % 100; string str = jData[L][index1].ToString(); languageThrans = str; //switch (GetLanguageType()) //{ // case 0: // languageThrans = data1.chinese; // break; // case 1: // languageThrans = data1.english; // break; // default: // languageThrans = data1.chinese; // break; //} } catch (Exception e) { XDebug.Log.l(e.ToString()); } return languageThrans; } } }