79 lines
2.3 KiB
C#
79 lines
2.3 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|