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();
}
}
//默认ID
private static string defaultId
{
get { return InitialFunctionConfig.Get("Language").Numerical1; }
}
///
/// 根据系统语言自动设置默认语言
///
public static void InitDefaultLanguage()
{
Debug.LogFormat("系统语言:{0}", Application.systemLanguage);
var config = InitialFunctionConfig.Get("Language").Numerical2;
if (string.IsNullOrEmpty(config))
return;
var id = LocalSave.GetString("LANGUAGE_ID");
if (!string.IsNullOrEmpty(id))
return;
switch (Application.systemLanguage)
{
case SystemLanguage.Chinese:
case SystemLanguage.ChineseSimplified:
{
id = "jt";
break;
}
case SystemLanguage.ChineseTraditional:
{
id = "ft";
break;
}
}
var json = LitJson.JsonMapper.ToObject(config);
if (json.Keys.Contains(id))
Id = id;
}
///
/// 语言的ID,用于区分下载资源
///
///
public static string Id
{
get
{
var id = LocalSave.GetString("LANGUAGE_ID");
if (string.IsNullOrEmpty(id))
id = defaultId;
return id;
}
set
{
LocalSave.SetString("LANGUAGE_ID", value);
}
}
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;
}
}
}