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) 
 | 
    { 
 | 
        // return string.Empty; 
 | 
        var languageInfo = LanguageConfig.Get(_id); 
 | 
        if (languageInfo == null) 
 | 
        { 
 | 
#if UNITY_EDITOR 
 | 
            // TODO YYL 
 | 
            // if (_id.StartsWith(NewBieGuideScriptableObject.GuidesPrefixNewBie) || 
 | 
            //     _id.StartsWith(NewBieGuideScriptableObject.GuidesPrefixFun)) 
 | 
            //     return string.Empty; 
 | 
            Debug.LogErrorFormat("缺少语言表配置,id: {0}", _id); 
 | 
#endif 
 | 
            return string.Empty; 
 | 
        } 
 | 
  
 | 
        if (string.IsNullOrEmpty(languageInfo.content)) 
 | 
        { 
 | 
            Debug.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) 
 | 
        { 
 | 
            Debug.LogFormat("语言内容格式错误,id: {0}", _id); 
 | 
            return content; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static string GetFromLocal(int _id) 
 | 
    { 
 | 
        var languageInfo = PriorLanguageConfig.Get(_id); 
 | 
        if (languageInfo == null) 
 | 
        { 
 | 
            Debug.LogFormat("缺少语言表配置,id: {0}", _id); 
 | 
            return string.Empty; 
 | 
        } 
 | 
  
 | 
        if (string.IsNullOrEmpty(languageInfo.Content)) 
 | 
        { 
 | 
            Debug.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) 
 | 
        { 
 | 
            Debug.LogFormat("语言内容格式错误,id: {0}", _id); 
 | 
            return content; 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |