using System.Collections.Generic; using System.IO; using System.Text; namespace Thousandto.Package { /// /// 在翻译表没有找到翻译的文件记录器 /// public class LanUnFindChecker { private string CN_UNFIND_LAN_FILE_PATH = "../SubResource/TranslateNone2.txt"; private List _unFindLanList = null; private StringBuilder _unFindLanBuilder = null; private static LanUnFindChecker _instance = null; public static LanUnFindChecker Instance() { if (_instance == null) { _instance = new LanUnFindChecker(); } return _instance; } private LanUnFindChecker() { _unFindLanList = new List(); if (!File.Exists(CN_UNFIND_LAN_FILE_PATH)) { File.Create(CN_UNFIND_LAN_FILE_PATH).Dispose(); } _unFindLanBuilder = new StringBuilder(File.ReadAllText(CN_UNFIND_LAN_FILE_PATH)); } /// /// 记录没有找到翻译的文字或语句 /// /// public void Record(string lan, string prefabname) { if (!_unFindLanList.Contains(lan)) { //判断下是否包含有汉字 if (HasChinese(lan)) { string unFindLan = string.Format("Prefab:{0},未找到翻译中文:{1}", prefabname, lan); _unFindLanList.Add(unFindLan); } } } /// /// 是否包含有汉字 /// /// /// public bool HasChinese(string str) { return System.Text.RegularExpressions.Regex.IsMatch(str, @"[\u4e00-\u9fa5]"); } public void SaveAndWrite() { for (int i = 0; i < _unFindLanList.Count; i++) { _unFindLanBuilder.AppendLine(_unFindLanList[i]); } File.WriteAllText(CN_UNFIND_LAN_FILE_PATH, _unFindLanBuilder.ToString()); //保存的时候就是最后一步了,清空下内容 _unFindLanList.Clear(); } } }