// by kugi
program removefirstdash;
function Remove (title : String) : String;
var
startIndex : Integer;
len : Integer;
begin
len := Length(title);
for startIndex := 1 to len-1 do
begin
if((Copy(title, startIndex, 1) <> '-') and (Copy(title, startIndex, 1) <> ' ')) then break;
if((Copy(title, startIndex, 1) = '-') or (Copy(title, startIndex, 1) = ' ')) then
begin
Delete(title, 1, 1);
len := len - 1;
startIndex := startIndex - 1;
end;
end;
result := title;
end;
var
titleIndex : Integer;
title : String;
begin
for titleIndex := 0 to GetSubtitleCount - 1 do
begin
title := GetSubtitleText(titleIndex);
title := Remove(title);
SetSubtitleText(titleIndex,title);
end;
end.
// by kugi
program RemoveDashSpace;
// ----------------------------------------------
// procedure to remove space after dash ('-')
// and in some cases before dash
function RemoveDashSpace (title : String) : String;
var
startIndex : Integer;
len : Integer;
begin
len := Length(title);
for startIndex := 1 to len-1 do
begin
if((Copy(title,startIndex,1) = '-') and (Copy(title,startIndex+1,1) = ' ')) then
begin
Delete(title,startIndex+1,1);
len := len - 1;
end;
if((Copy(title,startIndex,1) = ' ') and (Copy(title,startIndex+1,1) = '-')) then
begin
if((startIndex > 1) and (Copy(title,startIndex-1,1) > #96)) then
begin
Delete(title,startIndex,1);
len := len - 1;
startIndex := startIndex - 1;
end;
end;
end;
result := title;
end;
// ----------------------------------------------
// main
// ----------------------------------------------
var
titleIndex : Integer;
title : String;
begin
for titleIndex := 0 to GetSubtitleCount - 1 do
begin
title := GetSubtitleText(titleIndex);
title := RemoveDashSpace(title);
SetSubtitleText(titleIndex,title);
end;
end.
// --= CPS Comment (in translation) =--
// Add info about the Readability Rythm
// of the original sub (Characters per second)
// as a comment [...] in the Translation.
// ------------------------------------
// Made by Buzcatcher - feb.2007
// http://subtitle-spotting.blogspot.com/
program CPScomment;
// -------------------------------------
const
//FYI: 25cps = 40ms spotting for each char ; 20cps=50ms/char. etc.
CPSlimit = 25; //Change as you see fit.
CRLF = ''#13''#10;
var
i, j, n, pln, p1, p2 : Integer;
duration, sublength, cps : Integer;
subtxt, subtrans, report : String;
begin
if not IsTranslatedloaded then
exit;
n := GetSubtitleCount-1;
for i := 0 to n do
begin
subtxt := GetSubtitleText(i);
sublength := length(subtxt);
duration := GetSubtitleFinalTime(i) - GetSubtitleInitialTime(i);
//pure stripped text length doesn't count the CRLF in 2 line subs
pln := pos(''#13''#10, subtxt);
if (pln>0) then
sublength := sublength - 2;
cps := round((sublength * 1000)/ duration); //spotting spead.
if (cps > CPSlimit) then
begin
// To update rather than double the cps info.
subtrans := GetSubtitleTrans(i);
p1 := pos('[*', subtrans);
p2 := pos('*]', subtrans);
while ((p1>0) and (p2>0)) do
begin
subtrans := copy(subtrans, p2+2, length(subtrans)-p2);
p1 := pos('[*', subtrans);
p2 := pos('*]', subtrans);
end;
SetSubtitleTrans(i, subtrans);
//Adding [*xx C/sec*] in the translation text.
report := '[*' + IntToStr(cps) + ' Car/s*]';
subtrans := report + GetSubtitleTrans(i);
SetSubtitleTrans(i, subtrans);
j := j + 1;
end;
end;
MsgBox(IntToStr(j) + ' Subtitles over ' + IntToStr(CPSlimit) + ' char/sec' + CRLF + 'Noted in Translation File', '&Ok', '', '', $20);
end.
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!-- Od ideje do realizacije: MilanRS -->
<!----------------------------------------------->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Smart space after zarez -->
<ERROR Find="[A-ZŽĆČŠĐa-zžčćšđá-úńä-ü](\,)[^(\s\n\,\?\!)]" ReplaceBy=", ">
</SWOCR>
Rob što to radiš?
- Ništa.
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- MilanRS -->
<!----------------------------------------------->
<SWOCR
WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
Z_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Razmak iza crte - na početku 2. reda -->
<ERROR Find="[\n](-)[A-ZŠĆŽČĐ\x22]" ReplaceBy="- ">
<!-- Korigovanje crte - kad je u sredini prvog reda -->
<ERROR Find="[\.\?\!\x22]( -)[A-ZŠĆŽČĐ\x22]" ReplaceBy=" - ">
</SWOCR>
Ima li netko neku skriptu koja će detektirati svaki ponovljeni titl bez obzira koliko su razmaknuti.
Npr. SW popravi duple titlove ako je slučaj ovakav:
00:00:01,000 --> 00:00:01,010 Come on, let's book.
00:00:01,010 --> 00:00:02,000 Come on, let's book.
Ali ja želim da mi i popravi npr ovakve:
00:00:01,000 --> 00:00:01,010 Come on, let's book.
00:00:03,010 --> 00:00:06,000 Come on, let's book.
Ako je prevelika razlika u vremenu između 2 jednaka titla, onda ih SW ne detektira kao dupli titl, a ja želim da detektira dupli titl bez obzira koliko bili razmaknuti.
Poslije lako mogu popraviti ako predugo traju...
// program spaja linije prijevoda
// koje imaju isti tekst, a da razmak između
// dva takva susjedna titla nije veći od 1s
program JoinSameSubtitles;
var
text1 : String;
text2 : String;
textIndex : Integer;
//offset : Integer;
initialtime : Integer;
finaltime : Integer;
begin
//offset := 0;
for textIndex := 0 to (GetSubtitleCount - 1) do
begin
text1 := '';
text2 := '';
text1 := GetSubtitleText(textIndex);
text2 := GetSubtitleText(textIndex+1);
if text1 = text2 then
begin
finaltime := GetSubtitleFinalTime(textIndex);
initialtime := GetSubtitleInitialTime(textIndex+1);
if (initialtime - finaltime) <= 1000 then
begin
initialtime := GetSubtitleInitialTime(textIndex);
finaltime := GetSubtitleFinalTime(textIndex+1);
SetSubtitleInitialTime(textIndex, initialtime);
SetSubtitleFinalTime(textIndex, finaltime);
DeleteSubtitle(textIndex+1);
textIndex := textIndex - 1;
//offset := offset + 1;
end;
end;
end;
end.
//if (initialtime - finaltime) <= 1000 then
thx
ali da li bi se mogla napraviti ocr skripta za to. Ja bih volio vidjeti mjesta gdje je bio taj dupli titl.
...
SetSubtitleFinalTime(textIndex, finaltime);
Insert('<b>',text1,1);
SetSubtitleText(textIndex,text1);
//DeleteSubtitle(textIndex+1);
...
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!-- -->
<!-- Default values: -->
<!-- -->
<!-- UseRE = True (use Regular Expressions) -->
<!-- UseREOnlyToFind = True (put the part that -->
<!-- is not a RE between parenthesis!) -->
<!-- -->
<!-- If UseRE is set to false then you can use -->
<!-- the following parameters, otherwise they -->
<!-- will be ignored: -->
<!-- -->
<!-- CaseSensitive (Default = False) -->
<!-- WholeWord (Default = False) -->
<!-- PreserveCase (Default = False) -->
<!-- ----------------------------------------- -->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Npr. "O'NeiII" by "O'Neill" -->
<ERROR Find="[a-zá-ú][a-zá-ú](II)" ReplaceBy="ll">
<ERROR Find="(II)[a-zá-ú][a-zá-ú]" ReplaceBy="ll">
<ERROR Find="\b(II)[i]\b" ReplaceBy="Il">
<ERROR Find="\b(ll)[i]\b" ReplaceBy="Il">
<!-- Zamijeni sva "l" s "I" na početku riječi s velikim slovima -->
<ERROR Find="\b(l)[A-ZĆČĐŠŽ]" ReplaceBy="I">
<!-- Zamijeni sva "l" s "I" unutar riječi s velikim slovima -->
<ERROR Find="[A-ZĆČĐŠŽ](l)[A-ZĆČĐŠŽ]" ReplaceBy="I">
<!-- Zamijeni sva "l" s "I" na kraju riječi s velikim slovima -->
<ERROR Find="[A-ZĆČĐŠŽ][A-ZĆČĐŠŽ](l)" ReplaceBy="I">
<!-- Zamijeni sva "I" s "l" unutar riječi s malim slovima ili prvoj riječi u rečenici -->
<ERROR Find="[A-ZĆČĐŠŽa-zćčđšž](I)[a-zćčđšž]" ReplaceBy="l">
<!-- Zamijeni sva "I" s "l" na kraju riječi s malim slovima (uključujući znakove interpunkcije na kraju) -->
<ERROR Find="[a-zćčđšž](I)[a-zćčđšž\s\.!?:;,'\x22)]" ReplaceBy="l">
<ERROR Find="[a-zćčđšž](I)" ReplaceBy="l">
<!-- Zamijeni sva "I" s "l" unutar riječi s hrvatskim znakovima -->
<ERROR Find="[A-Za-zĆČĐŠŽćčđšž](I)[a-zćčđšž]" ReplaceBy="l">
<!-- Zamijeni sva "L" s "I" na početku riječi kada slijedi bilo koje slovo osim "aeiouj" -->
<ERROR Find="\b(L)[bcdfghklmnprstvz\ćčđšž]" ReplaceBy="I">
<!-- Zamijeni sva "l" s "I" na početku riječi kada slijedi bilo koje slovo osim "aeiouj" -->
<ERROR Find="\b(l)[bcdfghklmnprstvz\ćčđšž]" ReplaceBy="I">
<!-- Zamijeni sva "I" s "l" na početku riječi kada slijedi "aeiouj" -->
<ERROR Find="\b(I)[aeijou]" ReplaceBy="l">
<!-- Zamijeni sva sama "l" s "I" -->
<ERROR Find="\b(l)\b" ReplaceBy="I">
<!-- Zamijeni sva sama "I" s "i" ako prethode i slijede mala slova -->
<ERROR Find="[a-zćčđšž]( I )[a-zćčđšž]" ReplaceBy=" i ">
<!-- Izbriši razmak ispred dvotočke ako prethodi broj "1 :", "2 :"... "n :" s "n:" -->
<ERROR Find="\d( :)" ReplaceBy=":">
<!-- Zamijeni ",,," ili više sa "..." -->
<ERROR UseREOnlyToFind="False" Find=",{2,}" ReplaceBy="...">
<!-- "--" ili više sa "..." -->
<ERROR UseREOnlyToFind="False" Find="-{2,}" ReplaceBy="...">
<!-- Navodnici i apostrofi ("\x22" je '"' navodnik) -->
<ERROR Find="(“)" ReplaceBy=""">
<ERROR Find="(”)" ReplaceBy=""">
<ERROR Find="(`)" ReplaceBy="'">
<ERROR Find="(´)" ReplaceBy="'">
<ERROR Find="(‘)" ReplaceBy="'">
<ERROR Find="(’)" ReplaceBy="'">
<ERROR UseREOnlyToFind="False" Find="''" ReplaceBy=""">
<!-- '"' dva puta ili više zamijeni s jednim '"' -->
<ERROR UseREOnlyToFind="False" Find="\x22{2,}" ReplaceBy=""">
<!-- Razmak iza apostrofa, npr. "I' d" to "I'd", "I' LL" to "I'LL", etc. -->
<ERROR Find="(?i)[A-ZÁ-Úa-zá-ú]('\s|\s')(ll|ve|s|m|d)\b" ReplaceBy="'">
<!-- F "Hasn 't" and "Hasn' t" -->
<ERROR Find="[\.\s](')" ReplaceBy="'">
<!-- <ERROR Find="(?i)[A-ZÁ-Úa-zá-ú]('\s|\s')t\b" ReplaceBy="'"> -->
<!-- Zamijeni sva "I'" s "l'" -->
<ERROR Find="(I)[\']" ReplaceBy="l">
<!-- Zamijeni sve glagole s 5 i više slova "**(a)(e)(i)ti ću" s "**(a)(e)(i)t ću" i "**(a)(e)(i)ti će*" s "**(a)(e)(i)t će*" -->
<!-- Glagoli i imenice s četiri slova koja završavaju na "ati" su izuzeci i ne mijenjanju se!!! (ćati, dati, lati, mati, rati, sati, tati, vati) -->
<!-- Riječi s četiri slova koja završavaju na "eti" su izuzeci i ne mijenjanju se!!! (četi, meti, peti, teti) -->
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti )ć[eu]" ReplaceBy="t ">
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti)\r?\nć[eu]" ReplaceBy="t">
<!-- Izuzeci su glagoli s četiri slova koji se mijenjaju (žeti, biti, liti, miti, piti, riti, šiti, viti) ! -->
<ERROR Find="\b[ž|Ž](eti )ć[eu]" ReplaceBy="et ">
<ERROR Find="\b[ž|Ž](eti)\r?\nć[eu]" ReplaceBy="et">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti )ć[eu]" ReplaceBy="it ">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti)\r?\nć[eu]" ReplaceBy="it">
<!-- Izuzeci koji se ne mijenjaju: -->
<!-- Ostaje "niti ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\bni(t )ć[eu]" ReplaceBy="ti ">
<ERROR Find="(?i)\bni(t)\r?\nć[eu]" ReplaceBy="ti">
<!-- Ostaje "naniti će" (SF serije: naniti ili nanoboti) -->
<ERROR Find="(nanit )će\b" ReplaceBy="naniti ">
<ERROR Find="(nanit)\r?\nće\b" ReplaceBy="naniti">
<!-- Ostaje "uvjeti će" -->
<ERROR Find="(?i)\buvje(t )će" ReplaceBy="ti ">
<ERROR Find="(?i)\buvje(t)\r?\nće" ReplaceBy="ti">
<!-- Izuzeci koji se ne mijenjaju, dodaje se "t": -->
<!-- Mijenja se "pati ću (ćeš, će, ćemo, ćete)" u "patit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(pati )ć[eu]" ReplaceBy="patit ">
<ERROR Find="(?i)\b(pati)\r?\nć[eu]" ReplaceBy="patit">
<!-- Mijenja se "jati ću (ćeš, će, ćemo, ćete)" u "jatit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(jati )ć[eu]" ReplaceBy="jatit ">
<ERROR Find="(?i)\b(jati)\r?\nć[eu]" ReplaceBy="jatit">
<!-- Mijenja se "leti ću (ćeš, će, ćemo, ćete)" u "letjet ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(leti )ć[eu]" ReplaceBy="letjet ">
<ERROR Find="(?i)\b(leti)\r?\nć[eu]" ReplaceBy="letjet">
<!-- Mijenja se "hiti ću (ćeš, će, ćemo, ćete)" u "hitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(hiti )ć[eu]" ReplaceBy="hitit ">
<ERROR Find="(?i)\b(hiti)\r?\nć[eu]" ReplaceBy="hitit">
<!-- Mijenja se "kiti ću (ćeš, će, ćemo, ćete)" u "kitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(kiti )ć[eu]" ReplaceBy="kitit ">
<ERROR Find="(?i)\b(kiti)\r?\nć[eu]" ReplaceBy="kitit">
<!-- Zamijeni sva "S" i "s" sa "SA", "Sa" i "sa" kad su na kraju prvog reda -->
<ERROR Find="\b(s)\b\r?\n" ReplaceBy="sa"> <!-- radi -->
<ERROR Find="[a-z]\s\b(S)\b\r?\n[a-z]" ReplaceBy="sa"> <!-- radi -->
<ERROR Find="[A-Z]\s\b(S)\b\r?\n[a-z]" ReplaceBy="SA"> <!-- radi -->
<ERROR Find="\b(S)\b\r?\n" ReplaceBy="Sa"> <!-- radi -->
<ERROR Find="\b(Sa)\b\r?\n[A-Z][A-Z]" ReplaceBy="SA"> <!-- radi -->
<ERROR Find="\b(Sa)\b\r?\n\x22[A-Z][A-Z]" ReplaceBy="SA"> <!-- radi -->
<!-- ovaj dio mora biti ispred ostalih "s" i "sa" -->
<!-- inače (s)\r?\n -> "sa" mijenja npr. "s"(novi red)"stilom" u "sa"(novi red)"satilom" -->
<!-- Zamijeni sva "Sa" i "sa" sa "S" i "s" ako ne slijedi riječ sa "š,Š,s,S,z,Z,ž,Ž,6,7" -->
<ERROR Find="\b(sa)\b\s[^sSšŠzZžŽ67\r?\n]" ReplaceBy="s">
<ERROR Find="\b(s \x22)[sSšŠzZžŽ67]" ReplaceBy="sa "">
<ERROR Find="\b(Sa)\b\s[^sSšŠzZžŽ67\r?\n]" ReplaceBy="S">
<ERROR Find="\b(SA)\b\s[^sSšŠzZžŽ67\r?\n]" ReplaceBy="S">
<ERROR Find="\b(S \x22)[sšzž67]" ReplaceBy="Sa "">
<ERROR Find="\b(S \x22)[SŠZŽ][a-z]" ReplaceBy="Sa "">
<ERROR Find="\b(S \x22)[SŠZŽ]" ReplaceBy="SA "">
<ERROR Find="\b(sa)\r?\n[^sSšŠzZžŽ67\x22]" ReplaceBy="s">
<ERROR Find="\b(sa)\r?\n\x22[abcčćdđefghijklmnopqrtuvwxyABCČĆDĐEFGHIJKLMNOPQRSTUVWXYZŽ]" ReplaceBy="s">
<ERROR Find="\b(s)\r?\n\x22[SšŠzZžŽ67]" ReplaceBy="sa">
<ERROR Find="\b(Sa)\r?\n[^sSšŠzZžŽ67\x22]" ReplaceBy="S">
<ERROR Find="\b(Sa)\r?\n\x22[abcčćdđefghijklmnopqrtuvwxyABCČĆDĐEFGHIJKLMNOPQRTUVWXYZŽ]" ReplaceBy="S">
<ERROR Find="\b(SA)\r?\n[^sSšŠzZžŽ67\x22]" ReplaceBy="S">
<ERROR Find="\b(SA)\r?\n\x22[abcčćdđefghijklmnopqrstuvwxyABCČĆDĐEFGHIJKLMNOPQRTUVWXYZŽ]" ReplaceBy="S">
<ERROR Find="\b(S)\r?\n\x22[sšzž67]" ReplaceBy="Sa">
<ERROR Find="\b(S)\r?\n\x22[SŠZŽ]" ReplaceBy="SA">
<ERROR Find="\b(S)\r?\n\x22[SŠZŽ][a-z]" ReplaceBy="Sa">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ sa "š,Š,z,Z,ž,Ž,s,S" ili broj "6, 7, 6x, 7x, 16, 17, 1xx, 1xxx..." -->
<ERROR Find="\b(S )\b[šzžs][a-z]" ReplaceBy="Sa ">
<ERROR Find="\b(S )\b[ŠZŽS][a-z]" ReplaceBy="Sa ">
<ERROR Find="\b(S )\b[ŠZŽS][A-Z]" ReplaceBy="SA ">
<ERROR Find="\b(s )\b[šŠzZžŽsS67]" ReplaceBy="sa ">
<!-- ...bilo koji broj u istom redu koji počinje sa 6 ili 7 -->
<ERROR Find="[A-Z]( S )[67]" ReplaceBy=" SA ">
<ERROR Find="\b(S )[67]" ReplaceBy="Sa ">
<!-- ...16 ili 17 u istom redu -->
<ERROR Find="\b(s 1)[67]\b" ReplaceBy="sa 1">
<ERROR Find="[A-Z]( S 1)[67]\b" ReplaceBy=" SA 1">
<ERROR Find="\b(S 1)[67]\b" ReplaceBy="Sa 1">
<!-- ...stotice u istom redu koje počinju sa 1 -->
<ERROR Find="\b(s )[1][0-9][0-9]\b" ReplaceBy="sa ">
<ERROR Find="[A-Z]( S )[1][0-9][0-9]\b" ReplaceBy=" SA ">
<ERROR Find="\b(S )[1][0-9][0-9]\b" ReplaceBy="Sa ">
<!-- ... 100000 u istom redu - 100000000 nisu uključeni jer se obično pišu s točkama: 100.000.000 :-) -->
<ERROR Find="\b(s )[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="sa ">
<ERROR Find="[A-Z]( S )[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy=" SA ">
<ERROR Find="\b(S )[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="Sa ">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi broj "6, 7, 6x, 7x, 16, 17, 1xx, 1xxx..." U DRUGOM REDU -->
<!-- ...bilo koji broj u drugom redu koji počinje sa 6 ili 7 -->
<ERROR Find="\b(s)\b\r?\n[67]" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[67]" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[67]" ReplaceBy="Sa">
<!-- ...16 ili 17 u drugom redu -->
<ERROR Find="\b(s)\r?\n[1][67]\b" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[1][67]\b" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[1][67]\b" ReplaceBy="Sa">
<!-- ...stotice u drugom redu koje počinju s 1 -->
<ERROR Find="\b(s)\r?\n[1][0-9][0-9]\b" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[1][0-9][0-9]\b" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[1][0-9][0-9]\b" ReplaceBy="Sa">
<!-- ... 100000 u drugom redu - 100000000 nisu uključeni jer se obično pišu s točkama: 100.000.000 :-) -->
<ERROR Find="\b(s)\r?\n[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="Sa">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ "mnom" -->
<ERROR Find="\b(s)\b\s(\mnom)\b" ReplaceBy="sa">
<ERROR Find="\b(S)\b\s(\mnom)\b" ReplaceBy="Sa">
<ERROR Find="\b(S)\b\s(\MNOM)\b" ReplaceBy="SA">
<ERROR Find="\b(s ili bez)\b" ReplaceBy="sa ili bez">
<ERROR Find="\b(S ili bez)\b" ReplaceBy="Sa ili bez">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ "mnom" U DRUGOM REDU -->
<ERROR Find="\b(s)\r?\n(\mnom)\b" ReplaceBy="sa">
<ERROR Find="\b(S)\r?\n(\mnom)\b" ReplaceBy="Sa">
<ERROR Find="\b(S)\r?\n(\MNOM)\b" ReplaceBy="SA">
<ERROR Find="\b(s)\r?\n(ili bez)\b" ReplaceBy="sa">
<ERROR Find="\b(S)\r?\n(ili bez)\b" ReplaceBy="Sa">
<!-- Zamijeni sva "samnom" u "sa mnom" -->
<ERROR Find="\b(samnom)\b" ReplaceBy="sa mnom">
<ERROR Find="\b(Samnom)\b" ReplaceBy="Sa mnom">
<ERROR Find="\b(SAMNOM)\b" ReplaceBy="SA MNOM">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ "ps..." ili "ks..." -->
<ERROR Find="\b(s ps)" ReplaceBy="sa ps">
<ERROR Find="\b(s Ps)" ReplaceBy="sa Ps">
<ERROR Find="\b(S ps)" ReplaceBy="Sa ps">
<ERROR Find="\b(S Ps)" ReplaceBy="Sa Ps">
<ERROR Find="\b(S PS)" ReplaceBy="SA PS">
<ERROR Find="\b(s ks)" ReplaceBy="sa ks">
<ERROR Find="\b(s Ks)" ReplaceBy="sa Ks">
<ERROR Find="\b(S Ks)" ReplaceBy="Sa Ks">
<ERROR Find="\b(S ks)" ReplaceBy="Sa ks">
<ERROR Find="\b(S KS)" ReplaceBy="SA KS">
<ERROR Find="\b(s)\b\r?\n(\ps)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(psa)" ReplaceBy="ps">
<ERROR Find="\b(s)\b\r?\n(\Ps)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(Psa)" ReplaceBy="Ps">
<ERROR Find="\b(S)\b\r?\n(\ps)" ReplaceBy="Sa">
<ERROR Find="\b(S)\b\r?\n(\PS)" ReplaceBy="SA">
<ERROR Find="\bSA\b\r?\n(PSA)" ReplaceBy="PS">
<ERROR Find="\b(S)\b\r?\n(\Ps)" ReplaceBy="Sa">
<ERROR Find="\b(s)\b\r?\n(\PS)" ReplaceBy="sa">
<ERROR Find="\b(s)\b\r?\n(\ks)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(ksa)" ReplaceBy="ks">
<ERROR Find="\b(s)\b\r?\n(\Ks)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(Ksa)" ReplaceBy="Ks">
<ERROR Find="\b(S)\b\r?\n(\ks)" ReplaceBy="Sa">
<ERROR Find="\b(S)\b\r?\n(\KS)" ReplaceBy="SA">
<ERROR Find="\bSA\b\r?\n(KSA)" ReplaceBy="KS">
<ERROR Find="\b(S)\b\r?\n(\Ks)" ReplaceBy="Sa">
<ERROR Find="\b(s)\b\r?\n(\KS)" ReplaceBy="sa">
<!-- Rijetkosti -->
<!-- Izuzetak za "I" s "l" kada slijedi: Ionako, Ijedan, Iole -->
<ERROR Find="\b(lonako)\b" ReplaceBy="Ionako">
<ERROR Find="\b(ljedan)\b" ReplaceBy="Ijedan">
<ERROR Find="\b(ljedn)" ReplaceBy="Ijedn">
<ERROR Find="\b(lole)\b" ReplaceBy="Iole">
<ERROR Find="[\.][\s](lako)\b" ReplaceBy="Iako">
<ERROR Find="(-lako)\b" ReplaceBy="-Iako">
<ERROR Find="(- lako)\b" ReplaceBy="- Iako">
<ERROR Find="[a-z][\s](Iako)\b" ReplaceBy="lako">
<ERROR Find="\.\r?\n(lako)\b" ReplaceBy="Iako">
<ERROR Find="^(lako)\b" ReplaceBy="Iako">
<ERROR Find="\b(lon)\b" ReplaceBy="Ion">
<ERROR Find="\b(lons)" ReplaceBy="Ions">
<ERROR Find="\b(loni)" ReplaceBy="Ioni">
<ERROR Find="\b(lono)" ReplaceBy="Iono">
<ERROR Find="\b(Mls)" ReplaceBy="Mis">
<ERROR Find="\b(Nlj)" ReplaceBy="Nij">
<ERROR Find="\b(Nlk)" ReplaceBy="Nik">
<ERROR Find="\b(Nls)" ReplaceBy="Nis">
<ERROR Find="\b(Nlš)" ReplaceBy="Niš">
<ERROR Find="\b(ALi)" ReplaceBy="Ali">
<!-- Kad se NEODREĐENE ZAMJENICE slažu s veznicima i, ni (itko, išta, ikakav, nitko, ništa, nikakav…) -->
<!-- koriste se s prijedlozima te se oni umeću između veznika i odnosne zamjenice -->
<ERROR Find="\b(od nikoga)\b" ReplaceBy="ni od koga">
<ERROR UseReOnlyToFind="False" Find="\b(od)\r?\n(nikoga)\b" ReplaceBy="ni od koga">
<ERROR Find="\b(za ništa)\b" ReplaceBy="ni za što">
<ERROR UseReOnlyToFind="False" Find="\b(za)\r?\n(ništa)\b" ReplaceBy="ni za što">
<ERROR Find="\b(pred ičim)\b" ReplaceBy="i pred čim">
<ERROR UseReOnlyToFind="False" Find="\b(pred)\r?\n(ičim)\b" ReplaceBy="i pred čim">
<ERROR Find="\b(pred ničim)\b" ReplaceBy="ni pred čim">
<ERROR UseReOnlyToFind="False" Find="\b(pred)\r?\n(ničim)\b" ReplaceBy="ni pred čim">
<ERROR Find="\b(s nikakvim)\b" ReplaceBy="ni s kakvim">
<ERROR UseReOnlyToFind="False" Find="\b(s)\r?\n(nikakvim)\b" ReplaceBy="ni s kakvim">
<ERROR Find="\b(s nikim)\b" ReplaceBy="ni s kim">
<ERROR UseReOnlyToFind="False" Find="\b(s)\r?\n(nikim)\b" ReplaceBy="ni s kim">
<ERROR Find="\b(s ikim)\b" ReplaceBy="i s kim">
<ERROR UseReOnlyToFind="False" Find="\b(s)\r?\n(ikim)\b" ReplaceBy="i s kim">
<ERROR Find="\b(uz nikakav)\b" ReplaceBy="ni uz kakav">
<ERROR UseReOnlyToFind="False" Find="\b(uz)\r?\n(nikakav)\b" ReplaceBy="ni uz kakav">
<ERROR Find="\b(zbog ničega)\b" ReplaceBy="ni zbog čega">
<ERROR UseReOnlyToFind="False" Find="\b(zbog)\r?\n(ničega)\b" ReplaceBy="ni zbog čega">
<!-- <ERROR Find="\b(III)\b" ReplaceBy="III"> -->
<!-- Lokacija u USA "Iowa" -->
<ERROR Find="\b(lowa)\b" ReplaceBy="Iowa">
<ERROR Find="\b(lowe)\b" ReplaceBy="Iowe">
<ERROR Find="\b(lowi)\b" ReplaceBy="Iowi">
<ERROR Find="\b(lowu)\b" ReplaceBy="Iowu">
<!-- Ime ili prezime "Lloyd" -->
<ERROR Find="\b(Iloyd)" ReplaceBy="Lloyd"> -->
<!-- Ispravak nule i velikog 'O' -->
<ERROR Find="[0-9](O)" ReplaceBy="0">
<ERROR Find="[0-9](\.O)" ReplaceBy=".0">
<ERROR Find="[0-9](,O)" ReplaceBy=",0">
<ERROR Find="[A-Z](0)" ReplaceBy="O">
<ERROR Find="\b(0)[A-Za-z]" ReplaceBy="O">
<!-- Briši razmak ispred zareza -->
<ERROR Find="[A-ZĆČĐŠŽa-zćčđšž]( ,)" ReplaceBy=",">
<!-- Dodaj razmak iza zareza -->
<ERROR Find="(,)[A-ZĆČĐŠŽa-zćčđšž]" ReplaceBy=", ">
<!-- Razmak iza točke -->
<!-- <ERROR Find="[a-su-zá-úńä-ü](\.)[^(\s\n\.\*\?\!\x22\,)]" ReplaceBy=". "> --> <!-- osim kad je zadnje t (rijec kolt) -->
<!-- Oznaka za kalibar. Npr. "Colt .45" -->
<!-- Da bi radilo, da bi ovaj razmak bio dopušten, u SW idite Alt+I i odčekirajte "Razmaci ispred točke" -->
<ERROR Find="(t\.)[0-9][0-9]" ReplaceBy="t .">
<!-- Razmak iza uzastopnih točaka (npr. "...") -->
<ERROR Find="(\.\.)[^(\x22\s\n\.\?\!\,)]" ReplaceBy=".. ">
<!-- Razmak iza 3 točke ("...") -->
<ERROR Find="(\.\.\.)[\x22][a-z]" ReplaceBy="... ">
<ERROR Find="(\.\.\.)[^(\x22\s\n\.\?\!\,)]" ReplaceBy="... ">
<!-- Zamijeni dvije točke trima ("..")->("...") -->
<ERROR Find="^(\.\.)[^\.]" ReplaceBy="..."> <!-- na početku 1. reda, ne slijedi točka -->
<ERROR Find="[^\.](\.\.)[^\.]" ReplaceBy="..."> <!-- ne prethodi i ne slijedi točka -->
<ERROR Find="[^\.](\.\.)$" ReplaceBy="..."> <!-- ne prethodi točka, na kraju reda -->
<!-- Briši razmak iza "..." kad je na početku 1. reda. Izbrišite ovu liniju ukoliko vam ne odgovara -->
<ERROR UseREOnlyToFind="False" Find="^(\.\.\.) " ReplaceBy="...">
<ERROR UseREOnlyToFind="False" Find="^(\x22\.\.\.) " ReplaceBy=""...">
<!-- Briši razmak iza "..." kad je na početku 2. reda. Izbrišite ovu liniju ukoliko vam ne odgovara -->
<ERROR Find="\r?\n(\.\.\.\s)" ReplaceBy="...">
<ERROR Find="\r?\n\x22(\.\.\.\s)" ReplaceBy="...">
<!-- Briši "," prije "..." -->
<ERROR Find="(\,\.\.\.)" ReplaceBy="...">
<!-- Briši "," poslije "..." -->
<ERROR Find="(\.\.\.\,)" ReplaceBy="...">
<!-- Briši "- " prije "..." -->
<ERROR Find="(\-\s\.\.\.)" ReplaceBy="-...">
<ERROR Find="(\-\.\.\.\s)" ReplaceBy="-...">
<!-- Zamijeni "- -" sa "..." -->
<ERROR Find="(\-\s\-)" ReplaceBy="... ">
</SWOCR>
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!-- -->
<!-- Default values: -->
<!-- -->
<!-- UseRE = True (use Regular Expressions) -->
<!-- UseREOnlyToFind = True (put the part that -->
<!-- is not a RE between parenthesis!) -->
<!-- -->
<!-- If UseRE is set to false then you can use -->
<!-- the following parameters, otherwise they -->
<!-- will be ignored: -->
<!-- -->
<!-- CaseSensitive (Default = False) -->
<!-- WholeWord (Default = False) -->
<!-- PreserveCase (Default = False) -->
<!-- ----------------------------------------- -->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Zamijeni sve glagole s 5 i više slova "**(a)(e)(i)ti ću" s "**(a)(e)(i)t ću" i "**(a)(e)(i)ti će*" s "**(a)(e)(i)t će*" -->
<!-- Glagoli i imenice s četiri slova koja završavaju na "ati" su izuzeci i ne mijenjanju se!!! (ćati, dati, lati, mati, rati, sati, tati, vati) -->
<!-- Riječi s četiri slova koja završavaju na "eti" su izuzeci i ne mijenjanju se!!! (četi, meti, peti, teti) -->
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti )ć[eu]" ReplaceBy="t ">
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti)\r?\nć[eu]" ReplaceBy="t">
<!-- Izuzeci su glagoli s četiri slova koji se mijenjaju (žeti, biti, liti, miti, piti, riti, šiti, viti) ! -->
<ERROR Find="\b[ž|Ž](eti )ć[eu]" ReplaceBy="et ">
<ERROR Find="\b[ž|Ž](eti)\r?\nć[eu]" ReplaceBy="et">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti )ć[eu]" ReplaceBy="it ">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti)\r?\nć[eu]" ReplaceBy="it">
<!-- Izuzeci koji se ne mijenjaju: -->
<!-- Ostaje "niti ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\bni(t )ć[eu]" ReplaceBy="ti ">
<ERROR Find="(?i)\bni(t)\r?\nć[eu]" ReplaceBy="ti">
<!-- Ostaje "naniti će" (SF serije: naniti ili nanoboti) -->
<ERROR Find="(nanit )će\b" ReplaceBy="naniti ">
<ERROR Find="(nanit)\r?\nće\b" ReplaceBy="naniti">
<!-- Ostaje "uvjeti će" -->
<ERROR Find="(?i)\buvje(t )će" ReplaceBy="ti ">
<ERROR Find="(?i)\buvje(t)\r?\nće" ReplaceBy="ti">
<!-- Izuzeci koji se ne mijenjaju, dodaje se "t": -->
<!-- Mijenja se "pati ću (ćeš, će, ćemo, ćete)" u "patit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(pati )ć[eu]" ReplaceBy="patit ">
<ERROR Find="(?i)\b(pati)\r?\nć[eu]" ReplaceBy="patit">
<!-- Mijenja se "jati ću (ćeš, će, ćemo, ćete)" u "jatit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(jati )ć[eu]" ReplaceBy="jatit ">
<ERROR Find="(?i)\b(jati)\r?\nć[eu]" ReplaceBy="jatit">
<!-- Mijenja se "leti ću (ćeš, će, ćemo, ćete)" u "letjet ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(leti )ć[eu]" ReplaceBy="letjet ">
<ERROR Find="(?i)\b(leti)\r?\nć[eu]" ReplaceBy="letjet">
<!-- Mijenja se "hiti ću (ćeš, će, ćemo, ćete)" u "hitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(hiti )ć[eu]" ReplaceBy="hitit ">
<ERROR Find="(?i)\b(hiti)\r?\nć[eu]" ReplaceBy="hitit">
<!-- Mijenja se "kiti ću (ćeš, će, ćemo, ćete)" u "kitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(kiti )ć[eu]" ReplaceBy="kitit ">
<ERROR Find="(?i)\b(kiti)\r?\nć[eu]" ReplaceBy="kitit">
</SWOCR>
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!-- -->
<!-- Default values: -->
<!-- UseRE = True (use Regular Expressions) -->
<!-- UseREOnlyToFind = True (put the part that -->
<!-- is not a RE between parenthesis!) -->
<!-- If UseRE is set to false then you can use -->
<!-- the following parameters, otherwise they -->
<!-- will be ignored: -->
<!-- CaseSensitive (Default = False) -->
<!-- WholeWord (Default = False) -->
<!-- PreserveCase (Default = False) -->
<!-- ----------------------------------------- -->
<!-- Prilagodio i dodao nove opcije: -->
<!-- MilanRS -->
<!----------------------------------------------->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Replace all "l" by "I" in the middle of any uppercase word -->
<ERROR Find="[A-ZÁ-Ú](l)[A-ZÁ-Ú]" ReplaceBy="I">
<!-- Replace all "I" by "l" in the middle of any lowercase word -->
<ERROR Find="[a-zá-ú](I)[a-zá-ú]" ReplaceBy="l">
<!-- "1 :", "2 :"... "n :" to "n:" -->
<ERROR Find="\d( :)" ReplaceBy=":">
<!-- ",,," or similar to "..." -->
<ERROR UseREOnlyToFind="False" Find=",{2,}" ReplaceBy="...">
<!-- "--" or more to "..." -->
<ERROR UseREOnlyToFind="False" Find="-{2,}" ReplaceBy="...">
<ERROR Find="--" ReplaceBy="...">
<!-- Apostrophes ("\x22" is '"' character) -->
<ERROR Find="[´`“”]" ReplaceBy="'">
<ERROR UseREOnlyToFind="False" Find="''" ReplaceBy=""">
<!-- '"' more than two times together is replaced by only one '"' -->
<ERROR UseREOnlyToFind="False" Find="\x22{2,}" ReplaceBy=""">
<!-- Brisanje crte - na početku 1. reda kada ima dva reda -->
<ERROR Find="^(- )[A-ZŠĆŽČĐ]" ReplaceBy="">
<ERROR Find="^(-)[A-ZŠĆŽČĐ]" ReplaceBy="">
<ERROR UseREOnlyToFind="False" Find="^- \x22" ReplaceBy=""">
<ERROR UseREOnlyToFind="False" Find="^-\x22" ReplaceBy=""">
<!-- Razmak iza crte - na početku 2. reda -->
<ERROR Find="[\n](-)[A-ZŠĆŽČĐ\x22]" ReplaceBy="- ">
<!-- Korigovanje crte - kad je u sredini prvog reda -->
<ERROR Find="[\.\?\!\x22]( -)[A-ZŠĆŽČĐ\x22]" ReplaceBy=" - ">
<!-- Smart space after dot -->
<ERROR Find="[a-zá-úńä-ü](\.)[^(\s\n\.\?\!\x22)]" ReplaceBy=". ">
<ERROR Find="(\.)[A-ZŠĆŽČĐ]" ReplaceBy=". ">
<ERROR Find="(www\. )" ReplaceBy="www.">
<ERROR Find="(\. com)" ReplaceBy=".com">
<ERROR Find="(\. net)" ReplaceBy=".org">
<ERROR Find="(\. org)" ReplaceBy=".org">
<ERROR Find="(\. yu)" ReplaceBy=".yu">
<ERROR Find="(\. hr)" ReplaceBy=".hr">
<!-- Smart space after zarez -->
<ERROR Find="[A-ZŽĆČŠĐa-zžčćšđá-úńä-ü](\,)[^(\s\n\,\?\!)]" ReplaceBy=", ">
<!-- Space after last of some consecutive dots (eg. "...") -->
<ERROR Find="(\.\.)[^(\s\n\.\?\!)]" ReplaceBy=".. ">
<ERROR Find="[a-z](!)[A-Z]" ReplaceBy="! ">
<!-- Delete space after "..." that is at the beginning of the line. You may delete this line if you don't like it -->
<ERROR UseREOnlyToFind="False" Find="^(\.\.\.) " ReplaceBy="...">
<ERROR Find="[\S](\. \x22)" ReplaceBy="."">
<ERROR Find="[\S\.\.\.]( \x22$)" ReplaceBy=""">
</SWOCR>
2 pitanja:
1.) Da li sve ove skripte mogu da spakujem u jedan fajl i da ga ucitam u OCR Scripts, gde mi trenutno iz nekog razloga stoji Espanol ?
Ta skripta o kojoj pričaš je bila na mojoj stranici, ali kako su zabranjeni linkovi 8), imaš je i na prethodnoj stranici (post koji počinje: "Evo "male" RegEx skripte za popravak na hrvatski jezik. bla bla bla ;D)
2.) Da li seneko seca, bio je link sa OCR skriptom za SW za CRO koji ispravlja gomilu stvari, secam se da je na tom linku bio i software za ispravljanje iz SRB->CRO ?
MilaneDaj mi rečenicu za koju ne radi, da pokušam popraviti. Ovu gore rečenicu koju sam naveo odradilo je kako sam naveo. Išao sam copy/paste.
Ne radi skirpta to sa italik varijantom.
Makar ova koja je postavljena ovde na sajtu.
Strider, linkovi su zabranjeni ako vode na sajt sa piratskim i nelegalnim sadržajima, nacionalističkim i sl. Ako nemaš ništa protivzakonito na sajtu, napiši link.Hmpf, ne mogu stavit moj site, ima linkove za Gustava :o, ali obzirom na pravila, moga bi se stavit link za B3S Subtranslator. Nije ilegalno, ne prodaje se, nisu u pitanju ni linkovi za download, pa čak ni titlova tamo nema. Jel, Šimac? Moglo bi, jel' da? 8)
Milan RS
Daj mi rečenicu za koju ne radi, da pokušam popraviti.
Ne skida ovaj prvi (kad bolje razmislim vidim da sam krivo napisao u prvom postu. Sorry). Znaci ako su slova italic ne radi skripta koja skida prvi razmak u recenici.Ovaj tvoj post mi je promakao kad sam prošli put gledao.
- Prestani se igrati.
- Slušaj, kasno je. ==>Originalna rečenica.
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!----------------------------------------------->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Brisanje crte - na početku 1. reda kada ima dva reda -->
<ERROR Find="^(- )[A-ZŠĆŽČĐa-zšćžčđ]" ReplaceBy="">
<ERROR Find="^(-)[A-ZŠĆŽČĐa-zšćžčđ]" ReplaceBy="">
</SWOCR>
pa probaj. Ako radi, problem je negdi drugo u skripti.
Ekipa: Kriv sam. Koristio sam skriptu koju je Kugi radio. Sad sam ubacio od Milan RS i sve radi samo tako.Odlično, neka smo i to riješili.
2 pitanja:
1.) Da li sve ove skripte mogu da spakujem u jedan fajl i da ga ucitam u OCR Scripts, gde mi trenutno iz nekog razloga stoji Espanol ?
Ne može više skripti (svaka ima svoje zaglavlje) ići u jedan fajl.
Moraš uzeti jednu pa dodavati iz drugih šta ti treba a nema u prvoj.
Pročitaj ponovo postove iz ove teme, pa napiši šta ti precizno treba, a ja ću se potruditi da to iskombinujem i dostavim.
evo jos jedne vrlo korisne skripte, c/p sa SW foruma
preporuka za one koji prevode preko eng. titla tj. samo
promijene eng. riječi s našima.
Skripta provjerava koji titlovi imaju više od 25 znakova po sekundi
(uključite mod prevođenja u SW jer tamo stavlja log za te titlove)
Cilj skripte je lakše čitanje titlova, znači da se isprave oni koji
prekratko traju/imaju previše znakova ili riječi u odnosu na trajanjeKod: [Odaberi]// --= CPS Comment (in translation) =--
// Add info about the Readability Rythm
// of the original sub (Characters per second)
// as a comment [...] in the Translation.
// ------------------------------------
// Made by Buzcatcher - feb.2007
// http://subtitle-spotting.blogspot.com/
program CPScomment;
// -------------------------------------
const
//FYI: 25cps = 40ms spotting for each char ; 20cps=50ms/char. etc.
CPSlimit = 25; //Change as you see fit.
CRLF = ''#13''#10;
var
i, j, n, pln, p1, p2 : Integer;
duration, sublength, cps : Integer;
subtxt, subtrans, report : String;
begin
if not IsTranslatedloaded then
exit;
n := GetSubtitleCount-1;
for i := 0 to n do
begin
subtxt := GetSubtitleText(i);
sublength := length(subtxt);
duration := GetSubtitleFinalTime(i) - GetSubtitleInitialTime(i);
//pure stripped text length doesn't count the CRLF in 2 line subs
pln := pos(''#13''#10, subtxt);
if (pln>0) then
sublength := sublength - 2;
cps := round((sublength * 1000)/ duration); //spotting spead.
if (cps > CPSlimit) then
begin
// To update rather than double the cps info.
subtrans := GetSubtitleTrans(i);
p1 := pos('[*', subtrans);
p2 := pos('*]', subtrans);
while ((p1>0) and (p2>0)) do
begin
subtrans := copy(subtrans, p2+2, length(subtrans)-p2);
p1 := pos('[*', subtrans);
p2 := pos('*]', subtrans);
end;
SetSubtitleTrans(i, subtrans);
//Adding [*xx C/sec*] in the translation text.
report := '[*' + IntToStr(cps) + ' Car/s*]';
subtrans := report + GetSubtitleTrans(i);
SetSubtitleTrans(i, subtrans);
j := j + 1;
end;
end;
MsgBox(IntToStr(j) + ' Subtitles over ' + IntToStr(CPSlimit) + ' char/sec' + CRLF + 'Noted in Translation File', '&Ok', '', '', $20);
end.
// --= CPS Comment (in translation) =--
// Add info about the Readability Rythm
// of the original sub (Characters per second)
// as a comment [...] in the Translation.
// ------------------------------------
// Made by Buzcatcher - feb.2007
// http://subtitle-spotting.blogspot.com/
program CPScomment;
// -------------------------------------
const
//FYI: 25cps = 40ms spotting for each char ; 20cps=50ms/char. etc.
CPSlimit = 25; //Change as you see fit.
CRLF = ''#13''#10;
var
i, j, n, pln, p1, p2 : Integer;
duration, sublength, cps : Integer;
subtxt, subtrans, report : String;
begin
if not IsTranslatedloaded then
exit;
n := GetSubtitleCount-1;
for i := 0 to n do
begin
subtxt := GetSubtitleText(i);
sublength := length(subtxt);
duration := GetSubtitleFinalTime(i) - GetSubtitleInitialTime(i);
//pure stripped text length doesn't count the CRLF in 2 line subs
pln := pos(''#13''#10, subtxt);
if (pln>0) then
sublength := sublength - 2;
cps := round((sublength * 1000)/ duration); //spotting spead.
if (cps > CPSlimit) then
begin
// To update rather than double the cps info.
subtrans := GetSubtitleTrans(i);
p1 := pos('[*', subtrans);
p2 := pos('*]', subtrans);
while ((p1>0) and (p2>0)) do
begin
subtrans := copy(subtrans, p2+2, length(subtrans)-p2);
p1 := pos('[*', subtrans);
p2 := pos('*]', subtrans);
end;
SetSubtitleTrans(i, subtrans);
//Adding [*xx C/sec*] in the translation text.
report := '[*' + IntToStr(cps) + ' Car/s*]';
subtrans := report + GetSubtitleTrans(i);
SetSubtitleTrans(i, subtrans);
j := j + 1;
end;
end;
MsgBox(IntToStr(j) + ' Subtitles over ' + IntToStr(CPSlimit) + ' char/sec' + CRLF + 'Noted in Translation File', '&Ok', '', '', $20);
end.
Ovo gore kopiraj u notepad i sačuvaš pod Provjera broja znakova.PAS i kopiraj taj file u C:\Program Files\URUSoft\Subtitle Workshop\PascalScripts direktorij. Otvoriš Subtitle Workshop i pod Tools--> Pascal scripts će ti se nalaziti taj "Provjera broja znakova". Da bi ova određena skripta radila svoju funkciju mora ti biti otvoren prijevod i uključen Translator mode (Ctrl-U ili Edit-->Translation-->Translator mode). Dakle, kad ti je otvoren prijevod i uključen translator mode klikom na ono "Provjera broja znakova" pod Pascal scripts pokreće se ta skripta i vidjeti ćeš poruku u kojoj ti javi koliko ti redova ima više od 25 znakova. Koji su to točno redovi vidjeti ćeš u onom desnom dijelu prijevoda gdje će ti kod svakog takvog reda pisati [*XX Car/s*]. Nadam se da si sve uspio pohvatati...
Sredio sam radi tj obelezila je sve recenice, ali kad taj prevod saveujem svugde buse untranslated subtitle i prevoda nema..........Kad radiš u Translator modu onda imaš 2 otvorena prijevoda odjednom. Ti si sačuvao ovaj drugi prijevod, gdje ti je zapravo samo "- Untranslated subtitle -". On ti nije bitan, bitan ti je onaj prvi, onaj lijevo. Njega sačuvaš tako da ideš na Save-->Save original. Ti si vjerojatno sačuvao ovaj desni, prazni prijevod pod istim imenom kao i ovaj lijevo, pa ti je sačuvao preko postojećeg... Ovaj desni prijevod ne trebaš uopće sačuvati, kad ti izbaci onu poruku hoćeš li sačuvati ili ga sačuvaš pod nekih nebitnim imenom. Samo moraš paziti koji ti je od ta 2 prijevoda onaj pravi "Original", a koji ti je taj "Translated", odnosno onaj u koji ti skripta zapisuje te brojeve... Valjda si shvatio... :D
Milane, jeli može jedna jednostavna skripta?Izvini što nisam odgovorio ovako dugo, ali nisam aktivno učestvovao na ovom forumu skoro mjesec dana (pisao postove). Moram se i ja nekad odmoriti :)
Da ovo: rekao sam joj. -rekao si joj? -da, rekao sam.
u ovo: Rekao sam joj. -Rekao si joj? -Da, rekao sam.
Ili takve slične stvari, tj. da ako je prvo slovo na početku rečenice malo da ga se stavi veliko.
jel ima kakva opcija da se jedan redak ako je predugacak prelama u dva?
Noah, što se tiče prelamanja redova, u SW možeš selektovati sve redove i ići Ctrl+E i on će duge redove prelomiti u dva, ali će i kratkeNeće to napraviti ukoliko ima razmak iza crte u drugom redu:
Koliko komada zeli?
-Dvadeset.
prebaciti u jedan
Koliko komada zeli? -Dvadeset.
To nije baš poželjno.
Moze li da se prepravi originalna skripta
Copy text to translation. Made by Bedazzle.
ali da bude u obrntom pravcu
// Copy text to translation. Made by Bedazzle.
// naopaka varijanta
program CopyToOriga;
// ---------------------------------------------
var
n: Integer;
i: Integer;
txt: String;
begin
n := GetSubtitleCount;
for i := 0 to n-1 do
begin
if (IsSubtitleSelected(i) = true) then
begin
// txt := GetSubtitleText(i);
// SetSubtitleTrans(i, txt);
txt := GetSubtitleTrans(i);
SetSubtitleText(i, txt);
end;
end;
end.
<ERROR Find="(HRVATSKI)" ReplaceBy="SRPSKI">
for a := GetSubtitleCount-1 downto 0 do
begin
if Length(GetSubtitleText(a)) > 20 then
Zna li neko za skriptu koja prebroji broj znakova u dva reda jednog titla, pa da ih označi ako je u jednom mnogo više nego u drugom?
Ako npr. prvi red ima 10 a drugi 35 znakova ili obrnuto, volio bih da budu označeni da odradim Ctrl+E.
// *********************************************************
// skarabudžio Petko - 21.01 MMIX
// ---------------------------------------------------------
// poredi dužine prvog i drugog reda titla u originalu
// a u prevodu obeležava titlove koji imaju veæu razliku
// u dužinama prve i druge linije
// =========================================================
// PAŽNJA! PAŽNJA! PAŽNJA!
// Prevod se briše bez pitanja pa vodite raèuna
// *********************************************************
program PorediDuzine;
const
iMaxRazlika = 10;
var
iRed, iDuzPrve, iDuzDruge: Integer;
cr: string;
begin
cr := chr(13) + chr(10);
for iRed := GetSubtitleCount-1 downto 0 do
begin
SetSubtitleTrans(iRed, '');
iDuzPrve := pos(cr, GetSubtitleText(iRed));
if iDuzPrve > 1 then
begin
iDuzDruge := Length(GetSubtitleText(iRed)) - iDuzPrve;
if abs(iDuzPrve - iDuzDruge) > iMaxRazlika then SetSubtitleTrans(iRed, '*$ razlika u duzinama zadovoljena!');
end;
end;
end.
Hvala. Nisam znao za tu opciju.
Ali opet trebao bi svaki prevod da pregledam da bi nasao gdje je greska. Sa skriptom bi bilo jednostavnije.
Šta ako pod rednim brojem 2, rečenicu izgovara druga osoba!?
dobio bi sledeće
00:00:00,000 --> 00:00:02,001
Ovo je
titl.
A pravilno je
00:00:00,000 --> 00:00:02,001
Ovo je
- titl.
00:00:00,000 --> 00:00:02,001
Ovo je
titl.
A pravilno je
00:00:00,000 --> 00:00:02,001
Ovo je
- titl.
Mislim da bi u ovom slucaju izpravno bilo ovako:
00:00:00,000 --> 00:00:02,001
Ovo je...
- titl.
Da, hvala, video sam tu opciju.
Ali sam mislio da posle bilo kog znaka interpukcije dođe razmak,
a ne da mu ja svaki put zadajem iza kog pojedinačno će on izvršavati naredbu.
Drugo, jako sam zainteresovan za te OCR rečnike koje si oformio,
trenutno radim na jednom. Ima oko dve hiljade reči.
Citat:00:00:00,000 --> 00:00:02,001
Ovo je
titl.
A pravilno je
00:00:00,000 --> 00:00:02,001
Ovo je
- titl.Citat:Mislim da bi u ovom slucaju izpravno bilo ovako:
00:00:00,000 --> 00:00:02,001
Ovo je...
- titl.
He, he, he, dobar si!
naučiću još nešto!
Vidi...
Nikad to nećeš moći da rešiš sa nikakvim skriptama!!!
Evo ti primera...
Uzmi prevode za najbolju seriju koja se emituje----
Imaš dva prevodioca.
Ne znaš ko bolje prevodi po pitanju poznavanja jezika!
Ali...
Kod jednog imaš 600 linija a kod drugog 350 linija! (lupam sada brojke napamet)
Kao i onaj gornji primer koji sam ti napisao..... nijedna skirpta to ne može da reši....
Osim da....
U svakoj liniji imaš "-"
primer
- Ovo je
- titl.
A to se inače kosi sa svim pravilima prevođenja!
Imaš komandu u SW... sa kojom možeš da produžiš trajanje postojećih linija.
(samo mala pomoć. SW pa Help pa search. Extend length )
>:dj
Citat:00:00:00,000 --> 00:00:02,001
Ovo je
titl.
A pravilno je
00:00:00,000 --> 00:00:02,001
Ovo je
- titl.Citat:Mislim da bi u ovom slucaju izpravno bilo ovako:
00:00:00,000 --> 00:00:02,001
Ovo je...
- titl.
He, he, he, dobar si!
naučiću još nešto!
Vidi...
Nikad to nećeš moći da rešiš sa nikakvim skriptama!!!
Evo ti primera...
Uzmi prevode za najbolju seriju koja se emituje----
Imaš dva prevodioca.
Ne znaš ko bolje prevodi po pitanju poznavanja jezika!
Ali...
Kod jednog imaš 600 linija a kod drugog 350 linija! (lupam sada brojke napamet)
Kao i onaj gornji primer koji sam ti napisao..... nijedna skirpta to ne može da reši....
Osim da....
U svakoj liniji imaš "-"
primer
- Ovo je
- titl.
A to se inače kosi sa svim pravilima prevođenja!
Imaš komandu u SW... sa kojom možeš da produžiš trajanje postojećih linija.
(samo mala pomoć. SW pa Help pa search. Extend length )
>:dj
Izgleda da se mi ne razumijemo bas najbolje, al' nema veze hvala ti na pomoci.
Extend length ne moze da produzi postojecu liniju ako je ovakav slucaj
1
00:00:00,000 --> 00:00:01,000
Ovo je
2
00:00:01,001 --> 00:00:02,001
titl.
Obrati paznju kad se zavrsava prvi titl a kad pocinje drugi.
Nego da batalimo ovo. Moze li mi neko reci gdje mogu da vidim spisak svih pascal funkcija koje podrzava SW.
Osvježio sam post br. 2 poslije skoro 10 mjeseci. Dodao sam linkove do skripte, da se ne mučite sa copy/paste pa snimanje kao UTF8, sad samo snimite skriptu u odgovarajući folder i uživate.
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- ----------------------------------------- -->
<!-- Prilagodio i dodao nove opcije: -->
<!-- MilanRS -->
<!----------------------------------------------->
<SWOCR WordChars="abcčćdđefghijklmnopqrsštuvwxyžzABCČĆDEFGHIJKLMNOPQRSŠTUVWXYŽZ_">
<ERROR Find="(š)" ReplaceBy="s">
<ERROR Find="(Š)" ReplaceBy="S">
<ERROR Find="(č|ć)" ReplaceBy="c">
<ERROR Find="(Č|Ć)" ReplaceBy="C">
<ERROR Find="(ž)" ReplaceBy="z">
<ERROR Find="(Ž)" ReplaceBy="Z">
<ERROR Find="(đ)" ReplaceBy="dj">
<ERROR Find="(Đ)" ReplaceBy="Dj">
</SWOCR>
Otvori novi dokument u Notepad.Dakle, Milane...svaka čast! Puno Ti hvala.
Ovo sve selektuj, pa Ctrl+C, pa u Notepad Ctrl+V.
Snimi kao neko_ime.ocr (ispod gdje piše Text Document prebaci na All Files)
Snimi u folder OCRScripts koji se nalazi na C: Program Files / URUSoft / Subtitle Workshop
Otvori SW, sa lijeve strane gdje piše default izaberi taj fajl koji si imenovao neko_ime.ocr i poslije toga pritisni F9 na tastaturi. Svi redovi sa šđčćž će da se zacrvene (od sramote ;D).
Pritisni F10. Poslije toga dosnimi izmjene i neće biti kvačica.Kod: [Odaberi]<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- ----------------------------------------- -->
<!-- Prilagodio i dodao nove opcije: -->
<!-- MilanRS -->
<!----------------------------------------------->
<SWOCR WordChars="abcčćdđefghijklmnopqrsštuvwxyžzABCČĆDEFGHIJKLMNOPQRSŠTUVWXYŽZ_">
<ERROR Find="(š)" ReplaceBy="s">
<ERROR Find="(Š)" ReplaceBy="S">
<ERROR Find="(č|ć)" ReplaceBy="c">
<ERROR Find="(Č|Ć)" ReplaceBy="C">
<ERROR Find="(ž)" ReplaceBy="z">
<ERROR Find="(Ž)" ReplaceBy="Z">
<ERROR Find="(đ)" ReplaceBy="dj">
<ERROR Find="(Đ)" ReplaceBy="Dj">
</SWOCR>
Probaj sa B3SSubTranslator. http//mba.vozibrale.com
Program je odličan, SAMO(!) još rečnik.
Ja ga još uvek pravim!
A oči su mi bile uprene u Milana za OCR skriptu :\)
Evo probaj ovo,
[...]
Ja je nisam puno koristio pa ne znam da li dobro radi i da li olakšava posao dodavanja kvačica.
Ima nekih drugih programa koje su drugi preporučivali, pa vidite šta bolje radi.
Najlakše je da onaj koji kuca prevod odmah koristi sva slova azbuke ili abecede i riješen problem ;)E Milane, kad bi to tako bilo... U ruke ti dopadnu titlovi od ljudi, koji jednostavno neznaju da podese tastaturu
Ja je nisam puno koristio pa ne znam da li dobro radi i da li olakšava posao dodavanja kvačica.
Ima nekih drugih programa koje su drugi preporučivali, pa vidite šta bolje radi.
Korisnici Viste ili Win7 najvjerovatnije neće moći da mijenjaju skriptu direktno u folderu OCRScripts nego treba da je kopiraju na Desktop ili u neki drugi folder...
Za ove crtice je lako napraviti skript, ali on će ti brisati Jean-Marry, kod ovakvih imena.
primeri:
1. Radimo Billy-jev film.
2. Da li si ti proèitao Walsh-ov scenario?
Radimo Billyjev film.
Da li si ti pročitao Walshov scenario?
Za početak mi je obična skripta važnija, posle ako naiđem na neke greške...... prijavi ih.
Kod "Mhm-hm" će obrisati crticu. Ne znam zašto se tako nešto uopšte nalazi u prevodu...Mislim da je to zbog toga, što su koristili titl na engleskom, namenjen ljudima sa slabim sluhom.
Kod "Ja-ja nisam..." će obrisati crticu. Ne znam zašto prevodioci pokušavaju da doslikaju kako je govornik zapeo pri izgovoru riječi. To se čuje.
Pejo, za ovo ne treba praviti neku posebnu skriptu.
Selektuj prvu liniju koju hoćeš da spajaš pa onda pomoću postojeće skripte Insert subtitle only in translation ubaci jednu praznu u translation, zatim selektuj i drugu liniju, odradi Ctrl+K i rešena stvar.
To ako sam dobro skapirao šta ti treba.
:)
// Delete subtitle (only from translation). Made by Bedazzle.
// Join subtitles (only in original)... modifikacija petko
program JShiftSubs;
// -----------------------------------------------------------------------------
const
cCR = ''#13''#10;
var
n: Integer;
s: Boolean;
i: Integer;
curr: Integer;
txt: String;
begin
n := GetSubtitleCount;
s := false;
for i := 1 to n do
begin
if (s = false) then
begin
if (IsSubtitleSelected(i) = true) then
begin
curr := i;
break;
end;
end;
end;
txt := GetSubtitleText(i) + cCr + GetSubtitleText(i+1);
SetSubtitleText(i, txt);
SetSubtitleFinalTime(i, GetSubtitleFinalTime(i+1));
curr := curr + 1;
for i := curr to n-1 do
begin
txt := GetSubtitleText(i+1);
SetSubtitleText(i, txt);
SetSubtitleInitialTime(i, GetSubtitleInitialTime(i+1));
SetSubtitleFinalTime(i, GetSubtitleFinalTime(i+1));
end;
SetSubtitleText(n-1, '- Untranslated subtitle -');
end.
Neće mi izbrisati razmak poslije crtice za promjenu govornika
Neće mi izbrisati razmak poslije crtice za promjenu govornika
Riješićemo. ;)
Dok istražim ovo drugo, evo ti rješenje za prvi problem.
Naime, to nije do skripte (bar ove moje), nego do podešavanja SW-a.
Otvori SW,
Alt+I,
drugi tab: Advanced,
Space after Characters: Izbriši crticu.
Ako je tu crtica, on će nasilno napraviti razmak poslije nje, iako ga prethodno skripta ukloni.
Moja preporuka je da izbrišeš sve iz ta dva polja: Space after i Space before ch.
What are you doing?Ovo nije bilo zato što je to za engleski jezik, a skripta je pravljena za prevode. :)
- l've got this problem.
<ERROR Find="( l )" ReplaceBy=" I ">
<ERROR Find="(-l )" ReplaceBy="-I ">
<ERROR Find="( l')" ReplaceBy=" I'">
<ERROR Find="(-l')" ReplaceBy="-I'">
<ERROR Find="^(l')" ReplaceBy="I'">
<!-- Brisanje razmaka iza crte - na početku 2. reda -->
<ERROR Find="[\n](- )[A-ZŠĆŽČĐ\x22]" ReplaceBy="-">
Sad sam se sjetio...
Ako je broj ili malo slovo poslije crtice, ne briše razmak.
Samo ako je veliko slovo, onda briše.
Malo slovo sam izostavio zbog slučajeva kad neko upotrijebi crticu kao sredstvo naglašavanja drugog dijela rečenice.
Ako bi se tu izbrisao razmak, došlo bi do greške i izgledalo bi da taj dio rečenice govori drugi lik, a da je greška što je rečenica počela malim slovom.
Brojeve sam izostavio jer ako neko napiše npr. "U periodu 1850 - 1875. godine", postalo bi "U periodu 1850 -1875. godine", što opet ne bi bilo dobro.
Nezgodno je sve uštimati.
:)
Zašto tebi treba ispravan engleski titl? Ako ćeš ga kasnije prevoditi, svejedno je da li je bilo l know ili I know. :)Ne, ne treba. Samo se čudim kako negdje ispravi, negdje ne.
Mislim da ti to sam SW makne, ukoliko staviš da briše Hearing Impaired subtitles.Ne znam gde grešim, ali TO ne radi!
Mislim da ti to sam SW makne, ukoliko staviš da briše Hearing Impaired subtitles.Ne znam gde grešim, ali TO ne radi!
Čekirao sam i u " Chek for" tabu i u "Fix" tabu.
Milane, zašto mi tvoja skripta za sve tekstove koji su italik daje obaveštenje da je to tekst za osobe sa oštećenim sluhom?To nije do Milanove skripte. Ako ti ne treba provjera za italic titlove isključi: tools->information & errors->Settings->Check for tab-> makni kvačicu s Hearing impaired subtitles
Meni treba da proverava da li ima te vrste titlova, ali se tu koriste drugačije zagrade.Svejedno, mislim da ako isključiš to što sam napisao, opet će SW provjeravat hearing impaired titlove, sa [] zagradama, tj. bacit će OCR gresku
Mož da gledaš 10 puta ručno, ali TitlYU nađe grešku obavezno.
Titl koji koji nije propušten kroz Milanovu krv i znoj pretočenu u MilanRS2, nije titl. ;D
Sinoć propustim jedan titl sa titlovi.com kroz MilanRS2 i 80% redova crveno. Izem takav titl.
PS. Nema ovo veze sa titlovi.com, već sa onim koji je radio prevod, da ne bude zabune.
Da, da, slažem se, ništa bez Milanove skripte. Meni je uvek uključena.Kolko ja znam, ispravlja sa dva klika F9 i F10. I ne mjenja ti I na početku rečenice. ;D
Ipak za ovo što sam tražila, sa titlYU se ispravlja isto ručno a skripta bi to mogla da uradi jednim klikom.
kod mene je F11 i F12 ;D(http://www.cosgan.de/images/midi/konfus/a020.gif)
kod mene je F11 i F12 ;D(http://www.cosgan.de/images/midi/konfus/a020.gif)
I opet kolko ja znam F11 ispravlja označeni red, a F12 te bacaka na sljedeći s greškom.
Ja ne mogu da skinem ocr skripte (prijavljuje da ih nema na serveru).
Da li je to problem samo kod mene, ili su izgubljene tokom selidbe, kao kod mene sa hard na hard?
Ajd' probaj sada :)
Znam da nakon odrađenog titla mogu da podesim smart line adjust, ali mislim da ne funkcioniše kod teksta koji je kraći od zadatog maksimalnog broja karaktera (koji je kod mene 40) a ponekada bih podelila liniju u dva reda ako postoji stanka u govoru ili drugi govornik...
Kod mene SW ne prikazuje ceo okvir (sve brojke i tačke) za početno i krajnje vreme kao ni za vreme trajanja titla, jer je premali. Da li je to neki BUG i rešava se opet neom poštapalicom ili je tako kod svih? Kako rešiti taj sitni nedostatak? Smeta mi naročito kod vremena trajanja titla, jer ne vidim milisekunde pa moram da uđem u to polje i povlačim kursor do tog mesta, čime gubim na vremenu.
Može li se napraviti pascal skripta da detektuje kad dva titla (reda, linije) počinju sa istih xy znakova?Naravno da može :). Ali ovakve greške (kod OCR) SW detektira ako postaviš minimum subtitle duration na npr. 1.8s (tako ja imam). Onda će SW drugu liniju detektirati/označiti kao prekratku, pa možeš spojiti te linije.
Primjer:
5
00:00:52,800 --> 00:00:55,200
Simon Brenner.
-Drag jel -Tako to zoveš?
6
00:00:55,280 --> 00:00:55,600
Simon Brenner.
-Drag je! -Tako to zoveš?
<SWOCR WordChars="0123456789abcčćdđefghijklmnopqrsštuvwxyžzABCČĆDEFGHIJKLMNOPQRSŠTUVWXYŽZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<ERROR Find="[(\x3C )]font color[=][#][0-9A-Z]{6}[(\x3E)]" ReplaceBy="">
<ERROR Find="[(\x3C)]/font[(\x3E)]" ReplaceBy="">
</SWOCR>
A ja se potrudio naći ovu nijansu zelene, i sad bi ti da brišem cry1
Neće ići, hehe.
Više puta sam u titlovima primetila da lprevodioci umesto l pišu I na primer: "Ovi Ijudi su biIi ideaIno..." Treba malo vremena da se to ispravi, tj red po red, jer sa komandom "find --> replace all" se zamenjuju i početna slova I u rečenici. Može li neko da napravi dodatak uz skriptu ili posebnu skriptu kojom bi se ta slova u sredini rečenice validno ispravila? Smajlicvece Biće i piće.Nije me bio odavna, pa malo kasnim s odgovorom, ali valjda neće škodit. ??? Ovo ispravljanje sam ja odavno napravio (na 2. stranici ovog istog topika (http://www.prijevodi-online.org/smf/index.php/topic,142.msg4230.html#msg4230)... zadnji update: 20/09/2008), između ostalog stoji i: ...uključuje OCR grešku "I", "L", "l".... Uzmi dio koji ti treba (označeni su svi) i ubaci u svoju skriptu. ;)
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!-- -->
<!-- Default values: -->
<!-- -->
<!-- UseRE = True (use Regular Expressions) -->
<!-- UseREOnlyToFind = True (put the part that -->
<!-- is not a RE between parenthesis!) -->
<!-- -->
<!-- If UseRE is set to false then you can use -->
<!-- the following parameters, otherwise they -->
<!-- will be ignored: -->
<!-- -->
<!-- CaseSensitive (Default = False) -->
<!-- WholeWord (Default = False) -->
<!-- PreserveCase (Default = False) -->
<!-- ----------------------------------------- -->
<!-- Pošto SubtitleWorkshop ne radi s našim -->
<!-- fonemima "čćđšž" kako treba, malo sam -->
<!-- "preuredio" exe datoteku i ubacio naše -->
<!-- foneme. Radi bolje, ne baš najbolje, a -->
<!-- možete je naći na adresi: -->
<!-- http://strider.1free.ws/files/SubtitleWorkshop.zip.doc -->
<!-- Zip arhiva, samo izbrišite nastavak ".doc"-->
<!----------------------------------------------->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Npr. "O'NeiII" by "O'Neill" -->
<ERROR Find="[a-zá-ú][a-zá-ú](II)" ReplaceBy="ll">
<ERROR Find="(II)[a-zá-ú][a-zá-ú]" ReplaceBy="ll">
<ERROR Find="\b(II)[i]\b" ReplaceBy="Il">
<ERROR Find="\b(ll)[i]\b" ReplaceBy="Il">
<!-- Zamijeni sva "l" s "I" na početku riječi s velikim slovima -->
<ERROR Find="\b(l)[A-ZĆČĐŠŽ]" ReplaceBy="I">
<!-- Zamijeni sva "l" s "I" unutar riječi s velikim slovima -->
<ERROR Find="[A-ZĆČĐŠŽ](l)[A-ZĆČĐŠŽ]" ReplaceBy="I">
<!-- Zamijeni sva "l" s "I" na kraju riječi s velikim slovima -->
<ERROR Find="[A-ZĆČĐŠŽ][A-ZĆČĐŠŽ](l)" ReplaceBy="I">
<!-- Zamijeni sva "I" s "l" unutar riječi s malim slovima ili prvoj riječi u rečenici -->
<ERROR Find="[A-ZĆČĐŠŽa-zćčđšž](I)[a-zćčđšž]" ReplaceBy="l">
<!-- Zamijeni sva "I" s "l" na kraju riječi s malim slovima (uključujući znakove interpunkcije na kraju) -->
<ERROR Find="[a-zćčđšž](I)[a-zćčđšž\s\.!?:;,'\x22)]" ReplaceBy="l">
<ERROR Find="[a-zćčđšž](I)" ReplaceBy="l">
<!-- Zamijeni sva "I" s "l" unutar riječi s hrvatskim znakovima -->
<ERROR Find="[A-Za-zĆČĐŠŽćčđšž](I)[a-zćčđšž]" ReplaceBy="l">
<!-- Zamijeni sva "L" s "I" na početku riječi kada slijedi bilo koje slovo osim "aeiouj" -->
<ERROR Find="\b(L)[bcdfghklmnprstvz\ćčđšž]" ReplaceBy="I">
<!-- Zamijeni sva "l" s "I" na početku riječi kada slijedi bilo koje slovo osim "aeiouj" -->
<ERROR Find="\b(l)[bcdfghklmnprstvz\ćčđšž]" ReplaceBy="I">
<!-- Zamijeni sva "I" s "l" na početku riječi kada slijedi "aeiouj" -->
<ERROR Find="\b(I)[aeijou]" ReplaceBy="l">
<!-- Zamijeni sva sama "l" s "I" -->
<ERROR Find="\b(l)\b" ReplaceBy="I">
<!-- Zamijeni sva sama "I" s "i" ako prethode i slijede mala slova -->
<ERROR Find="[a-zćčđšž]( I )[a-zćčđšž]" ReplaceBy=" i ">
<!-- Izbriši razmak ispred dvotočke ako prethodi broj "1 :", "2 :"... "n :" s "n:" -->
<ERROR Find="\d( :)" ReplaceBy=":">
<!-- Zamijeni ",,," ili više sa "..." -->
<ERROR UseREOnlyToFind="False" Find=",{2,}" ReplaceBy="...">
<!-- "--" ili više sa "..." -->
<ERROR UseREOnlyToFind="False" Find="-{2,}" ReplaceBy="...">
<!-- Navodnici i apostrofi ("\x22" je '"' navodnik) -->
<ERROR Find="(“)" ReplaceBy=""">
<ERROR Find="(”)" ReplaceBy=""">
<ERROR Find="(`)" ReplaceBy="'">
<ERROR Find="(´)" ReplaceBy="'">
<ERROR Find="(‘)" ReplaceBy="'">
<ERROR Find="(’)" ReplaceBy="'">
<ERROR UseREOnlyToFind="False" Find="''" ReplaceBy=""">
<!-- '"' dva puta ili više zamijeni s jednim '"' -->
<ERROR UseREOnlyToFind="False" Find="\x22{2,}" ReplaceBy=""">
<!-- Razmak iza apostrofa, npr. "I' d" to "I'd", "I' LL" to "I'LL", etc. -->
<ERROR Find="(?i)[A-ZÁ-Úa-zá-ú]('\s|\s')(ll|ve|s|m|d)\b" ReplaceBy="'">
<!-- F "Hasn 't" and "Hasn' t" -->
<ERROR Find="[\.\s](')" ReplaceBy="'">
<!-- <ERROR Find="(?i)[A-ZÁ-Úa-zá-ú]('\s|\s')t\b" ReplaceBy="'"> -->
<!-- Zamijeni sva "I'" s "l'" -->
<ERROR Find="(I)[\']" ReplaceBy="l">
<!-- Zamijeni sve glagole s 5 i više slova "**(a)(e)(i)ti ću" s "**(a)(e)(i)t ću" i "**(a)(e)(i)ti će*" s "**(a)(e)(i)t će*" -->
<!-- Glagoli i imenice s četiri slova koja završavaju na "ati" su izuzeci i ne mijenjanju se!!! (ćati, dati, lati, mati, rati, sati, tati, vati) -->
<!-- Riječi s četiri slova koja završavaju na "eti" su izuzeci i ne mijenjanju se!!! (četi, meti, peti, teti) -->
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti )ć[eu]" ReplaceBy="t ">
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti)\r?\nć[eu]" ReplaceBy="t">
<!-- Izuzeci su glagoli s četiri slova koji se mijenjaju (žeti, biti, liti, miti, piti, riti, šiti, viti) ! -->
<ERROR Find="\b[ž|Ž](eti )ć[eu]" ReplaceBy="et ">
<ERROR Find="\b[ž|Ž](eti)\r?\nć[eu]" ReplaceBy="et">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti )ć[eu]" ReplaceBy="it ">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti)\r?\nć[eu]" ReplaceBy="it">
<!-- Izuzeci koji se ne mijenjaju: -->
<!-- Ostaje "niti ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\bni(t )ć[eu]" ReplaceBy="ti ">
<ERROR Find="(?i)\bni(t)\r?\nć[eu]" ReplaceBy="ti">
<!-- Ostaje "naniti će" (SF serije: naniti ili nanoboti) -->
<ERROR Find="(nanit )će\b" ReplaceBy="naniti ">
<ERROR Find="(nanit)\r?\nće\b" ReplaceBy="naniti">
<!-- Izuzeci koji se ne mijenjaju, dodaje se "t": -->
<!-- Mijenja se "pati ću (ćeš, će, ćemo, ćete)" u "patit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(pati )ć[eu]" ReplaceBy="patit ">
<ERROR Find="(?i)\b(pati)\r?\nć[eu]" ReplaceBy="patit">
<!-- Mijenja se "jati ću (ćeš, će, ćemo, ćete)" u "jatit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(jati )ć[eu]" ReplaceBy="jatit ">
<ERROR Find="(?i)\b(jati)\r?\nć[eu]" ReplaceBy="jatit">
<!-- Mijenja se "leti ću (ćeš, će, ćemo, ćete)" u "letjet ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(leti )ć[eu]" ReplaceBy="letjet ">
<ERROR Find="(?i)\b(leti)\r?\nć[eu]" ReplaceBy="letjet">
<!-- Mijenja se "hiti ću (ćeš, će, ćemo, ćete)" u "hitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(hiti )ć[eu]" ReplaceBy="hitit ">
<ERROR Find="(?i)\b(hiti)\r?\nć[eu]" ReplaceBy="hitit">
<!-- Mijenja se "kiti ću (ćeš, će, ćemo, ćete)" u "kitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(kiti )ć[eu]" ReplaceBy="kitit ">
<ERROR Find="(?i)\b(kiti)\r?\nć[eu]" ReplaceBy="kitit">
<!-- Zamijeni sva "S" i "s" sa "SA", "Sa" i "sa" kad su na kraju prvog reda -->
<ERROR Find="\b(s)\b\r?\n" ReplaceBy="sa"> <!-- radi -->
<ERROR Find="[a-z]\s\b(S)\b\r?\n[a-z]" ReplaceBy="sa"> <!-- radi -->
<ERROR Find="[A-Z]\s\b(S)\b\r?\n[a-z]" ReplaceBy="SA"> <!-- radi -->
<ERROR Find="\b(S)\b\r?\n" ReplaceBy="Sa"> <!-- radi -->
<ERROR Find="\b(Sa)\b\r?\n[A-Z][A-Z]" ReplaceBy="SA"> <!-- radi -->
<ERROR Find="\b(Sa)\b\r?\n\x22[A-Z][A-Z]" ReplaceBy="SA"> <!-- radi -->
<!-- ovaj dio mora biti ispred ostalih "s" i "sa" -->
<!-- inače (s)\r?\n -> "sa" mijenja npr. "s"(novi red)"stilom" u "sa"(novi red)"satilom" -->
<!-- Zamijeni sva "Sa" i "sa" sa "S" i "s" ako ne slijedi riječ sa "š,Š,s,S,z,Z,ž,Ž,6,7" -->
<ERROR Find="\b(sa)\b\s[^sSšŠzZžŽ67\r?\n]" ReplaceBy="s">
<ERROR Find="\b(s \x22)[sSšŠzZžŽ67]" ReplaceBy="sa "">
<ERROR Find="\b(Sa)\b\s[^sSšŠzZžŽ67\r?\n]" ReplaceBy="S">
<ERROR Find="\b(SA)\b\s[^sSšŠzZžŽ67\r?\n]" ReplaceBy="S">
<ERROR Find="\b(S \x22)[sšzž67]" ReplaceBy="Sa "">
<ERROR Find="\b(S \x22)[SŠZŽ][a-z]" ReplaceBy="Sa "">
<ERROR Find="\b(S \x22)[SŠZŽ]" ReplaceBy="SA "">
<ERROR Find="\b(sa)\r?\n[^sSšŠzZžŽ67\x22]" ReplaceBy="s">
<ERROR Find="\b(sa)\r?\n\x22[abcčćdđefghijklmnopqrtuvwxyABCČĆDĐEFGHIJKLMNOPQRSTUVWXYZŽ]" ReplaceBy="s">
<ERROR Find="\b(s)\r?\n\x22[SšŠzZžŽ67]" ReplaceBy="sa">
<ERROR Find="\b(Sa)\r?\n[^sSšŠzZžŽ67\x22]" ReplaceBy="S">
<ERROR Find="\b(Sa)\r?\n\x22[abcčćdđefghijklmnopqrtuvwxyABCČĆDĐEFGHIJKLMNOPQRTUVWXYZŽ]" ReplaceBy="S">
<ERROR Find="\b(SA)\r?\n[^sSšŠzZžŽ67\x22]" ReplaceBy="S">
<ERROR Find="\b(SA)\r?\n\x22[abcčćdđefghijklmnopqrstuvwxyABCČĆDĐEFGHIJKLMNOPQRTUVWXYZŽ]" ReplaceBy="S">
<ERROR Find="\b(S)\r?\n\x22[sšzž67]" ReplaceBy="Sa">
<ERROR Find="\b(S)\r?\n\x22[SŠZŽ]" ReplaceBy="SA">
<ERROR Find="\b(S)\r?\n\x22[SŠZŽ][a-z]" ReplaceBy="Sa">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ sa "š,Š,z,Z,ž,Ž,s,S" ili broj "6, 7, 6x, 7x, 16, 17, 1xx, 1xxx..." -->
<ERROR Find="\b(S )\b[šzžs][a-z]" ReplaceBy="Sa ">
<ERROR Find="\b(S )\b[ŠZŽS][a-z]" ReplaceBy="Sa ">
<ERROR Find="\b(S )\b[ŠZŽS][A-Z]" ReplaceBy="SA ">
<ERROR Find="\b(s )\b[šŠzZžŽsS67]" ReplaceBy="sa ">
<!-- ...bilo koji broj u istom redu koji počinje sa 6 ili 7 -->
<ERROR Find="[A-Z]( S )[67]" ReplaceBy=" SA ">
<ERROR Find="\b(S )[67]" ReplaceBy="Sa ">
<!-- ...16 ili 17 u istom redu -->
<ERROR Find="\b(s 1)[67]\b" ReplaceBy="sa 1">
<ERROR Find="[A-Z]( S 1)[67]\b" ReplaceBy=" SA 1">
<ERROR Find="\b(S 1)[67]\b" ReplaceBy="Sa 1">
<!-- ...stotice u istom redu koje počinju sa 1 -->
<ERROR Find="\b(s )[1][0-9][0-9]\b" ReplaceBy="sa ">
<ERROR Find="[A-Z]( S )[1][0-9][0-9]\b" ReplaceBy=" SA ">
<ERROR Find="\b(S )[1][0-9][0-9]\b" ReplaceBy="Sa ">
<!-- ... 100000 u istom redu - 100000000 nisu uključeni jer se obično pišu s točkama: 100.000.000 :-) -->
<ERROR Find="\b(s )[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="sa ">
<ERROR Find="[A-Z]( S )[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy=" SA ">
<ERROR Find="\b(S )[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="Sa ">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi broj "6, 7, 6x, 7x, 16, 17, 1xx, 1xxx..." U DRUGOM REDU -->
<!-- ...bilo koji broj u drugom redu koji počinje sa 6 ili 7 -->
<ERROR Find="\b(s)\b\r?\n[67]" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[67]" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[67]" ReplaceBy="Sa">
<!-- ...16 ili 17 u drugom redu -->
<ERROR Find="\b(s)\r?\n[1][67]\b" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[1][67]\b" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[1][67]\b" ReplaceBy="Sa">
<!-- ...stotice u drugom redu koje počinju s 1 -->
<ERROR Find="\b(s)\r?\n[1][0-9][0-9]\b" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[1][0-9][0-9]\b" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[1][0-9][0-9]\b" ReplaceBy="Sa">
<!-- ... 100000 u drugom redu - 100000000 nisu uključeni jer se obično pišu s točkama: 100.000.000 :-) -->
<ERROR Find="\b(s)\r?\n[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="sa">
<ERROR Find="[A-Z]( S)\r?\n[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy=" SA">
<ERROR Find="\b(S)\r?\n[1][0-9][0-9][0-9][0-9][0-9]\b" ReplaceBy="Sa">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ "mnom" -->
<ERROR Find="\b(s)\b\s(\mnom)\b" ReplaceBy="sa">
<ERROR Find="\b(S)\b\s(\mnom)\b" ReplaceBy="Sa">
<ERROR Find="\b(S)\b\s(\MNOM)\b" ReplaceBy="SA">
<ERROR Find="\b(s ili bez)\b" ReplaceBy="sa ili bez">
<ERROR Find="\b(S ili bez)\b" ReplaceBy="Sa ili bez">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ "mnom" U DRUGOM REDU -->
<ERROR Find="\b(s)\r?\n(\mnom)\b" ReplaceBy="sa">
<ERROR Find="\b(S)\r?\n(\mnom)\b" ReplaceBy="Sa">
<ERROR Find="\b(S)\r?\n(\MNOM)\b" ReplaceBy="SA">
<ERROR Find="\b(s)\r?\n(ili bez)\b" ReplaceBy="sa">
<ERROR Find="\b(S)\r?\n(ili bez)\b" ReplaceBy="Sa">
<!-- Zamijeni sva "samnom" u "sa mnom" -->
<ERROR Find="\b(samnom)\b" ReplaceBy="sa mnom">
<ERROR Find="\b(Samnom)\b" ReplaceBy="Sa mnom">
<ERROR Find="\b(SAMNOM)\b" ReplaceBy="SA MNOM">
<!-- Zamijeni sva "S" i "s" sa "Sa" i "sa" ako slijedi riječ "ps..." ili "ks..." -->
<ERROR Find="\b(s ps)" ReplaceBy="sa ps">
<ERROR Find="\b(s Ps)" ReplaceBy="sa Ps">
<ERROR Find="\b(S ps)" ReplaceBy="Sa ps">
<ERROR Find="\b(S Ps)" ReplaceBy="Sa Ps">
<ERROR Find="\b(S PS)" ReplaceBy="SA PS">
<ERROR Find="\b(s ks)" ReplaceBy="sa ks">
<ERROR Find="\b(s Ks)" ReplaceBy="sa Ks">
<ERROR Find="\b(S Ks)" ReplaceBy="Sa Ks">
<ERROR Find="\b(S ks)" ReplaceBy="Sa ks">
<ERROR Find="\b(S KS)" ReplaceBy="SA KS">
<ERROR Find="\b(s)\b\r?\n(\ps)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(psa)" ReplaceBy="ps">
<ERROR Find="\b(s)\b\r?\n(\Ps)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(Psa)" ReplaceBy="Ps">
<ERROR Find="\b(S)\b\r?\n(\ps)" ReplaceBy="Sa">
<ERROR Find="\b(S)\b\r?\n(\PS)" ReplaceBy="SA">
<ERROR Find="\bSA\b\r?\n(PSA)" ReplaceBy="PS">
<ERROR Find="\b(S)\b\r?\n(\Ps)" ReplaceBy="Sa">
<ERROR Find="\b(s)\b\r?\n(\PS)" ReplaceBy="sa">
<ERROR Find="\b(s)\b\r?\n(\ks)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(ksa)" ReplaceBy="ks">
<ERROR Find="\b(s)\b\r?\n(\Ks)" ReplaceBy="sa">
<ERROR Find="\bsa\b\r?\n(Ksa)" ReplaceBy="Ks">
<ERROR Find="\b(S)\b\r?\n(\ks)" ReplaceBy="Sa">
<ERROR Find="\b(S)\b\r?\n(\KS)" ReplaceBy="SA">
<ERROR Find="\bSA\b\r?\n(KSA)" ReplaceBy="KS">
<ERROR Find="\b(S)\b\r?\n(\Ks)" ReplaceBy="Sa">
<ERROR Find="\b(s)\b\r?\n(\KS)" ReplaceBy="sa">
<!-- Rijetkosti -->
<!-- Izuzetak za "I" s "l" kada slijedi: Ionako, Ijedan, Iole -->
<ERROR Find="\b(lonako)\b" ReplaceBy="Ionako">
<ERROR Find="\b(ljedan)\b" ReplaceBy="Ijedan">
<ERROR Find="\b(ljedn)" ReplaceBy="Ijedn">
<ERROR Find="\b(lole)\b" ReplaceBy="Iole">
<ERROR Find="[\.][\s](lako)\b" ReplaceBy="Iako">
<ERROR Find="(-lako)\b" ReplaceBy="-Iako">
<ERROR Find="(- lako)\b" ReplaceBy="- Iako">
<ERROR Find="[a-z][\s](Iako)\b" ReplaceBy="lako">
<ERROR Find="\.\r?\n(lako)\b" ReplaceBy="Iako">
<ERROR Find="^(lako)\b" ReplaceBy="Iako">
<ERROR Find="\b(lon)\b" ReplaceBy="Ion">
<ERROR Find="\b(lons)" ReplaceBy="Ions">
<ERROR Find="\b(loni)" ReplaceBy="Ioni">
<ERROR Find="\b(lono)" ReplaceBy="Iono">
<ERROR Find="\b(Mls)" ReplaceBy="Mis">
<ERROR Find="\b(Nlj)" ReplaceBy="Nij">
<ERROR Find="\b(Nlk)" ReplaceBy="Nik">
<ERROR Find="\b(Nls)" ReplaceBy="Nis">
<ERROR Find="\b(Nlš)" ReplaceBy="Niš">
<ERROR Find="\b(ALi)" ReplaceBy="Ali">
<!-- Kad se NEODREĐENE ZAMJENICE slažu s veznicima i, ni (itko, išta, ikakav, nitko, ništa, nikakav…) -->
<!-- koriste se s prijedlozima te se oni umeću između veznika i odnosne zamjenice -->
<ERROR Find="\b(od nikoga)\b" ReplaceBy="ni od koga">
<ERROR UseReOnlyToFind="False" Find="\b(od)\r?\n(nikoga)\b" ReplaceBy="ni od koga">
<ERROR Find="\b(za ništa)\b" ReplaceBy="ni za što">
<ERROR UseReOnlyToFind="False" Find="\b(za)\r?\n(ništa)\b" ReplaceBy="ni za što">
<ERROR Find="\b(pred ičim)\b" ReplaceBy="i pred čim">
<ERROR UseReOnlyToFind="False" Find="\b(pred)\r?\n(ičim)\b" ReplaceBy="i pred čim">
<ERROR Find="\b(pred ničim)\b" ReplaceBy="ni pred čim">
<ERROR UseReOnlyToFind="False" Find="\b(pred)\r?\n(ničim)\b" ReplaceBy="ni pred čim">
<ERROR Find="\b(s nikakvim)\b" ReplaceBy="ni s kakvim">
<ERROR UseReOnlyToFind="False" Find="\b(s)\r?\n(nikakvim)\b" ReplaceBy="ni s kakvim">
<ERROR Find="\b(s nikim)\b" ReplaceBy="ni s kim">
<ERROR UseReOnlyToFind="False" Find="\b(s)\r?\n(nikim)\b" ReplaceBy="ni s kim">
<ERROR Find="\b(s ikim)\b" ReplaceBy="i s kim">
<ERROR UseReOnlyToFind="False" Find="\b(s)\r?\n(ikim)\b" ReplaceBy="i s kim">
<ERROR Find="\b(uz nikakav)\b" ReplaceBy="ni uz kakav">
<ERROR UseReOnlyToFind="False" Find="\b(uz)\r?\n(nikakav)\b" ReplaceBy="ni uz kakav">
<ERROR Find="\b(zbog ničega)\b" ReplaceBy="ni zbog čega">
<ERROR UseReOnlyToFind="False" Find="\b(zbog)\r?\n(ničega)\b" ReplaceBy="ni zbog čega">
<!-- <ERROR Find="\b(III)\b" ReplaceBy="III"> -->
<!-- Lokacija u USA "Iowa" -->
<ERROR Find="\b(lowa)\b" ReplaceBy="Iowa">
<ERROR Find="\b(lowe)\b" ReplaceBy="Iowe">
<ERROR Find="\b(lowi)\b" ReplaceBy="Iowi">
<ERROR Find="\b(lowu)\b" ReplaceBy="Iowu">
<!-- Ime ili prezime "Lloyd" -->
<ERROR Find="\b(Iloyd)" ReplaceBy="Lloyd"> -->
<!-- Ispravak nule i velikog 'O' -->
<ERROR Find="[0-9](O)" ReplaceBy="0">
<ERROR Find="[0-9](\.O)" ReplaceBy=".0">
<ERROR Find="[0-9](,O)" ReplaceBy=",0">
<ERROR Find="[A-Z](0)" ReplaceBy="O">
<ERROR Find="\b(0)[A-Za-z]" ReplaceBy="O">
<!-- Briši razmak ispred zareza -->
<ERROR Find="[A-ZĆČĐŠŽa-zćčđšž]( ,)" ReplaceBy=",">
<!-- Dodaj razmak iza zareza -->
<ERROR Find="(,)[A-ZĆČĐŠŽa-zćčđšž]" ReplaceBy=", ">
<!-- Razmak iza točke -->
<ERROR Find="[a-su-zá-úńä-ü](\.)[^(\s\n\.\*\?\!\x22\,)]" ReplaceBy=". "> <!-- osim kad je zadnje t (rijec kolt) -->
<!-- Oznaka za kalibar. Npr. "Colt .45" -->
<!-- Da bi radilo, da bi ovaj razmak bio dopušten, u SW idite Alt+I i odcekirajte "Razmaci ispred točke" -->
<ERROR Find="(t\.)[0-9][0-9]" ReplaceBy="t .">
<!-- Razmak iza uzastopnih točaka (npr. "...") -->
<ERROR Find="(\.\.)[^(\x22\s\n\.\?\!\,)]" ReplaceBy=".. ">
<!-- Razmak iza 3 točke ("...") -->
<ERROR Find="(\.\.\.)[\x22][a-z]" ReplaceBy="... ">
<ERROR Find="(\.\.\.)[^(\x22\s\n\.\?\!\,)]" ReplaceBy="... ">
<!-- Zamijeni dvije točke trima ("..")->("...") -->
<ERROR Find="^(\.\.)[^\.]" ReplaceBy="..."> <!-- na početku 1. reda, ne slijedi točka -->
<ERROR Find="[^\.](\.\.)[^\.]" ReplaceBy="..."> <!-- ne prethodi i ne slijedi točka -->
<ERROR Find="[^\.](\.\.)$" ReplaceBy="..."> <!-- ne prethodi točka, na kraju reda -->
<!-- Briši razmak iza "..." kad je na početku 1. reda. Izbrišite ovu liniju ukoliko vam ne odgovara -->
<ERROR UseREOnlyToFind="False" Find="^(\.\.\.) " ReplaceBy="...">
<ERROR UseREOnlyToFind="False" Find="^(\x22\.\.\.) " ReplaceBy=""...">
<!-- Briši razmak iza "..." kad je na početku 2. reda. Izbrišite ovu liniju ukoliko vam ne odgovara -->
<ERROR Find="\r?\n(\.\.\.\s)" ReplaceBy="...">
<ERROR Find="\r?\n\x22(\.\.\.\s)" ReplaceBy="...">
<!-- Briši "," prije "..." -->
<ERROR Find="(\,\.\.\.)" ReplaceBy="...">
<!-- Briši "," poslije "..." -->
<ERROR Find="(\.\.\.\,)" ReplaceBy="...">
<!-- Briši "- " prije "..." -->
<ERROR Find="(\-\s\.\.\.)" ReplaceBy="-...">
<ERROR Find="(\-\.\.\.\s)" ReplaceBy="-...">
<!-- Zamijeni "- -" sa "..." -->
<ERROR Find="(\-\s\-)" ReplaceBy="... ">
</SWOCR>
Pozdrav za Stridera.Pozdrav druže Milane!
Juče sam iz tvoje skripte preuzeo one tri linije za ispravljanje **ti ću -> **t ću.
:)
Btw, imam problema kad sidnem s ekipom na ćakulu, pa ih tu i tamo ispravim... "dogodilo je se"->"dogodilo se", "s nikim"->"ni s kim", "s avionom"->"avionom"! Nadam se da ti nemaš sličnih problema? Ja ću se morat suzdržavat ubuduće! :-X
Mrzi me da čitam.Mene mrzi da pišem. :P
Gde je ona skripta koja prepravlja
Ari-jevo u Arijevo
Mark-ovo u Markovo
...
Mrzi me da čitam.Mene mrzi da pišem. :P
Ali, ipak evo.Gde je ona skripta koja prepravlja
Ari-jevo u Arijevo
Mark-ovo u Markovo
...
Link do posta na 10. strani (http://www.prijevodi-online.org/smf/index.php/topic,142.msg111072.html#msg111072)
Imam jednu malu zamjerku na tvoje titlove. Ona mi baš jako upada u oči.
68
00:04:02,534 --> 00:04:05,131
Hitna skrb je pametan potez. -Većina
naših hitnih slučajeva su...
69
00:04:05,166 --> 00:04:08,458
...sitne stvari. Iščašeni zglobovi, bol u
grlu, potres mozga... -To mi odgovara.
Tri točke na kraju 68. i početku 69. linije nisu potrebne. One se nikad ne stavljaju kod prelaska jedne rečenice u dvije linije.
To je ružno i glupo. Gledatelj nije idiot kojemu se trebaju ovakve stvari "crtati". Ovako to treba izgledati:
68
00:04:02,534 --> 00:04:05,131
Hitna skrb je pametan potez. -Većina
naših hitnih slučajeva su
69
00:04:05,166 --> 00:04:08,458
sitne stvari. Iščašeni zglobovi, bol u
grlu, potres mozga... -To mi odgovara.
<!-- Brisanje razmaka iza crte - na početku 2. reda -->
<ERROR Find="[\n](- )[0-9A-ZŠĆŽČĐ\x22\x3C]" ReplaceBy="-">
dodajte još: <ERROR Find="[\n][\x3C][i|b|u][\x3E](- )[0-9A-ZŠĆŽČĐ\x22\x3C]" ReplaceBy="-">
Zdravo, svima.
A, sta je sa podignuti titlom?
Kako je to moguce realizirati, jer staviti samo 2-3 "entera" u titl, na reload subtitle, SW to obrise,
a vrlo je bitno da kad ima neki "priljepen" tekst u video, da ovozmozimo gledaoci da to procitu,
a da se pritome tekst ne mesa.
Hvala i pozdrav iz Makedonije
Zdravo, svima.
A, sta je sa podignuti titlom?
Kako je to moguce realizirati, jer staviti samo 2-3 "entera" u titl, na reload subtitle, SW to obrise,
a vrlo je bitno da kad ima neki "priljepen" tekst u video, da ovozmozimo gledaoci da to procitu,
a da se pritome tekst ne mesa.
Hvala i pozdrav iz Makedonije
SW nije nije predviđen za te stvari ali...
Treba ti ALT kôd za ENTER.
(http://usefulshortcuts.com/alt-codes/)
Možeš da probaš da stavljaš "space" ali ne sa tastature nego sa kodom ALT+0160
Tada dobijaš razmak, a SW ne vidi to kao razmak nego kao karakter i onda ti neće obrisati.
Nekoliko korisnih i cesto potrebne Paskal skripte u SW 2.51
1 - Insert subtitle (only in translation)
Omogucava da se doda novi prazni titl samo u prevodnom delu. Novi dodani titl ce biti dodan odmah nakon selektovanog titla u listu, pri tome sadrzaj i tekst kojeg imate u vec postojecih titlova od selektovanog nadole bice pomereni za jedan titl nadole u listu bez bilo kakve promjene u vremenskom rasporedu za prikaz titlova.
2-Copies original text into translation (selected lines only)
Omogucuje vam da kopirate sadrzaj i tekst selektiranih titlova u osnovnu listu (jedan ili vise titlova odjednom) iz originalnog u prevodnom delu. Pri ovome, ukoliko selektirane titlove u prevodnom delu sadrzi bilo sta, taj ce sadrzaj biti automatski obrisan i zamjenjen sadrzajem koji ima titl iz originalnog dela.
3-Join subtitles (only from translation)
Spajanje dva posledovatelnih titlova, pri cemu se spajanje izvrsava samo u prevodnom delu.
Sadrzaj titlova kojih se nalaze ispod selektiranih titlova u listu bice pomeren za jedan titl prema gore.
Ukoliko selektirate vise od dva posledovatelna titlova (Primer za tri selektirana titlova), dobicete po malo neocekivani rezultat, tj. dvojno/duplo spajanje na 1+2 i 2+3. Zbog ovoga, ukoliko zelite spojiti tri posledovatelna titlova samo u prevodnom delu, to spajanje trebate izvrsiti u dva koraka spajanjem po dva titlova 1+2 i (1+2)+3 i tako dobiti jedan sacinjen od sva tri titlova.
4-Delete subtitle (only from translation)
Brisanje jednog selektiranog titla samo u prevodnom delu.
Ukoliko imate seletiranih veci broj titlova u osnovnu listu, samo prvi od njih ce biti obrisan.
Pri ovom se brise i sadrzaj obrisanog titla u prevodnom delu, ako zelite sacuvati/zadrzati sadrzaj trebate upotrebiti skriptu za spajanje titlova.
Sadrzaj titlova nakon obrisanog titla bice pomeren za jedan titl prema gore bez bilo kakve promjene u vremenskom rasporedu za prikaz titlova.
5-Remuve First Dash
Obrisati crtu "Tire" tamo gde je ima i na pocetku ispred teksta u prvom tekstualnom redu. Brisu se sve prve crtice (-) u svih titlova odjednom.
U one titlove gde ima crticu kao znak za drugi, treci, itd. sugovornik, te se crtice ne brisu, brise samo prvu crticu ukoliko je ima na pocetku titla za prvog sugovornika.
6-Add Dotted Line
Dadati jednu jedinu tacku (.) u svih titlova odjednom, u celom u celom filmskom prevodu (titl fajl).
Jer pri snimanju titl-fajlova i titl projekat u SW nepovratno se gube sve prazne titlove koji sto nemaju ikakav sadrzaj u njima, ovo je vrlo korisna skripta pri izradu novog titl-fajla (novi filmski prevod) od belog lista.
Kad u SW dodate novi titl preko taster "Insert", taj novi titl nema sadrzaj u njemu i bice izgubljen ako se fajl snimi kao takav s praznim titlovima.
Titleri koji ujednom i prevode najcesce odmah upisuju i prevod, ali ako vi trebate samo sastaviti vremensku skriptu za prikaz titlova za neki drugi jezik i necete vi prevoditi, a morate dodati bilo kakav sadrzaj u svaki titl kako ih nebi izgubili pri snimanju, ovo je jedna vrlo korisna skripta koja vam moze ustediti puno vremena.
- Da bi moglu upotrebiti Paskal skripte, trebate ih kopirati/smjestiti u programskom folderu SW-a s pocetno postavljeni instalacioni put/folder:
C:\Program Files\URUSoft\Subtitle Workshop\PascalScripts
Ukoliko ste vi sami promjenili osnovni put za instalaciju SW-a i instalirali ste ga na drugu lokaciju ili drugu particiju, soodvetno se menja i gore pomenuti put/folder.
Izvrsavanje komande s Paskal skriptima vrsi se preko meni "Tools / Pascal Scripts / ...."
(http://i25.servimg.com/u/f25/12/65/90/87/pascal10.jpg)
U meni listu se automatki podredzuju po azbucnom/abecednom redom pri cemu brojeve imaju prednost i soodvetno dobijaju kratenice/precice: Sift+Ctrl+1 za prvu skriptu; Sift+Ctrl+2 za drugu skriptu; itd.
Paskal skripte RAR arhiva ShotGun5 (http://prijatel.webs.com/_private/1-PascalScripts_SW251.rar)
I na kraju ovo najbitnije.
Jer se Paskal skripte uglavnom odnose na prevodni deo, ukoliko vam je potrebno da izvresite promjene u originalnom delu sve sto trebate je da privremeno zamjenite pozicije originalnog i prevodnog dela uz tastere Shift+Ctrl+W.
Potpredsjednik, čovek najodgovorniji za taj napad, htjeti će te iskoristiti. | Potpredsjednik, čovek najodgovorniji za taj napad, htjet će te iskoristiti. |
Izgledati će još gore ako mu raznesu helikopter dok je u njemu. Reci mu to. | Izgledat će još gore ako mu raznesu helikopter dok je u njemu. Reci mu to. |
Želim prisustvovati. Dozvoliti će mi. | Želim prisustvovati. Dozvolit će mi. |
Za one koji ne vole u titlu kad neispravno piše glagol na -ti ispred: ću, ćeš, će, ćemo, ćete, će,Druže Milane, što je s ovim riječima koje slijede?!
evo jedna skripta. Isprobao sam je, za razliku od ranijih pokušaja, ova ne pravi lažno pozitivne alarme.
Isprobajte i vi, ako se slučajno desi da nešto pogrešno ispravlja, javite.
Inače, poslije ću je ugraditi u standardnu OCR skriptu MilanRS2.ocr.
Potpredsjednik, čovek najodgovorniji
za taj napad, htjeti će te iskoristiti.Potpredsjednik, čovek najodgovorniji
za taj napad, htjet će te iskoristiti.
Izgledati će još gore ako mu raznesu
helikopter dok je u njemu. Reci mu to.Izgledat će još gore ako mu raznesu
helikopter dok je u njemu. Reci mu to.
Želim prisustvovati. Dozvoliti će mi. Želim prisustvovati. Dozvolit će mi.
<!-- Zamijeni sve riječi s 5 i više slova "**(a)(e)(i)ti ću" s "**(a)(e)(i)t ću" i "**(a)(e)(i)ti će*" s "**(a)(e)(i)t će*" -->
<!-- Riječi s četiri slova koja završavaju na "ati" su izuzeci i ne mijenjanju se!!! (ćati, dati, lati, mati, rati, sati, tati, vati) -->
<!-- Riječi s četiri slova koja završavaju na "eti" su izuzeci i ne mijenjanju se!!! (četi, meti, peti, teti) -->
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti )ć[eu]" ReplaceBy="t ">
<ERROR Find="[A-Za-zćčđšž][a-zćčđšž][a|e|i](ti)\r?\nć[eu]" ReplaceBy="t">
<!-- Izuzeci s četiri slova koji se mijenjaju (žeti, biti, liti, miti, piti, riti, šiti, viti) ! -->
<ERROR Find="\b[ž|Ž](eti )ć[eu]" ReplaceBy="et ">
<ERROR Find="\b[ž|Ž](eti)\r?\nć[eu]" ReplaceBy="et">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti )ć[eu]" ReplaceBy="it ">
<ERROR Find="\b[b|B|l|L|m|M|p|P|r|R|š|Š|v|V](iti)\r?\nć[eu]" ReplaceBy="it">
<!-- Izuzeci koji se ne mijenjaju: -->
<!-- Ostaje "niti ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\bni(t )ć[eu]" ReplaceBy="ti ">
<ERROR Find="(?i)\bni(t)\r?\nć[eu]" ReplaceBy="ti">
<!-- Ostaje "naniti će" (SF serije: naniti ili nanoboti) -->
<ERROR Find="(nanit )će\b" ReplaceBy="naniti ">
<ERROR Find="(nanit)\r?\nće\b" ReplaceBy="naniti">
<!-- Izuzeci koji se ne mijenjaju, dodaje se "t": -->
<!-- Mijenja se "pati ću (ćeš, će, ćemo, ćete)" u "patit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(pati )ć[eu]" ReplaceBy="patit ">
<ERROR Find="(?i)\b(pati)\r?\nć[eu]" ReplaceBy="patit">
<!-- Mijenja se "jati ću (ćeš, će, ćemo, ćete)" u "jatit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(jati )ć[eu]" ReplaceBy="jatit ">
<ERROR Find="(?i)\b(jati)\r?\nć[eu]" ReplaceBy="jatit">
<!-- Mijenja se "leti ću (ćeš, će, ćemo, ćete)" u "letjet ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(leti )ć[eu]" ReplaceBy="letjet ">
<ERROR Find="(?i)\b(leti)\r?\nć[eu]" ReplaceBy="letjet">
<!-- Mijenja se "hiti ću (ćeš, će, ćemo, ćete)" u "hitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(hiti )ć[eu]" ReplaceBy="hitit ">
<ERROR Find="(?i)\b(hiti)\r?\nć[eu]" ReplaceBy="hitit">
<!-- Mijenja se "kiti ću (ćeš, će, ćemo, ćete)" u "kitit ću (ćeš, će, ćemo, ćete)" -->
<ERROR Find="(?i)\b(kiti )ć[eu]" ReplaceBy="kitit ">
<ERROR Find="(?i)\b(kiti)\r?\nć[eu]" ReplaceBy="kitit">
<!----------------------------------------------->
<!-- Subtitle Workshop OCR Script file -->
<!-- Copyright © 2001-2004 URUSoft -->
<!-- http://www.urusoft.net -->
<!----------------------------------------------->
<SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ńŃáéíóúÁÉÍÓÚäëďöü">
<!-- Zamijeni sve riječi s "**(u)(s)ti ću" s "**(u)(s)t ću" i "**(u)(s)ti će*" s "**(u)(s)t će*" -->
<!-- ubačeno radi opisnih pridjeva, dok se glagoli i dalje mijenjaju!!! -->
<ERROR Find="[A-Za-z][u|s](ti )ć[eu]" ReplaceBy="t ">
<ERROR Find="[A-Za-z][u|s](ti)\r?\nć[eu]" ReplaceBy="t">
<ERROR Find="[A-Za-z](\x22)[A-Za-z]" ReplaceBy=" "">
</SWOCR>
// Remove style tags. Made by Bedazzle 2007.01.08.
// Fast implementation, use with care!
program RemoveStyleTags;
// ---------------------------------------------
var
n: Integer;
i: Integer;
p1: Integer;
p2: Integer;
txt: String;
begin
n := GetSubtitleCount;
for i := 0 to n-1 do
begin
txt := GetSubtitleText(i);
p1 := pos('<', txt);
p2 := pos('>', txt);
while ((p1>0) and (p2>0)) do
begin
txt := copy(txt, 1, p1-1) + copy(txt, p2+1, length(txt)-p2);
p1 := pos('<', txt);
p2 := pos('>', txt);
end;
SetSubtitleText(i, txt);
end;
end.
Milane, može li se skripta urediti da ispravlja i/ili briše nepotrebne italice?
<i>Dokaži.</i> -Kako? <i>-Ako tvrdiš da si
ono što jesi, saznat ćeš.</i></i>
-Tko je to? <i>-Tko je to?
Jesi li policajac?</i> -NCIS.</i>
<!-- Kad red počinje sa ...pa malo slovo -->
<ERROR Find="^(\.\.\.)[a-zšđčćž\x22\x3C]" ReplaceBy="">
te sve što ona treba da pita za liniju titla, jeste: ima li tačku na kraju i počinje li naredna linija velikim slovom. Prosto mi je neverovatno da se to ne može uraditi.
<ERROR Find="(Odkad )" ReplaceBy="Otkad ">
<ERROR Find="(Odkako )" ReplaceBy="Otkako ">
Primijetio sam nešto što bi se moglo dodat, odnosno zamijenit sa ovim gore postojećim.
Naime, i u hrvatskom i u srpskom [kolega provjerio], nijedna točna riječ u sebi nema zaredom ovaj skup slova
[odp] i [odk]