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