miduo_client/Assets/Scripts/GameInit/SLanguageMoreLanguageMgr.cs

292 lines
16 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 "";
}
}
}