using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using System;  
 | 
using UnityEngine;  
 | 
  
 | 
  
 | 
public static class Language  
 | 
{  
 | 
    public static int languageNumber  
 | 
    {  
 | 
        get;  
 | 
        set;  
 | 
    }  
 | 
  
 | 
    public static event Action languageChangeEvent;  
 | 
  
 | 
    public static void ChangeLanguage(int _number)  
 | 
    {  
 | 
        if (languageChangeEvent != null)  
 | 
        {  
 | 
            languageChangeEvent();  
 | 
        }  
 | 
    }  
 | 
  
 | 
  
 | 
    /// <summary>  
 | 
    /// 根据系统语言自动设置默认语言  
 | 
    /// </summary>  
 | 
    public static void InitDefaultLanguage()  
 | 
    {  
 | 
        var config = InitialFunctionConfig.Get("Language").Numerical1;  
 | 
        Debug.LogFormat("系统语言:{0} {1}", Application.systemLanguage, config);  
 | 
        if (string.IsNullOrEmpty(config))  
 | 
            return;  
 | 
        var id = LocalSave.GetString("LANGUAGE_ID1");  
 | 
        if (!string.IsNullOrEmpty(id))  
 | 
            return;  
 | 
  
 | 
        switch (Application.systemLanguage)  
 | 
        {  
 | 
            case SystemLanguage.Chinese:  
 | 
            case SystemLanguage.ChineseSimplified:  
 | 
            case SystemLanguage.ChineseTraditional:  
 | 
                {  
 | 
                    id = "zh";  
 | 
                    break;  
 | 
                }  
 | 
        }  
 | 
        var json = LitJson.JsonMapper.ToObject(config);  
 | 
        if (json.Keys.Contains(id))  
 | 
            Id = id;  
 | 
        else  
 | 
        {  
 | 
            //开启的情况下必须要有个默认值  
 | 
            Id = InitialFunctionConfig.Get("Language").Numerical2;  
 | 
        }  
 | 
    }  
 | 
  
 | 
    /// <summary>  
 | 
    /// 语言的ID,用于区分下载资源  
 | 
    /// </summary>  
 | 
    /// <value></value>  
 | 
    public static string Id  
 | 
    {  
 | 
        get  
 | 
        {  
 | 
            var config = InitialFunctionConfig.Get("Language").Numerical1;  
 | 
            if (string.IsNullOrEmpty(config))  
 | 
                return "";  
 | 
            return LocalSave.GetString("LANGUAGE_ID1");  
 | 
        }  
 | 
        set  
 | 
        {  
 | 
            LocalSave.SetString("LANGUAGE_ID1", value);  
 | 
        }  
 | 
    }  
 | 
  
 | 
    //默认路径不附加地址,Id不为空时附加Id  
 | 
    public static string fixPath  
 | 
    {  
 | 
        get  
 | 
        {  
 | 
            if (string.IsNullOrEmpty(Id))  
 | 
                return "";  
 | 
            return string.Format("/{0}", Id);  
 | 
        }  
 | 
    }  
 | 
  
 | 
    public static string Get(string _id)  
 | 
    {  
 | 
        var languageInfo = LanguageConfig.Get(_id);  
 | 
        if (languageInfo == null)  
 | 
        {  
 | 
            DebugEx.LogFormat("缺少语言表配置,id: {0}", _id);  
 | 
            return string.Empty;  
 | 
        }  
 | 
  
 | 
        if (string.IsNullOrEmpty(languageInfo.content))  
 | 
        {  
 | 
            DebugEx.LogFormat("语言内容为空,id: {0}", _id);  
 | 
        }  
 | 
  
 | 
        return languageInfo.content;  
 | 
    }  
 | 
  
 | 
    public static string Get(string _id, params object[] _objects)  
 | 
    {  
 | 
        var content = Get(_id);  
 | 
        try  
 | 
        {  
 | 
            return string.Format(content, _objects);  
 | 
        }  
 | 
        catch (Exception ex)  
 | 
        {  
 | 
            DebugEx.LogFormat("语言内容格式错误,id: {0}", _id);  
 | 
            return content;  
 | 
        }  
 | 
    }  
 | 
  
 | 
    public static string GetFromLocal(int _id)  
 | 
    {  
 | 
        var languageInfo = PriorLanguageConfig.Get(_id);  
 | 
        if (languageInfo == null)  
 | 
        {  
 | 
            DebugEx.LogFormat("缺少语言表配置,id: {0}", _id);  
 | 
            return string.Empty;  
 | 
        }  
 | 
  
 | 
        if (string.IsNullOrEmpty(languageInfo.Content))  
 | 
        {  
 | 
            DebugEx.LogFormat("语言内容为空,id: {0}", _id);  
 | 
        }  
 | 
  
 | 
        return languageInfo.Content;  
 | 
    }  
 | 
  
 | 
    public static string GetFromLocal(int _id, params object[] _objects)  
 | 
    {  
 | 
        var content = GetFromLocal(_id);  
 | 
        try  
 | 
        {  
 | 
            return string.Format(content, _objects);  
 | 
        }  
 | 
        catch (Exception ex)  
 | 
        {  
 | 
            DebugEx.LogFormat("语言内容格式错误,id: {0}", _id);  
 | 
            return content;  
 | 
        }  
 | 
    }  
 | 
  
 | 
  
 | 
}  
 |