using GameCore; using LitJson; using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; namespace GameLogic { //public static class ChineseLanguage //{ // public static string CANEL = "取消"; // public static string CONFIRM = "确认"; // public static string CONFIRM_CLOSE = "确定关闭程序?"; // public static string GET_GAME_SETTINGS = "获取游戏配置"; // public static string RETRY = "重试"; // public static string GET_GAME_SETTINGS_FAILED = "获取游戏配置失败!"; // public static string GET_GAME_SETTINGS_ERROR = "获取游戏配置错误!"; // public static string GET_VERSION_INFO = "获取版本信息"; // public static string GET_GAME_SETTINGS_FAILED_CONFIRM_WIFI = "获取游戏配置失败,请确认网络后重试!"; // public static string DOWNlOAD_FILE_FAILED_CONFIRM_WIFI = "下载安装文件失败,请确认网络后重试!"; // public static string GET_RESOURCES_SETTINGS = "获取资源配置"; // public static string GET_RESOURCES_VERSION_FAILED_CONFIRM_WIFI = "获取资源版本失败,请确认网络后重试!"; // public static string CHECK_RESOURCES_FILE = "校验资源文件"; // public static string GET_RESOURCES_SETTINGS_FAILED_CONFIRM_WIFI = "获取资源配置失败,请确认网络后重试!"; // public static string NOT_WIFI_CONFIRM = "检测到资源更新{0:f2}MB,当前非wifi环境,点击确定开始更新!"; // public static string WIFI_CONFIRM = "检测到资源更新{0:f2}MB, 点击确定开始更新!"; // public static string DOWNlOAD_RESOURCES_FILE_FAILED_CONFIRM_WIFI = "下载资源文件失败,请确认网络后重试!"; // public static string DOWNLOAD_NEWEST_APP = "与最新版本差异过大,请下载最新安装包!"; // public static string DOWNLOAD_PROGRESS_RATE = "下载进度:{0}/{1}MB ,下载速度:{2}KB/s"; // public static string DOWNLOAD_PROGRESS = "下载进度:{0}/{1}MB({2}%)"; // public static string UPDATE_COMPLETE = "更新完成"; // public static string RELOAD_RESOURCES = "正在预加载资源,此过程不消耗流量。"; //} //public static class EnglishLanguage //{ // public static string CANEL = "canel"; // public static string CONFIRM = "confirm"; // public static string CONFIRM_CLOSE = "确定关闭程序?"; // public static string GET_GAME_SETTINGS = "获取游戏配置"; // public static string RETRY = "重试"; // public static string GET_GAME_SETTINGS_FAILED = "获取游戏配置失败!"; // public static string GET_GAME_SETTINGS_ERROR = "获取游戏配置错误!"; // public static string GET_VERSION_INFO = "获取版本信息"; // public static string GET_GAME_SETTINGS_FAILED_CONFIRM_WIFI = "获取游戏配置失败,请确认网络后重试!"; // public static string DOWNlOAD_FILE_FAILED_CONFIRM_WIFI = "下载安装文件失败,请确认网络后重试!"; // public static string GET_RESOURCES_SETTINGS = "获取资源配置"; // public static string GET_RESOURCES_VERSION_FAILED_CONFIRM_WIFI = "获取资源版本失败,请确认网络后重试!"; // public static string CHECK_RESOURCES_FILE = "校验资源文件"; // public static string GET_RESOURCES_SETTINGS_FAILED_CONFIRM_WIFI = "获取资源配置失败,请确认网络后重试!"; // public static string NOT_WIFI_CONFIRM = "检测到资源更新{0:f2}MB,当前非wifi环境,点击确定开始更新!"; // public static string WIFI_CONFIRM = "检测到资源更新{0:f2}MB, 点击确定开始更新!"; // public static string DOWNlOAD_RESOURCES_FILE_FAILED_CONFIRM_WIFI = "下载资源文件失败,请确认网络后重试!"; // public static string DOWNLOAD_NEWEST_APP = "与最新版本差异过大,请下载最新安装包!"; // public static string DOWNLOAD_PROGRESS_RATE = "下载进度:{0}/{1}MB ,下载速度:{2}KB/s"; // public static string DOWNLOAD_PROGRESS = "下载进度:{0}/{1}MB({2}%)"; // public static string UPDATE_COMPLETE = "更新完成"; // public static string RELOAD_RESOURCES = "正在预加载资源,此过程不消耗流量。"; //} 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, } /// /// 更新管理器 /// public class SLanguageMoreLanguageMgr : Singleton { Hashtable data; /// /// 版本号文件 /// const string languageFilePath = "Language"; /// /// 版本文件路径 /// string LanguageFilePath { get { return AppConst.PersistentDataPath + languageFilePath + ".json"; } } public class languageStruct { public string chinese; public string english; public string vietnamese; } //Dictionary languagedictionary; public void InitData() { //languagedictionary = new Dictionary(); InitLanguageConfig(); InitLanguagedictionary(); //this.languagedictionary.Add(more_language.CANEL, new languageStruct() { english = EnglishLanguage.CANEL, chinese = ChineseLanguage.CANEL }); //this.languagedictionary.Add(more_language.CONFIRM, new languageStruct() { english = EnglishLanguage.CONFIRM, chinese = ChineseLanguage.CONFIRM }); //this.languagedictionary.Add(more_language.CONFIRM_CLOSE, new languageStruct() { english = EnglishLanguage.CONFIRM_CLOSE, chinese = ChineseLanguage.CONFIRM_CLOSE }); //this.languagedictionary.Add(more_language.GET_GAME_SETTINGS, new languageStruct() { english = EnglishLanguage.GET_GAME_SETTINGS, chinese = ChineseLanguage.GET_GAME_SETTINGS }); //this.languagedictionary.Add(more_language.RETRY, new languageStruct() { english = EnglishLanguage.RETRY, chinese = ChineseLanguage.RETRY }); //this.languagedictionary.Add(more_language.GET_GAME_SETTINGS_FAILED, new languageStruct() { english = EnglishLanguage.GET_GAME_SETTINGS_FAILED, chinese = ChineseLanguage.GET_GAME_SETTINGS_FAILED }); //this.languagedictionary.Add(more_language.GET_GAME_SETTINGS_ERROR, new languageStruct() { english = EnglishLanguage.GET_GAME_SETTINGS_ERROR, chinese = ChineseLanguage.GET_GAME_SETTINGS_ERROR }); //this.languagedictionary.Add(more_language.GET_VERSION_INFO, new languageStruct() { english = EnglishLanguage.GET_VERSION_INFO, chinese = ChineseLanguage.GET_VERSION_INFO }); //this.languagedictionary.Add(more_language.GET_GAME_SETTINGS_FAILED_CONFIRM_WIFI, new languageStruct() { english = EnglishLanguage.GET_GAME_SETTINGS_FAILED_CONFIRM_WIFI, chinese = ChineseLanguage.GET_GAME_SETTINGS_FAILED_CONFIRM_WIFI }); //this.languagedictionary.Add(more_language.DOWNlOAD_FILE_FAILED_CONFIRM_WIFI, new languageStruct() { english = EnglishLanguage.DOWNlOAD_FILE_FAILED_CONFIRM_WIFI, chinese = ChineseLanguage.DOWNlOAD_FILE_FAILED_CONFIRM_WIFI }); //this.languagedictionary.Add(more_language.GET_RESOURCES_SETTINGS, new languageStruct() { english = EnglishLanguage.GET_RESOURCES_SETTINGS, chinese = ChineseLanguage.GET_RESOURCES_SETTINGS }); //this.languagedictionary.Add(more_language.GET_RESOURCES_VERSION_FAILED_CONFIRM_WIFI, new languageStruct() { english = EnglishLanguage.GET_RESOURCES_VERSION_FAILED_CONFIRM_WIFI, chinese = ChineseLanguage.GET_RESOURCES_VERSION_FAILED_CONFIRM_WIFI }); //this.languagedictionary.Add(more_language.CHECK_RESOURCES_FILE, new languageStruct() { english = EnglishLanguage.CHECK_RESOURCES_FILE, chinese = ChineseLanguage.CHECK_RESOURCES_FILE }); //this.languagedictionary.Add(more_language.GET_RESOURCES_SETTINGS_FAILED_CONFIRM_WIFI, new languageStruct() { english = EnglishLanguage.GET_RESOURCES_SETTINGS_FAILED_CONFIRM_WIFI, chinese = ChineseLanguage.GET_RESOURCES_SETTINGS_FAILED_CONFIRM_WIFI }); //this.languagedictionary.Add(more_language.NOT_WIFI_CONFIRM, new languageStruct() { english = EnglishLanguage.NOT_WIFI_CONFIRM, chinese = ChineseLanguage.NOT_WIFI_CONFIRM }); //this.languagedictionary.Add(more_language.WIFI_CONFIRM, new languageStruct() { english = EnglishLanguage.WIFI_CONFIRM, chinese = ChineseLanguage.WIFI_CONFIRM }); //this.languagedictionary.Add(more_language.DOWNlOAD_RESOURCES_FILE_FAILED_CONFIRM_WIFI, new languageStruct() { english = EnglishLanguage.DOWNlOAD_RESOURCES_FILE_FAILED_CONFIRM_WIFI, chinese = ChineseLanguage.DOWNlOAD_RESOURCES_FILE_FAILED_CONFIRM_WIFI }); //this.languagedictionary.Add(more_language.DOWNLOAD_NEWEST_APP, new languageStruct() { english = EnglishLanguage.DOWNLOAD_NEWEST_APP, chinese = ChineseLanguage.DOWNLOAD_NEWEST_APP }); //this.languagedictionary.Add(more_language.DOWNLOAD_PROGRESS_RATE, new languageStruct() { english = EnglishLanguage.DOWNLOAD_PROGRESS_RATE, chinese = ChineseLanguage.DOWNLOAD_PROGRESS_RATE }); //this.languagedictionary.Add(more_language.DOWNLOAD_PROGRESS, new languageStruct() { english = EnglishLanguage.DOWNLOAD_PROGRESS, chinese = ChineseLanguage.DOWNLOAD_PROGRESS }); //this.languagedictionary.Add(more_language.UPDATE_COMPLETE, new languageStruct() { english = EnglishLanguage.UPDATE_COMPLETE, chinese = ChineseLanguage.UPDATE_COMPLETE }); //this.languagedictionary.Add(more_language.RELOAD_RESOURCES, new languageStruct() { english = EnglishLanguage.RELOAD_RESOURCES, chinese = ChineseLanguage.RELOAD_RESOURCES }); } private void ReadJson(string strjson) { XDebug.Log.l(strjson); data = JsonMapper.ToObject(strjson); } public int GetLanguageType() { return PlayerPrefs.GetInt("language", 0); } public void InitLanguageConfig() { if (ConfigManager.Instance.GetConfigInfo("Setting.LanguagePackager.isActive") == "1") { if (!PlayerPrefs.HasKey("language")) { if (Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional) { PlayerPrefs.SetInt("language", 0); } else if (Application.systemLanguage == SystemLanguage.Vietnamese) { PlayerPrefs.SetInt("language", 2); } else { PlayerPrefs.SetInt("language", 1); } } else if (PlayerPrefs.HasKey("language_flag") && PlayerPrefs.GetInt("language") != PlayerPrefs.GetInt("language_flag")) { PlayerPrefs.SetInt("language", PlayerPrefs.GetInt("language_flag")); } if (!PlayerPrefs.HasKey("language_flag")) { PlayerPrefs.SetInt("language_flag", PlayerPrefs.GetInt("language")); } } else { PlayerPrefs.SetInt("language", 0); } string languageStr = ""; switch (GetLanguageType()) { case 0: languageStr = "中文";break; case 1: languageStr = "英文"; break; case 2: 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.data == null) this.InitData(); try { string index1 = ((int)language).ToString(); var data2 = JsonMapper.ToJson(data[index1]); var data1 = JsonMapper.ToObject(data2); switch (GetLanguageType()) { case 0: languageThrans = data1.chinese; break; case 2: languageThrans = data1.vietnamese; break; default: languageThrans = data1.english; break; } } catch (Exception e) { XDebug.Log.l(e.ToString()); } return languageThrans; //languageStruct data = new languageStruct(); //this.languagedictionary.TryGetValue(language, out data); //if (data != null) //{ // switch (PlayerPrefs.GetString("Language")) // { // case "chinese": // languageThrans = data.chinese; // break; // default: // languageThrans = data.english; // break; // } // if (string.IsNullOrEmpty(languageThrans)) // { // return data.chinese; // } // return languageThrans; //} //return ""; } } }