Files
2025-01-25 04:38:09 +08:00

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