| | |
| | | |
| | | public static string versionUrlResult { get; private set; } |
| | | |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 语言的ID,用于区分下载资源 |
| | | /// </summary> |
| | | /// <value></value> |
| | |
| | | { |
| | | 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 |
| | |
| | | } |
| | | } |
| | | |
| | | //多语言的路径 |
| | | //默认路径不附加地址,Id不为空时附加Id |
| | | public static string fixPath |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | static Dictionary<string, string> languageShowDict = new Dictionary<string, string>();//射中显示的多语言版本 |
| | | Dictionary<string, string> languageDict = new Dictionary<string, string>();// unity语言配置对应的约定字符 |
| | | string defaultLanguage = string.Empty; |
| | | static Dictionary<string, string> languageShowDict = new Dictionary<string, string>();//界面显示的多语言版本 |
| | | |
| | | //启动多语言的渠道,如{appid:[默认语言标识,是否首次安装强制指定语言,只包含哪些语言版本]} |
| | | // 如{"sghy":["en","0","en,zh,ft"]},字符0代表随系统选择如果找不到则用默认,配1则不检查系统直接用默认 |
| | | //为了同代码版本同表维护,保持配置一致按appid区分,只做翻译处理 |
| | | static Dictionary<string, string[]> languageStartDict = new Dictionary<string, string[]>();//启动多语言的渠道 |
| | | Dictionary<string, string> languageDict = new Dictionary<string, string>();// unity语言配置对应的约定字符 找不到用默认 |
| | | public void InitDefaultLanguage() |
| | | { |
| | | if (languageShowDict == null || languageShowDict.Count == 0) |
| | | //初始化, 该表是随包安装的如果热更需要二次才生效 |
| | | var config = InitialFunctionConfig.Get("LanguageEx"); |
| | | |
| | | 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)) |
| | | { |
| | | var config = InitialFunctionConfig.Get("Language"); |
| | | Debug.LogFormat("系统语言:{0} {1}", Application.systemLanguage, config.Numerical1); |
| | | if (string.IsNullOrEmpty(config.Numerical1)) |
| | | return; |
| | | languageShowDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical1); |
| | | languageDict = JsonMapper.ToObject<Dictionary<string, string>>(config.Numerical5); |
| | | defaultLanguage = config.Numerical2; |
| | | if (!languageShowDict.ContainsKey(defaultLanguage)) |
| | | defaultLanguage = string.Empty; |
| | | //检查有没多语言 |
| | | 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; |
| | | |
| | | string languageMark = ((int)Application.systemLanguage).ToString(); |
| | | |
| | | if (languageDict.ContainsKey(languageMark)) |
| | | { |
| | | id = languageDict[languageMark]; |
| | | //玩家已经选择过语言,不做处理 |
| | | Debug.Log("当前选择语言:" + id); |
| | | return; |
| | | } |
| | | |
| | | Id = languageShowDict.ContainsKey(id) ? id : defaultLanguage; |
| | | 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 = defaultCfg[0]; |
| | | } |
| | | |
| | | Id = id; |
| | | Debug.LogFormat("系统语言:{0} 设置为{1}", Application.systemLanguage, Id); |
| | | } |
| | | |