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