161 lines
4.7 KiB
C#
161 lines
4.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using UnityEngine;
|
|
|
|
namespace Thousandto.Core.Base
|
|
{
|
|
//语言管理器
|
|
public static class LanguageSystem
|
|
{
|
|
|
|
//当前语言
|
|
private static string _lang = LanguageConstDefine.CH;
|
|
|
|
//用于根据语言区分的资源后缀
|
|
private static string _langPostfix = LanguageConstDefine.CH;
|
|
//小写的语言信息
|
|
private static string _langPostfixLower = LanguageConstDefine.CH.ToLower();
|
|
|
|
|
|
|
|
//是否使用语言来进行特殊访问
|
|
private static bool _useLang = false;
|
|
|
|
//是否使用语言来进行访问
|
|
public static bool UseLang
|
|
{
|
|
get { return _useLang; }
|
|
set { _useLang = value; }
|
|
}
|
|
|
|
//当前语言
|
|
public static string Lang
|
|
{
|
|
get
|
|
{
|
|
if (string.IsNullOrEmpty(_lang))
|
|
{
|
|
//如果本地没有则直接读取系统
|
|
GetSystemLang();
|
|
}
|
|
return _lang;
|
|
}
|
|
set
|
|
{
|
|
_lang = value;
|
|
Debug.Log("set language:"+_lang);
|
|
}
|
|
}
|
|
|
|
//语言后缀
|
|
public static string LangPostfix
|
|
{
|
|
get
|
|
{
|
|
if (string.IsNullOrEmpty(_langPostfix))
|
|
{
|
|
_langPostfix = Lang;
|
|
}
|
|
return _langPostfix;
|
|
}
|
|
}
|
|
|
|
//语言后缀
|
|
public static string LangPostfixLower
|
|
{
|
|
get
|
|
{
|
|
if (string.IsNullOrEmpty(_langPostfixLower))
|
|
{
|
|
_langPostfixLower = Lang.ToLower();
|
|
}
|
|
return _langPostfixLower;
|
|
}
|
|
}
|
|
|
|
//设置当前包的语言
|
|
public static void SetPackageLang(string lan)
|
|
{
|
|
//当有双语的时候就会使用语言来进行处理
|
|
if (!string.IsNullOrEmpty(lan))
|
|
{
|
|
_useLang = true;
|
|
var arr = lan.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
|
|
if (arr.Length > 0)
|
|
{
|
|
_lang = arr[0];
|
|
_langPostfix = lan.Trim();
|
|
_langPostfixLower = _langPostfix.ToLower();
|
|
}
|
|
else
|
|
{
|
|
_lang = string.Empty;
|
|
_langPostfix = string.Empty;
|
|
_langPostfixLower = string.Empty;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_useLang = false;
|
|
_langPostfix = string.Empty;
|
|
_langPostfixLower = string.Empty;
|
|
_lang = string.Empty;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置系统
|
|
/// </summary>
|
|
private static void GetSystemLang()
|
|
{
|
|
//这里检测,根据机器的系统类型来定义语言
|
|
switch (Application.systemLanguage)
|
|
{
|
|
case SystemLanguage.English:
|
|
_lang = LanguageConstDefine.EN;
|
|
break;
|
|
case SystemLanguage.Japanese:
|
|
_lang = LanguageConstDefine.JP;
|
|
break;
|
|
case SystemLanguage.Korean:
|
|
_lang = LanguageConstDefine.KR;
|
|
break;
|
|
case SystemLanguage.Vietnamese:
|
|
_lang = LanguageConstDefine.KR;
|
|
break;
|
|
case SystemLanguage.Thai:
|
|
_lang = LanguageConstDefine.TH;
|
|
break;
|
|
default:
|
|
_lang = LanguageConstDefine.CH;
|
|
break;
|
|
}
|
|
Debug.LogError("set GetSystemLang:" + _lang);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取本地时间格式化字符串
|
|
/// </summary>
|
|
public static String GetTimeFormatString()
|
|
{
|
|
//根据语言类型获取时间格式化字符串
|
|
switch (_lang)
|
|
{
|
|
case LanguageConstDefine.EN:
|
|
return "dd-MM-yyyy";
|
|
case LanguageConstDefine.JP:
|
|
return "yyyy-MM-dd";
|
|
case LanguageConstDefine.KR:
|
|
return "yyyy-MM-dd";
|
|
case LanguageConstDefine.VIE:
|
|
return "yyyy-MM-dd";
|
|
case LanguageConstDefine.TH:
|
|
return "dd-MM-yyyy";
|
|
}
|
|
//中文
|
|
return "yyyy-MM-dd";
|
|
}
|
|
}
|
|
}
|