Tagged: Macro Script
- AuthorPosts
- September 15, 2013 at 6:38 pm #11917snovicParticipant
Hi, gays, congratulations for new site. Best wishes.
I like to watch movies, and must do job about serbian (croation) subtitles, mostly in srt format..
I wish to know, is it possible to make makro witch will correct next two things:
I)If a row of subtitle have 2 lines, and first line not end with doth (so, sentence isn’t finished), and next line begin with capitol letter, makro must correct this to small letter.
ExampleWrong
10
00:02:59,203 –> 00:03:01,906
ali porota i sudija Kris Nolan
Su ga osudiliRight
10
00:02:59,203 –> 00:03:01,906
ali porota i sudija Kris Nolan
su ga osudiliII)
If a row of subtitle have 2 lines, and first line finish with doth (so, sentence is finished), and next line begin with small letter, makro must correct this to capitol letter.
Example
Wrong
17
00:03:19,994 –> 00:03:23,130
“Mekdonald protiv Čikaga”.
tamo je predsednik.Right
17
00:03:19,994 –> 00:03:23,130
“Mekdonald protiv Čikaga”.
Tamo je predsednik.Thanks in advontage.
October 15, 2013 at 12:15 am #17281StefanParticipantYou may want to try this script on COPIES of your srt subtitles files.
1.) save this script as a textfile with JS extension or as a snippet to the snippet plugin.
2.) load your srt file
3.) execute that script one time for every line to modify. The script will tell you if nothing more is found.If this works and you have saved this script to a file, you can utilize menu “Macros > Run wit temporary Options…” to let it run more than one time at once.
This script will:
1.) Find line with leading dd:dd:dd,ddd
2.) Check if last non-blank sign of next line is a dot
3.) If not empty, get content of next line
4.) If dot was found above; replace first char to upper case, else to lower caseRedraw = false; //we use a RegEx search pattern to match first time from strings like: "00:02:59,203 –> 00:03:01,906" foundcount = document.selection.Find("^\\d\\d:\\d\\d:\\d\\d,\\d\\d\\d\\s",eeFindNext | eeFindReplaceRegExp); if(foundcount){ //if line starts with something like "00:02:59,203 ", then go one line down: document.selection.LineDown( ); //get the last sign of thatline: LineContent = document.GetLine( document.selection.GetActivePointY(eePosLogical) ); LineContent = LineContent.replace(/\s+$/,""); LastSign = LineContent.slice(-1); //go again one line down: document.selection.LineDown( ); yPos = document.selection.GetActivePointY( eePosLogical ); LineContent = document.GetLine( yPos ); //if that line is not empty ("If a row of subtitle have 2 lines"): if(LineContent.length > 0){ //if the last sign was a dot: if(LastSign=="."){ //be sure first char is upper case: OUT = LineContent.slice(0,1).toUpperCase() + LineContent.slice(1); }else{ //be sure first char is lower case: OUT = LineContent.slice(0,1).toLowerCase()+ LineContent.slice(1); } //replace origin line content: document.selection.SelectLine(); document.selection.text = OUT + "\n"; } } else alert("Search pattern not found."); document.HighlightFind = false;
HTH?
October 15, 2013 at 11:22 pm #17287snovicParticipantExelent, thank you very much.
- AuthorPosts
- You must be logged in to reply to this topic.