public string Translate(string content) { if (_settings.ShouldUsePinyin) { if (!_pinyinCache.ContainsKey(content)) { if (WordsHelper.HasChinese(content)) { var resultList = WordsHelper.GetPinyinList(content); StringBuilder resultBuilder = new StringBuilder(); for (int i = 0; i < resultList.Length; i++) { if (content[i] >= 0x3400 && content[i] <= 0x9FD5) { resultBuilder.Append(resultList[i].First()); } } resultBuilder.Append(' '); bool pre = false; for (int i = 0; i < resultList.Length; i++) { if (content[i] >= 0x3400 && content[i] <= 0x9FD5) { resultBuilder.Append(' '); resultBuilder.Append(resultList[i]); pre = true; } else { if (pre) { pre = false; resultBuilder.Append(' '); } resultBuilder.Append(resultList[i]); } } return(_pinyinCache[content] = resultBuilder.ToString()); } else { return(content); } } else { return(_pinyinCache[content]); } } else { return(content); } }