Localize Plus 对照文件辅助脚本
做汉化的恐怕都知道点睛的
Lephone Localize Plus 吧,有时它生成的对照文件有好几万行,吓死人,其中不少是垃圾字符,为了减少工作量,小菜我写了这个用 JavaScript 结合 EmEditor 宏写的脚本.
其功能是删除或保留所有包含 CJk 统一汉字字符集的行,换句话说就是,
只要该行中有汉字就保留,这样所有没汉字的行都删掉咯,
或者删除所有有汉字的行,这样就只留下英文和数字行咯.
其实还可以进一步写出其它功能,比如文本格式化(不用一个个改了)以及翻译完毕对照文件后,删除那些未变动的行.
这里只提供脚本 LocPlus_Aider.jsee ,以后写出其它脚本给大家
内容如下:
---------------------------------------------------------------------------------
//Localize Plus 对照文件辅助工具
//WSLVIC 原创,电邮:wslvic@163.com
var bReserveASCII
//调用 Windows Popup 弹出窗口
WshShell = new ActiveXObject( "WScript.Shell" );
n = WshShell.Popup( "按 <是> 保留所有 ASCII 行\n按 <否> 保留所有 UniCode 行\n按 <取消> 不进行任何操作", 30,"Localize Plus 对照文件处理辅助脚本", 3);
switch(n)
{ case 6://按下了 <是> 按钮
bReserveASCII = true;
break;
case 7://按下了 <否> 按钮
bReserveASCII = false;
break;
case 2://按下了 <取消> 按钮
break;
default:
}
nLine = document.GetLines();
for (i=1;i<=nLine;i++)
{ strCurLine = document.GetLine(i);
if (strCurLine.length<=0)
{
if (isReservedEmptyLine(i)==false)
{
document.selection.SetActivePoint(eePosLogical,1,i);
document.selection.Replace("\\r\\n","",eeFindReplaceQuiet && eeFindReplaceRegExp);
//删除空行
if (i>0) {--i; --nLine;}
}
}
else
{ if (isReservedLine(strCurLine) == false)
{
document.selection.SetActivePoint(eePosLogical,1,i);
document.selection.Delete(strCurLine.length);
document.selection.Replace("\\r\\n","",eeFindReplaceQuiet && eeFindReplaceRegExp);
if (i>0) {--i; --nLine;}
}
}
status ="已完成: "+ Math.round(i*100/nLine) + "%" + " 当前行 " + i + " | 共 " + nLine + " 行";
}
function isReservedEmptyLine(x)
//判定是否为要保留的空行
//如果前一行为非空行,则该空行为要保留的空行
{
if (x-1>0)
{ if (document.GetLine(x-1).length>0)
return true;
else
return false;
}
else //第一行是空行
{
return false;
}
}
function isReservedLine(strLine)
//判定是否为保留行
{
for (j=0;j<strLine.length;j++)
{ if (isCJKChineseChar(strLine.charCodeAt(j)) == true)
{ return !bReserveASCII;
break;
}
}
return bReserveASCII;
}
function isCJKChineseChar(theCharCode)
//判定是否是 CJK 中日韩统一汉字
//┌───────────────────────┐
//│( U+3400 – U+4DBF) 中日韩统一汉字扩展集 A│
//│( U+4E00 – U+9FBF) 中日韩统一汉字 │
//│( U+20000 – U+2A6DF) 中日韩统一汉字扩展集 B│
//└───────────────────────┘
{ var x
//if ((theCharCode >= 13312 && theCharCode <= 19903) || (theCharCode >= 19968 && theCharCode <= 40895) || (theCharCode >= 131072 && theCharCode <= 173791))
if (theCharCode >= 0x3400 && theCharCode <= 0x4DBF)
{ x=1;}
else if (theCharCode >= 0x4E00 && theCharCode <= 0x9FBF)
{ x=2;}
else if (theCharCode >= 0x20000 && theCharCode <= 0x2A6DF)
{ x=3;}
else
{ x=0;}
switch(x)
{
case 1:
return true
break
case 2:
return true
break
case 3:
return true
break
case 0:
return false
break
default:
return false
}
}
----------------------------------------------------------------------------------------------
以上内容请复制到 EmEditor 或 任何文本编辑器中,然后保存为 .jsee 格式即可,然后在 EmEditor 中选择菜单 "宏->选择" 指定该文件后,即可在宏菜单中点击运行.
注意:不要复制 "----------------------------------------------------------------------"
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)