292 lines
16 KiB
C#
292 lines
16 KiB
C#
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,
|
||
}
|
||
/// <summary>
|
||
/// 更新管理器
|
||
/// </summary>
|
||
public class SLanguageMoreLanguageMgr : Singleton<SLanguageMoreLanguageMgr>
|
||
{
|
||
Hashtable data;
|
||
/// <summary>
|
||
/// 版本号文件
|
||
/// </summary>
|
||
const string languageFilePath = "Language";
|
||
/// <summary>
|
||
/// 版本文件路径
|
||
/// </summary>
|
||
string LanguageFilePath
|
||
{
|
||
get
|
||
{
|
||
return AppConst.PersistentDataPath + languageFilePath + ".json";
|
||
}
|
||
}
|
||
public class languageStruct
|
||
{
|
||
public string chinese;
|
||
public string english;
|
||
public string vietnamese;
|
||
}
|
||
|
||
//Dictionary<more_language, languageStruct> languagedictionary;
|
||
public void InitData()
|
||
{
|
||
//languagedictionary = new Dictionary<more_language, languageStruct>();
|
||
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<Hashtable>(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);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 初始化
|
||
/// </summary>
|
||
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<TextAsset>(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<languageStruct>(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 "";
|
||
}
|
||
}
|
||
}
|