private void Init() { win = this; config= LanguageDataUtils.LoadEditorConfig(); if(config == null) { return; } if (!config.gameExistLanguages.Contains(currentLanguage)) { currentLanguage = config.defaultLanguage; } s_languageFullKeyFileNameList= LanguageDataEditorUtils.LoadLangusgeAllFileNames(currentLanguage); if (!string.IsNullOrEmpty(selectFullFileName)) { currentFileDataTable = LanguageDataUtils.LoadFileData(currentLanguage, selectFullFileName); } if (treeViewState == null) treeViewState = new TreeViewState(); treeView = new FolderTreeView(treeViewState); treeView.SetData(s_languageFullKeyFileNameList); treeView.dblclickItemCallBack = ModuleFileDblclickItemCallBack; treeView.selectCallBack = ModuleFileFolderSelectCallBack; }
/// <summary> /// 检查修复多语言完整性 /// </summary> private void CheckAllLanguageFileIntact() { List <string> defaultFullKeyNameList = LanguageDataEditorUtils.LoadLangusgeAllFileNames(config.defaultLanguage); StringBuilder logBuider = new StringBuilder(); logBuider.Append("开始修复多语言完整....\n"); logBuider.Append("基准语言:" + config.defaultLanguage + "\n"); foreach (var nowLan in config.gameExistLanguages) { if (nowLan == config.defaultLanguage) { continue; } logBuider.Append("开始检查语言:" + nowLan + "\n"); List <string> nowFullKeyNameList = LanguageDataEditorUtils.LoadLangusgeAllFileNames(nowLan); foreach (var fullKeyFileName in defaultFullKeyNameList) { DataTable dt = LanguageDataUtils.LoadFileData(config.defaultLanguage, fullKeyFileName); if (!nowFullKeyNameList.Contains(fullKeyFileName)) { Dictionary <string, string> dic = new Dictionary <string, string>(); foreach (var id in dt.TableIDs) { dic.Add(id, ""); } CreateLanguageNewFile(nowLan, fullKeyFileName, dic); logBuider.Append(nowLan + "缺少文件:" + fullKeyFileName + " 已添加!\n"); } else { DataTable nowDT = LanguageDataUtils.LoadFileData(nowLan, fullKeyFileName); List <string> addKeys = new List <string>(); foreach (var id in dt.TableIDs) { if (!nowDT.TableIDs.Contains(id)) { addKeys.Add(id); } } AddNewKey(nowLan, fullKeyFileName, addKeys.ToArray()); if (addKeys.Count > 0) { logBuider.Append(nowLan + "=>" + fullKeyFileName + "缺少字段:\n"); foreach (var item in addKeys) { logBuider.Append("\t" + item + "\n"); } logBuider.Append("\n"); } } } } logBuider.Append("多语言完整性修复完成!\n"); AssetDatabase.Refresh(); Debug.Log(logBuider.ToString()); ShowNotification(new GUIContent("修复完成")); }