184 lines
5.6 KiB
C#
184 lines
5.6 KiB
C#
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,
|
||
}
|
||
/// <summary>
|
||
/// 更新管理器
|
||
/// </summary>
|
||
public class SLanguageMoreLanguageMgr : Singleton<SLanguageMoreLanguageMgr>
|
||
{
|
||
//Hashtable data;
|
||
JsonData jData;
|
||
/// <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 void InitData()
|
||
{
|
||
InitLanguageConfig();
|
||
InitLanguagedictionary();
|
||
}
|
||
private void ReadJson(string strjson)
|
||
{
|
||
XDebug.Log.l(strjson);
|
||
jData = JsonMapper.ToObject<JsonData>(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);
|
||
}
|
||
|
||
/// <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.jData == null)
|
||
this.InitData();
|
||
try
|
||
{
|
||
|
||
|
||
string index1 = ((int)language).ToString();
|
||
//var data2 = JsonMapper.ToJson();
|
||
//var data1 = JsonMapper.ToObject<languageStruct>(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;
|
||
}
|
||
}
|
||
}
|