晚上本來想看電影,可是遇到這個字幕檔很奇怪,中文字幕下面又有英文字幕,看了非常礙眼,因為整個畫面有一半都是字幕,我怎麼看電影,囧。

如:
1468
01:28:08,340 --> 01:28:12,860
我覺得這結局很鼓舞人心
I think the ending had a lot of courage.

1469
01:28:13,020 --> 01:28:15,220
很鼓舞人心
Lot of courage.

一開始乖乖的用文字編輯器,一行一行的把英文刪除,可是字幕上千行,我要刪到手斷掉嗎?好吧!我還是寫code來處理好了,囧rz。

不過這要有安裝Firefox + furebug的人才適合用。

首先把字幕檔用文字編輯器(如:UltraEdit、EditPlus..)打開,然後把字幕檔改成htm檔,所以請在字幕前後加上如下的東西。
<HTML>
<title>刪除英文字幕</title>
<meta http-equiv="content-type" content="text/html; charset=Big5"/>
<body>
<div id="div-body">
1
00:00:38,480 --> 00:00:39,920
《名利場》雜誌把我列為
Vanity Fair named me...

2
00:00:40,080 --> 00:00:42,800
最出色的30個製片人之一
...as one of the 30 most powerful producers in the business.

(中間省略...)

1543
01:33:19,860 --> 01:33:21,700
另一個邊 對
On the other side. Yeah.</div>
</body>
</HTML>

然後將字幕檔另存成.htm檔,拉到firefox上,並將firebug的主控台調整成Enable console for Local Files
firebug

接著打開firebug如下所示
firebug2

然後把底下的javascript的程式碼貼到右邊執行
var i;
function checkABC(text){
    var flag = false;
    var ch = text.charCodeAt();
    if(ch == 34 || ch == 39 || ch == 46){
        //34=', 39=", 46=.
        flag = true;
    }else if(ch == 32){
        //32=空格
        flag = true;
    }else if(ch >= 65 && ch <= 90){
        //A ~ Z
        flag = true;
    }else if(ch >= 97 && ch <= 122){
        //a ~ z
        flag = true;
    }
    return flag;
}
var aa = document.getElementById('div-body');
var line = aa.innerHTML.split('\n');
var newText = "";
for(i = 0; i < line.length; i++){
        var t1, t2;
    t1 = line[i].substring(0,1);
        if(t1 == "."){
            t1 = line[i].substring(3,4);
            t2 = line[i].substring(4,5);
        }else{
            t2 = line[i].substring(1,2);
        }
  
    if(line[i].indexOf("&gt;") > 0){
        line[i] = line[i].replace("&gt;",">")
    }
  
    if(t1 == "" && t2 == ""){
        newText += line[i]+"<br>";
    }else if(checkABC(t1) && checkABC(t2)){
        //都是英文
        //alert(line[i]+"是英文不累加");
    }else if(!checkABC(t1) && !checkABC(t2)){
        //都是中文
        newText += line[i]+"<br>";
    }else if(checkABC(t1) && !checkABC(t2)){
        //英文+中文
        newText += line[i]+"<br>";
    }else if(!checkABC(t1) && checkABC(t2)){
        //中文+英文
        newText += line[i]+"<br>";
    }
}
aa.innerHTML = newText;


如圖所示:
firebug3

執行完,可以看到頁面上的字幕是不是很可愛,很誘人阿!
趕快全選、複製、貼到一個新的字幕檔吧!

因為沒裝任何可以開發程式的東西,就firefox+firebug+javascript直接用吧!很方便的。
ps.我知道這很無聊,不過我還是要紀錄一下,囧。

arrow
arrow
    全站熱搜

    soarlin 發表在 痞客邦 留言(1) 人氣()