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