// 绝对去重保存到completeData ++ void RemoveAbsoluteDanfency() { for (int i = 0; i < rawData.Length; ++i) { string curLine = rawData[i]; if (!completeData.Contains(curLine)) { completeData.Add(curLine); // 语句拆分 string characterLine = ""; string chineseLine = ""; string indexLine = ""; Translator.AnalyzeLine(curLine, ref characterLine, ref chineseLine, ref indexLine, oriLan); characterData.Add(characterLine); chineseData.Add(chineseLine); indexData.Add(indexLine); // 进一步去重得到待翻译版本 string key = chineseLine; if (translateDic.ContainsKey(key)) // 如果是同样的chinese key,选取非中文字符最多的替换 { string preLine = translateDic[key]; int curCharCount = characterLine.Split(',').Length; int preCharCount = AnalyzeLine(preLine); if (curCharCount > preCharCount) { translateDic[key] = curLine; } } else { translateDic.Add(key, curLine); } } } }
// 获取原句字符段个数 int AnalyzeLine(string curLine, Languages language = Languages.Chinese) { string s1 = "", s2 = "", s3 = ""; return(Translator.AnalyzeLine(curLine, ref s1, ref s2, ref s3, language)); }