From f4a702e212d1853735f8dae399da69d23bfa510e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 18:16:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/System/Language/Language.cs |  100 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 79 insertions(+), 21 deletions(-)

diff --git a/Main/System/Language/Language.cs b/Main/System/Language/Language.cs
index 9eb65ec..3507c37 100644
--- a/Main/System/Language/Language.cs
+++ b/Main/System/Language/Language.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System;
 using UnityEngine;
+using LitJson;
 
 
 public static class Language
@@ -22,38 +23,78 @@
         }
     }
 
+    public static Dictionary<string, string> languageShowDict = new Dictionary<string, string>();//鐣岄潰鏄剧ず鐨勫璇█鐗堟湰
+
+    //鍚姩澶氳瑷�鐨勬笭閬�,濡倇appid:[榛樿璇█鏍囪瘑,鏄惁棣栨瀹夎寮哄埗鎸囧畾璇█,鍙寘鍚摢浜涜瑷�鐗堟湰]}
+    // 濡倇"sghy":["en","0","en,zh,ft"]}锛屽瓧绗�0浠h〃闅忕郴缁熼�夋嫨濡傛灉鎵句笉鍒板垯鐢ㄩ粯璁わ紝閰�1鍒欎笉妫�鏌ョ郴缁熺洿鎺ョ敤榛樿
+    //涓轰簡鍚屼唬鐮佺増鏈悓琛ㄧ淮鎶わ紝淇濇寔閰嶇疆涓�鑷存寜appid鍖哄垎锛屽彧鍋氱炕璇戝鐞�
+    public static Dictionary<string, string[]> languageStartDict = new Dictionary<string, string[]>();//鍚姩澶氳瑷�鐨勬笭閬�
+    static Dictionary<string, string> languageDict = new Dictionary<string, string>();// unity璇█閰嶇疆瀵瑰簲鐨勭害瀹氬瓧绗� 鎵句笉鍒扮敤榛樿
 
     /// <summary>
-    /// 鏍规嵁绯荤粺璇█鑷姩璁剧疆榛樿璇█
+    /// 鏈己鍒惰瑷�鐨� 鏍规嵁绯荤粺璇█鑷姩璁剧疆榛樿璇█ 绛夋儏鍐�
     /// </summary>
     public static void InitDefaultLanguage()
     {
-        var config = InitialFunctionConfig.Get("Language").Numerical1;
-        Debug.LogFormat("绯荤粺璇█锛歿0} {1}", Application.systemLanguage, config);
-        if (string.IsNullOrEmpty(config))
+        //鍒濆鍖�, 璇ヨ〃鏄殢鍖呭畨瑁呯殑濡傛灉鐑洿闇�瑕佷簩娆℃墠鐢熸晥
+        var config = InitialFunctionConfig.Get("LanguageEx");
+        if (config.Numerical1 == null || config.Numerical2 == null || config.Numerical3 == null)
+        {
             return;
+        }      
+        
+        languageShowDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical1);
+        languageStartDict = JsonMapper.ToObject<Dictionary<string, string[]>>(config.Numerical2);
+        languageDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical3);
+
+        if (languageStartDict == null || !languageStartDict.ContainsKey(VersionConfigEx.Get().appId))
+        {
+            //妫�鏌ユ湁娌″璇█
+            Debug.Log("褰撳墠娓犻亾鏈紑鍚璇█:" + VersionConfigEx.Get().appId);
+            return;
+        }
+
+        Debug.LogFormat("绯荤粺璇█锛歿0} {1}", Application.systemLanguage, config.Numerical1);
+
         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;
-                }
+            //鐜╁宸茬粡閫夋嫨杩囪瑷�锛屼笉鍋氬鐞�
+            Debug.Log("褰撳墠閫夋嫨璇█锛�" + id);
+            return;
         }
-        var json = LitJson.JsonMapper.ToObject(config);
-        if (json.Keys.Contains(id))
-            Id = id;
+
+        var defaultCfg = languageStartDict[VersionConfigEx.Get().appId];
+        string languageMark;
+        if (defaultCfg[1] == "0")
+        {
+            //闅忕郴缁熼�夋嫨
+            languageMark = ((int)Application.systemLanguage).ToString();
+            if (languageDict.ContainsKey(languageMark))
+            {
+                id = languageDict[languageMark];
+                var lanArr = defaultCfg[2].Split(',');
+                if (Array.IndexOf(lanArr, id) == -1)
+                {
+                    //涓嶅寘鍚殑璇█ 鐢ㄩ粯璁�
+                    id = defaultCfg[0];
+                }
+
+            }
+            else
+            {
+                //榛樿
+                id = defaultCfg[0];
+            }
+        }
         else
         {
-            //寮�鍚殑鎯呭喌涓嬪繀椤昏鏈変釜榛樿鍊�
-            Id = InitialFunctionConfig.Get("Language").Numerical2;
+            //寮哄埗鎸囧畾榛樿
+            id = defaultCfg[0];
         }
+
+        Id = id;
+        Debug.LogFormat("绯荤粺璇█锛歿0} 璁剧疆涓簕1}", Application.systemLanguage, Id);
     }
 
     /// <summary>
@@ -64,9 +105,14 @@
     {
         get
         {
-            var config = InitialFunctionConfig.Get("Language").Numerical1;
-            if (string.IsNullOrEmpty(config))
+            if (languageStartDict == null || languageStartDict.Count == 0)
+            {
                 return "";
+            }
+            if (!languageStartDict.ContainsKey(VersionConfigEx.Get().appId))
+            {
+                return "";
+            }
             return LocalSave.GetString("LANGUAGE_ID1");
         }
         set
@@ -75,6 +121,7 @@
         }
     }
 
+    //澶氳瑷�鐨勮矾寰�
     //榛樿璺緞涓嶉檮鍔犲湴鍧�锛孖d涓嶄负绌烘椂闄勫姞Id
     public static string fixPath
     {
@@ -86,6 +133,17 @@
         }
     }
 
+
+    // 鑾峰彇璇█閫夐」
+    public static string[] GetLanguages()
+    {
+        if (languageStartDict == null || !languageStartDict.ContainsKey(VersionConfig.Get().appId))
+        {
+            return null;
+        }
+        return languageStartDict[VersionConfig.Get().appId][2].Split(',');
+    }
+
     public static string Get(string _id)
     {
         // return string.Empty;

--
Gitblit v1.8.0