|
@@ -28,20 +28,57 @@ public class LocalizedSpriteCfg
|
|
|
return !string.IsNullOrEmpty(SetNativeSize) && SetNativeSize != "0";
|
|
return !string.IsNullOrEmpty(SetNativeSize) && SetNativeSize != "0";
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+public class GameLanguageCfg
|
|
|
|
|
+{
|
|
|
|
|
+ public const string FileName = "LanguageCfg";
|
|
|
|
|
+ public string key;
|
|
|
|
|
+ public string language;
|
|
|
|
|
+
|
|
|
|
|
+ public GameLanguageCfg()
|
|
|
|
|
+ {
|
|
|
|
|
+ key = "";
|
|
|
|
|
+ language = "";
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
public class LocalizedTextureCfgMgr : Singleton<LocalizedTextureCfgMgr>
|
|
public class LocalizedTextureCfgMgr : Singleton<LocalizedTextureCfgMgr>
|
|
|
{
|
|
{
|
|
|
- private string baseName;
|
|
|
|
|
|
|
+ public static string baseName = "LocalizeTextureCfg";
|
|
|
|
|
+ private static bool isOpen = false;
|
|
|
|
|
+ public static bool IsOpen { get => isOpen; }
|
|
|
|
|
+
|
|
|
private string baseKey;
|
|
private string baseKey;
|
|
|
|
|
|
|
|
private string curLanguageKey;
|
|
private string curLanguageKey;
|
|
|
private string oldLanguageKey;
|
|
private string oldLanguageKey;
|
|
|
private Dictionary<string, Dictionary<string, LocalizedSpriteCfg>> cfgs = new Dictionary<string, Dictionary<string, LocalizedSpriteCfg>>();
|
|
private Dictionary<string, Dictionary<string, LocalizedSpriteCfg>> cfgs = new Dictionary<string, Dictionary<string, LocalizedSpriteCfg>>();
|
|
|
private Dictionary<string, LocalizedSpriteCfg> curCfg;
|
|
private Dictionary<string, LocalizedSpriteCfg> curCfg;
|
|
|
|
|
+ private Dictionary<string, GameLanguageCfg> gameLanguageCfgs = new Dictionary<string, GameLanguageCfg>();
|
|
|
public override void Init()
|
|
public override void Init()
|
|
|
{
|
|
{
|
|
|
- baseName = "LocalizeTextureCfg";
|
|
|
|
|
|
|
+ ReadlanguageCfg();
|
|
|
|
|
|
|
|
- baseKey = "_base";
|
|
|
|
|
|
|
+ if (!isOpen)
|
|
|
|
|
+ {
|
|
|
|
|
+ return ;
|
|
|
|
|
+ }
|
|
|
|
|
+ string defaultlg = GetLanguageLocalSetting();
|
|
|
|
|
+ string systemlg = GetSystemDefaultLanguage();
|
|
|
|
|
+ if (!string.IsNullOrEmpty(defaultlg))
|
|
|
|
|
+ {
|
|
|
|
|
+ baseKey = defaultlg;
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (!string.IsNullOrEmpty(systemlg))
|
|
|
|
|
+ {
|
|
|
|
|
+ baseKey = systemlg;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ baseKey = GetLanguageCfgByKey(LanguageFileEx.Unknown);
|
|
|
|
|
+ }
|
|
|
|
|
+ ConfigMgr.CurLangKey = baseKey;
|
|
|
curLanguageKey = baseKey;
|
|
curLanguageKey = baseKey;
|
|
|
oldLanguageKey = baseKey;
|
|
oldLanguageKey = baseKey;
|
|
|
ReadConfig();
|
|
ReadConfig();
|
|
@@ -86,6 +123,7 @@ public class LocalizedTextureCfgMgr : Singleton<LocalizedTextureCfgMgr>
|
|
|
{
|
|
{
|
|
|
curLanguageKey = language;
|
|
curLanguageKey = language;
|
|
|
ReadConfig();
|
|
ReadConfig();
|
|
|
|
|
+ ConfigMgr.CurLangKey = language;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -102,6 +140,10 @@ public class LocalizedTextureCfgMgr : Singleton<LocalizedTextureCfgMgr>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
public LocalizedSpriteCfg GetLocalizedSpriteCfg(string key, bool notbase = true)
|
|
public LocalizedSpriteCfg GetLocalizedSpriteCfg(string key, bool notbase = true)
|
|
|
{
|
|
{
|
|
|
|
|
+ if (!isOpen)
|
|
|
|
|
+ {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
if (notbase && curLanguageKey == oldLanguageKey)
|
|
if (notbase && curLanguageKey == oldLanguageKey)
|
|
|
{
|
|
{
|
|
|
return null;
|
|
return null;
|
|
@@ -126,6 +168,10 @@ public class LocalizedTextureCfgMgr : Singleton<LocalizedTextureCfgMgr>
|
|
|
|
|
|
|
|
public string GetLocalize(string key, bool notbase = false)
|
|
public string GetLocalize(string key, bool notbase = false)
|
|
|
{
|
|
{
|
|
|
|
|
+ if (!isOpen)
|
|
|
|
|
+ {
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
if (notbase && curLanguageKey == oldLanguageKey)
|
|
if (notbase && curLanguageKey == oldLanguageKey)
|
|
|
{
|
|
{
|
|
|
return "";
|
|
return "";
|
|
@@ -146,5 +192,96 @@ public class LocalizedTextureCfgMgr : Singleton<LocalizedTextureCfgMgr>
|
|
|
|
|
|
|
|
return "";
|
|
return "";
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ private void ReadlanguageCfg()
|
|
|
|
|
+ {
|
|
|
|
|
+ Dictionary<string, Dictionary<string, string>> cfgdata = ConfigMgr.Instance.getTable(GameLanguageCfg.FileName);
|
|
|
|
|
+ if (cfgdata == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ gameLanguageCfgs.Clear();
|
|
|
|
|
+ foreach (var item in cfgdata)
|
|
|
|
|
+ {
|
|
|
|
|
+ GameLanguageCfg cfg = new GameLanguageCfg();
|
|
|
|
|
+ cfg.key = item.Key;
|
|
|
|
|
+ cfg.language = item.Value["Language"];
|
|
|
|
|
+ gameLanguageCfgs.Add(cfg.key,cfg);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ isOpen = FileHelper.CheckStringIsTrue(GetLanguageCfgByKey("openSetting"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public void SetLanguageByKey(string key)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!isOpen)
|
|
|
|
|
+ {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ string lg = GetLanguageCfgByKey(key);
|
|
|
|
|
+ if (!string.IsNullOrEmpty(lg))
|
|
|
|
|
+ {
|
|
|
|
|
+ SetLanguage(lg);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public string GetLanguageCfgByKey(string key)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (gameLanguageCfgs.ContainsKey(key))
|
|
|
|
|
+ {
|
|
|
|
|
+ return gameLanguageCfgs[key].language;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public string GetSystemDefaultLanguage()
|
|
|
|
|
+ {
|
|
|
|
|
+ string ret = LanguageFileEx.Unknown;
|
|
|
|
|
+ switch (UnityEngine.Application.systemLanguage)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ case UnityEngine.SystemLanguage.Vietnamese: //越南语
|
|
|
|
|
+ {
|
|
|
|
|
+ ret = LanguageFileEx.Vietnamese;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case UnityEngine.SystemLanguage.Thai: //泰语
|
|
|
|
|
+ {
|
|
|
|
|
+ ret = LanguageFileEx.Thai;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+
|
|
|
|
|
+ case UnityEngine.SystemLanguage.English:
|
|
|
|
|
+ {
|
|
|
|
|
+ ret = LanguageFileEx.English;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+
|
|
|
|
|
+ case UnityEngine.SystemLanguage.Chinese:
|
|
|
|
|
+ case UnityEngine.SystemLanguage.ChineseSimplified:
|
|
|
|
|
+ case UnityEngine.SystemLanguage.ChineseTraditional:
|
|
|
|
|
+ {
|
|
|
|
|
+ ret = LanguageFileEx.Chinese;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case UnityEngine.SystemLanguage.Unknown:
|
|
|
|
|
+ {
|
|
|
|
|
+ ret = LanguageFileEx.Unknown;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return GetLanguageCfgByKey(ret);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static string GetLanguageLocalSetting()
|
|
|
|
|
+ {
|
|
|
|
|
+ return UnityEngine.PlayerPrefs.GetString("LanguageLocalSetting",string.Empty);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|