Files
Main/Assets/Editor/DIY/Package/LanUnFindChecker.cs

79 lines
2.3 KiB
C#
Raw Permalink Normal View History

2025-01-25 04:38:09 +08:00
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Thousandto.Package
{
/// <summary>
/// 在翻译表没有找到翻译的文件记录器
/// </summary>
public class LanUnFindChecker
{
private string CN_UNFIND_LAN_FILE_PATH = "../SubResource/TranslateNone2.txt";
private List<string> _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<string>();
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));
}
/// <summary>
/// 记录没有找到翻译的文字或语句
/// </summary>
/// <param name="lan"></param>
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);
}
}
}
/// <summary>
/// 是否包含有汉字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
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();
}
}
}