Brought to you by Headoff Xen

Здравейте ( Вход | Регистрация )


Collapse

> subs.sab.bz - Информация

Сериал/Прогрес Dept. Q (2025) - 01x01 от The_Assassin new7.gif
Zero Day (2025) - Season 1 от The_Assassin new7.gif
The Lincoln Lawyer - Сезон 3 от S.N. new7.gif
The Cleaner - 02x04 от lora632
MobLand (2025) - Сезон 1 от The_Assassin
Andor (2025) - Season 2 от Слав Славов
Shef (2025) - 07x05 от Василиса
Daredevil: Born Again - Season 1 от The_Assassin
Ransom Canyon (2025) - 01x05 от JoroNikolov
Dark Winds (2025) - Сезон 3 от The_Assassin
УебРип субтитри Murderbot (2025) - 01x06 от Слав Славов new7.gif
The Amateur (2025) - Субтитри от sub.Trader new7.gif
Warfare (2025) - Субтитри от Fastuka new7.gif
Tom Daley: 1.6 Seconds - Субтитри от Слав Славов
Sinners (2025) - Субтитри от Слав Славов
Bottoms (2023) - Субтитри от Слав Славов
Black Bag (2025) - Субтитри от sub.Trader
Fountain of Youth (2025) - Субтитри от Слав Славов
Bloody Trophy (2025) - Субтитри от Слав Славов
The Handmaid's Tale - 06x08 от JoroNikolov
Филм/Прогрес The Legend of Ochi (2025) - Субтитри от Слав Славов new7.gif
Uglies (2024) - Субтитри от KikoDraka new7.gif
Home Sweet Home... - Субтитри от С.Славов new7.gif
In the Lost Lands (2025) - Субтитри от mia_one
Холоп (2024) - Субтитри от stargazer
The Monkey (2025) - Субтитри от Слав Славов
Black Bag (2025) - Субтитри dimi123
Captain America: Brave... - Субтитри от haskotoo
High Ground (2025) - Субтитри от mia_one
Last Breath (2025) - Субтитри от Слав Славов
> Скриптове за Subtitle Workshop, Pascal scripts
adenry
коментар Feb 8 2009, 09:18 PM
Коментар #1




Джедай
***
Качени субтитри

Група: СтелТ
Коментари: 220
Регистриран: 9-October 07
Град: София
Потребител No.: 46 247
Статус: Офлайн
Моят блог


Здравейте!

Както повечето от вас знаят, Subtitle Workshop поддържа външни скриптове на паскал. Извикването им става през менюто Tools -> Pascal Scripts (Инструменти -> Скриптове на Pascal). Искам да предложа на вниманието ви няколко скрипта, които написах с желанието да подобря възможностите на SW и да улесня работата с нея.
Внимание: скриптовете са за Subtitle Workshop 2.51! Нямам представа как ще се държат при други версии, не съм пробвал.
Тъй като реших да опиша подробно всеки скрипт постът е изключително дълъг. Ако не ви се чете - експериментирайте сами какво правят скриптовете и как работят, но задължително прочетете в края на поста как се "инсталират" и как да им присвоите клавишен шорткът.

СКРИПТОВЕ ЗА НОВ СУБТИТЪР - дефинирайте сами времетраенето на новия субтитър, както и паузата спрямо предния.
Файлове: "1 Insert Subtitle.pas", "2 Insert Before.pas", "8 Scripts Settings.pas"
ОписаниеОтвори!
Това са два скрипта, заместващи командите Insert subtitle и Insert before,
тоест добавянето на нов субтитър с клавиша INSERT или с SHIFT+INS за добавяне преди селектирания субтитър.

Проблемите на съществуващите в SW команди са 2:
1. Никъде няма настройка, чрез която да кажете какво да е времетраенето на новия субтитър. То винаги е 1 секунда.
2. Никъде няма настройка, чрез която да кажете каква да е паузата между новия субтитър и предния. Тя винаги е 1 милисекунда.

Въпросните скриптове решават тези проблеми.
Третият скрипт е за настройките и ви отваря прозорче, в което можете сами да въведете тези две стойности (в милисекунди).
Разбира се, от тези два скрипта няма да има никаква полза, ако не ги направите да се извикват с шорткътовете,
с които сте свикнали да работите (Insert и shift+insert). Как се прави това можете да прочетете в края на този пост.

Скриптът, заместващ командата Insert subtitle има един недостатък:
Ако сте селектирали субтитър, намиращ се в края на таблицата, съдържаща всички субтитри и техния тайминг, и имате скрол вдясно,
когато добавите нов субтитър таблицата няма да се скролне сама надолу, за да видите новия субтитър.
Налага се сами да скролнете с мишката, за да го видите.
За мен това е приемлива цена за решаването на двата проблема, посочени по-горе.

СКРИПТОВЕ ЗА ТАГОВЕ - <i>, <b>, <u> - работят само със srt формат. - поддръжка на тагове за части от субтитър, не само за целия.
Файлове: "4 Save With Fixed Tags (srt only).pas", "5 Fix Tags (srt only).pas"
ОписаниеОтвори!
Проблемът с таговете е, че SW поддържа форматиране само на целия субтитър:
Случвало ли ви се е да отваряте Notepad, за да поправяте таговете? На мен - да. А случвало ли ви се е, след като сте си играли 10 минути
да ги оправяте да решите да отворите субтитрите със SW - я за редакция, я за синхронизация за друг рилийс? След запазването на файла
таговете ви отново не са като хората. Няма как да са, създателите на SW са си го казали, затварящ таг не се поддържа.

Частично решение на този проблем се намира в настройките на SW: Settings -> Settings... -> General. Там има отметка "No interaction with tags"
("Без взаимодействие с тагове"). Отмятате я, рестартирате програмата и отваряте субтитър. Сега SW не е докоснал таговете. Вече можете
да си работите спокойно с тях и да поставяте затварящи тагове без после SW да ви ги пипа. Но, разбира се, и тук има проблем. В този случай SW
възприема таговете като част от текста на субтитъра. В резултат таговете ви влияят на броя на символите. И тогава един болднат субтитър от 36 символа
бързо ще се превърне в субтитър с "прекалено голяма дължина", тъй като програмата отчита 36-те символа плюс 3 за отварящ таг и 4 за затварящ - станаха 43.
Разбира се можете да игнорирате това и да си смятате наум дължината на всеки субтитър с тагове, но на мен това не ми е удобно.

За използването на въпросните два скрипта трябва да нямате отметка на опцията "No interaction with tags" и да имате отметка на опцията под нея -
"Work with style tags". Скриптовете се използват по следния начин:

Първа ситуация - създавате субтитър от нулата, тоест нямате готов тайминг. Всичко, което трябва да правите, е да поставяте таговете където
и както си пожелаете, колкото пожелаете и т.н. Поставяйте затварящите тагове където ви трябва. Важното е само те да се отбелязват по същия начин,
както и отварящите - без "/". Ето пример:
Код
<i>Къде са субтитрите?<i>
- Ето <b>тук<b>! На <u>subs.sab.bz<u>!

В тази ситуация искате "Къде са субтитрите?" да е в италик, думата "тук" да е удебелена, а адресът subs.sab.bz да е подчертан.
Всичко останало е нормален текст. Друг пример:
Код
<b>Целият текст е удебелен,
но <i>само тази част е и наклонена

Когато искате цял ред да е italic, bold или underline, слагайте си съответния таг в началото на субтитъра, както сте правили досега. Разлика няма
със стандартния метод (не е нужно да поставяте затварящ таг).
Когато приключите работата със SW извиквате скрипта за запазване на srt файл с поправка на таговете, въвеждате пътя и името на файла и сте готови.
Най-важното е това да е последното ви действие преди да затворите програмата, не използвайте стандартното запазване на SW, защото то ще "омаже" нещата.
След като запазите файла със скрипта за запазване на srt файл с поправка на таговете, затворете SW. SW ще ви пита да запази ли файла - откажете.

Втора ситуация - отваряте субтитри за редакция или превод. В този случай, веднага след като отворите файла, стартирате скрипта за корекция на таговете,
въвеждате пътя и името на файла, който е отворен и скриптът изкарва всички тагове правилно, като премахва наклонената черта на затварящите тагове,
както описах по-горе. Нататък действате както в първия случай - работите и запазвате с другия скрипт.

Причината да се маха наклонената черта от затварящите тагове е, че така те няма да влияят на броя на символите. Така се съчетава правилното отчитане
на броя на символите и възможността да работите с тагове като хората. За удобство можете да дадете клавишни шорткътове на скриптовете.
Как се прави това можете да прочетете в края на този пост.

Недостатъкът - трябва да въвеждате пътя на файла на ръка всеки път. Това е досадно, особено когато файла го няма в списъка "recently opened files".
Също така недостатък е фактът, че трябва да не забравяте да изпълнявате скрипта за поправка на тагове веднага след отваряна на файла
и да запазвате файла с другия скрипт и да не го запазвате със стандартната команда. Направите ли стандартен сейв след изпълнение
на скрипта за запазване с тагове, таговете ще се "омажат". Ако още не сте затворили SW - правите пак сейв със скрипта - всичко ще е наред.
Ако сте затворили SW в последствие ще трябва да поправяте излишни затварящи тагове, така че внимавайте.

Не се впечатлявайте от дължината на обяснението, веднъж като разберете как се ползват скриптовете за тагове помагат и пестят време. Само трябва да внимавате.

СКРИПТ ЗА ЗАКРЪГЛЯВАНЕ НА СТОЙНОСТИТЕ НА ТАЙМИНГА
Файлове: "7 Round Time Values.pas"
ОписаниеОтвори!
Това може да е полезно на хората, работещи в милисекунди. Може и да не е.
Скриптът просто закръгля стойностите на началното и крайно време на всеки субтитър до определено от вас число.
Аз го ползвам за прегледност и удобство - така лесно се ориентирам какви са паузите и времетраенето и те стават по-удобни за корекция.
Удобно е да закръглите например при 10, 50 или 100 милисекунди.

Забележка: Трябва да запазвате файловете си в .srt формат, за да се запази ефектът от скрипта. .sub форматът пази тайминга във фреймове и така унищожава ефекта от закръглянето (Благодарности на simo76 за помощта при откриването на този недостатък).

СКРИПТ ЗА ЗАДАВАНЕ НА МИНИМАЛНО ВРЕМЕТРАЕНЕ (ПАУЗАТА) МЕЖДУ ДВА СУБТИТЪРА
Файлове: "6 Fix Pauses.pas"
ОписаниеОтвори!
Такава опция SW не предлага. Този скрипт ще е полезен за хората, които държат винаги да има някаква минимална пауза между всеки два субтитъра.
Доколкото помня е прието това да е нещо от порядъка на 4 кадъра. При по-малко се получава нещо като "сливане" на субтитрите
и окото може да не усети смяната на субтитъра, което не е добре.
При изпълнение на команди като Duration Limits (CTRL+L) или Automatic Durations (Shift+Ctrl+R) SW не позволява субтитрите да се презастъпят,
но оставя минимална разлика между тях от любимата им 1 милисекунда, при което се получава въпросният ефект на "сливане" на някои субтитри.
След което няма как да оправите този проблем, освен на ръка.
Вместо това използвайте този скрипт. След като сте приключили с автоматичните манипулации на тайминга стартирайте този скрипт,
посочете минималното времетраене на паузите (в милисекунди), което желаете и стартирайте скрипта чрез един от четирите бутона.
Ето и обяснението на различните методи за задаване на минимална пауза, съответстващи на четирите бутона:

Нека имаме тези субтитри:
Код
1
00:00:00,000 --> 00:00:02,000
Какво?

2
00:00:02,001 --> 00:00:04,001
Нищо.

1. Increase second subtitle start value. Ако сте задали например 160 милисекунди минимална пауза, поправените субтитри ще изглеждат така:
Код
1
00:00:00,000 --> 00:00:02,000
Какво?

2
00:00:02,160 --> 00:00:04,001
Нищо.

2. Decrease first subtile end value. Ако сте задали 160 милисекунди минимална пауза, поправените субтитри ще изглеждат така:
Код
1
00:00:00,000 --> 00:00:01,841
Какво?

2
00:00:02,001 --> 00:00:04,001
Нищо.

3. Both equally. Ако сте задали 160 милисекунди минимална пауза, поправените субтитри ще изглеждат така:
Код
1
00:00:00,000 --> 00:00:01,921
Какво?

2
00:00:02,081 --> 00:00:04,001
Нищо.

4. Shift subtitles (preserve duration).
Този метод е по-различен. При предишните установяването на минималната пауза става за сметка на съкращаване на времетраенето на някой от двата субтитъра
или и на двата. Тъй като минималните паузи са относително кратки (повече от 200 милисекунди според мен е излишно) това не влияе особено на един нормален субтитър.
Но някой субтитър, който има минимално времетраене (например 2 секунди) може да се превърне в "субтитър с прекалено кратко времетраене".
Ако искате да избегнете това, но все пак държите на минималните паузи ползвайте този 4-ти метод. Той измества втория субтитър напред колкото е необходимо,
за да се получи минималната пауза и да се запази времетраенето. Ако при това положение паузата между изместения и следващия субтитър пък стане по-малка от тази,
която сте указали чрез скрипта и втория се измества. И така докато не се стигне до някоя по-голяма пауза.

Този четвърти метод не е подходящ в ситуации, където имате много краткотрайни реплики една след друга, те ще се изместят прекалено много напред във времето.
Ако пък искате да поправите всички паузи, с изключение на тези, които ще направят субтитрите с по-малко времетраене от минималното,
изпълнете някой от първите три метода, след което приложете наново команда Duration Limits (CTRL+L).

СКРИПТ ЗА ОГРАНИЧЕНИЕ НА ВРЕМЕТРАЕНЕТО - разширение на възможностите на CRTL+L. <виж скрийншот>
Файлове: "3 Extended Duration Limits.pas"
ОписаниеОтвори!
Това е скрипт, който замества командата Duration Limits (CTRL+L). На практика ви дава същите възможности като нея, плюс няколко допълнителни.

Максимално времетраене.
Тук единственото допълнение е възможността да изберете как да стане удължаването:
Shorten in the end only - скъсява крайното време на субтитъра. Така работи вградената в SW команда.
Shorten in the brginning only - скъсява субтитъра от към началото му. Тоест обратното на първия.
Shorten on both sides equally - скъсява субтитъра по равно и от двете страни.
Аз лично винаги използвам първия метод, както си е в стандартната команда, но съм оставил възможността за избор. Кой знае кога ще потрябва.

Минимално времетраене.
Тук е по-интересно. Отново можете да избирате метод. Първите три са аналогични на трите метода при съкращаването на твърде голямо времетраене:
Extend in the end only - увеличава времетраенето, като увеличава времето за край на субтитъра. Така работи вградената в SW команда.
Extend in the brginning only - увеличението става, като се намалява стойността на времето за начало на субтитъра, тоест той ще се появи по-рано.
Extend on both sides equally - нещо като комбинация от горните два метода. Увеличението става по равно от двете страни.
Четвъртият метод ще обясня след малко.

Стандартната команда Duration Limits на SW предпазва субтитрите от застъпване, но оставя интервал между тях само 1 милисекунда.
Тук можете да определите този интервал сами. Също така можете и да дезактивирате предпазването от застъпване, но от това няма особен смисъл.
Тези неща стават от опцията "Prevent overlapping - no less then:" и съответно полето за милисекундите под нея.

Четвъртият метод (Extend to fit best) е причината, поради която написах този скрипт. Той работи само при включено предпазване от презастъпване. Ето какво прави:
Първо се опитва да разшири субтитъра в края, както вградения в SW метод. За да не се получи презастъпване обаче,
може субтитърът да не достигне желаното времетраене. Вграденият в SW метод (или Extend in the end only) не прави нищо по въпроса, но този четвърти метод не се отказва.
Скриптът опитва да разтегли времетраенето и в началото, т.е. да направи субтитърът да се покаже по-рано (като разбира се пак предпазва от презастъпване).
Разбира се едва ли ще искате субтитърът да започва прекалено рано, затова използвайте този метод с малка стойност на минималното времетраене - например 1500ms.
След това използвайте първия метод при стойност 2000 или 2500. Тази комбинация върши най-добра работа.

Опцията "Shift subtitles if necessary to achieve duration" прави това което казва името й. Измества субтитрите напред колкото е нужно,
за да достигне минималното времетраене. Подходящо е да се използва при още по-малки стойности - например 1000ms.
При по-големи рискувате да се получат големи измествания. Но всичко зависи от ситуацията.

Накрая има и една опция "Show report". Ако я включите ще получите данни за това колко субтитъра са били скъсени и колко удължени след изпълнението на скрипта.

Удобно е да дадете на този скрипт шорткътът CTRL+L, с който вече вероятно сте свикнали. Как се прави това можете да прочетете в края на този пост.

КАК ДА "ИНСТАЛИРАТЕ" СКРИПТОВЕТЕ
Цитат
Това е важно! Скриптовете не само се поставят в съответната директория, има и друго!
Ето стъпките, които трябва да изпълните:
1. Поставяте всички файлове с разширение .pas в директорията "PascalScripts" (поддиректория на главната директория на програмата)
2. Поставяте файла PascalScripts.ini в главната директория на програмата (там където се намира SubtitleWorkshop.exe)
3. С Notepad отваряте всички файлове с разширение .pas (за момента без 6 Fix Pauses.pas и 7 Round Time Values.pas). Във всеки един файл намирате реда,
където пише iniPath:='C:\Program Files\Subtitle Workshop 2.51\'; и замествате пътя към програмата с вашия. Изключително важно е да оставите накрая наклонената черта "\" накрая!
4. Стартирате SW и използвате скриптовете smiley.gif
5. Ако сте прочели целия пост дотук, знаете, че е удобно да дадете клавишни шорткътове на някои от скриптовете. Ето как става това:

КАК ДА НАГЛАСИТЕ КЛАВИШНИТЕ ШОРТКЪТОВЕ НА ПРОГРАМАТА (В ЧАСТНОСТ ЗА СКРИПТОВЕТЕ)
Цитат
Всички шорткътове са описани във файла shortcuts.key, намиращ се в главната директория на SW.

Отваряте го с Notepad, намирате командата, чийто шорткът искате да промените и... го променяте. Запазвате файла, рестартирате SW и сте готови.
В частност за скриптовете - намирате SetKey(aPascalScript1,Shift+Ctrl,1). Това и следващите 4 са шорткътовете за скриптовете. За съжаление можете да имате
шорткътове само за 5 скрипта. Всеки един - 1,2,3,4,5 съответства на първи, втори и т.н. по азбучен ред скрипт, намиращ се в директорията PascalScripts.
Забележете, че имената на .pas файловете са важни за подредбата на шорткътовете. Затова всички .pas файлове, които съм качил, имат номера пред имената си.

При мен файлът "1 Insert Subtitle.pas" е първи по име и съответно първият ми шорткът е променен на SetKey(aPascalScript1,None,Ins).
Вторият файл е "2 Insert Before.pas" и съответно имам SetKey(aPascalScript2,Shift,Ins).

Добре е да промените и шорткътовете на съществуващите команди,
ако използвате техните, за да не се дублират. Аз съм ги променил на SetKey(aInsertSub,Ctrl,Ins) и SetKey(aInsertBefore,Ctrl+Shift,Ins).

И НАКРАЯ...

Постът ми стана голям колкото книжка... Изчелите го целия ги поздравявам за търпението. Надявам се поне някои от скриптовете да са ви полезни.
Уверете се, че сте спазили инструкциите за "инсталация" и би трябвало да нямате проблеми. Тествал съм ги само на SW5.1 под Windows XP SP3.

Искам изрично да подчертая, че не отговарям за проблеми, причинени от скриптовете! При мен проблеми не е имало от абсолютно никакво естество и не очаквам да има при вас, не се притеснявайте. На теория най-многото да ви забие SW, нищо повече. Естествено съм изчистил всички възможности за възникването на подобни проблеми, но все пак никога не се знае, исках да отбележа това.

Призовавам всеки, който открие бъг или има проблем със скриптовете да пише тук, а не да се отказва от тях. Бъговете са нещо поправимо smiley.gif
Който има коментари по скриптовете, идеи за подобряването им или за нови скриптове също нека пише. Споделяйте и ваши скриптове тук, ако и вие сте писали такива!

Още интересни скриптове можете да намерите тук: http://www.urusoft.net/forum/viewtopic.php?id=33


Отново - надявам се поне някой скрипт да ви е бил полезен!
Ползотворна работа!

------------------------------------

Този коментар е бил редактиран от jedi_vader на Apr 20 2010, 10:31 AM
Прикачени файлове
Прикачен файл  PascalScripts.rar ( 17.36k ) Брой сваляния: 341
 



------------------------------------
Go to the top of the page PM
 
+Quote Post

Пишете в тази тема
jedi_vader   Скриптове за Subtitle Workshop   Feb 8 2009, 09:18 PM
Thank YOU!   <#thank#>   Feb 8 2009, 09:35 PM
sty   ************** Проблемът е решен. Някои браузъри п...   Feb 9 2009, 02:55 AM
jedi_vader   ***************   Feb 10 2009, 12:35 AM
Sisq0   Да, има скрол в code тага. Може би с някои браузър...   Feb 10 2009, 12:40 AM
peterx   А как мога да променя менютата на скриптовете на б...   Nov 21 2009, 04:04 PM
Zaza14   А как мога да променя менютата на скриптовете на б...   Nov 24 2009, 10:09 PM
peterx   Отвори си файла със скрипта в ноутпад и си напиши ...   Dec 5 2009, 11:44 AM
MichaelZ   jedi_vader, благодаря! Харесах си скриптовете ...   Dec 5 2009, 11:07 AM
shad©w   Голямо благодаря и от мен! Също искам и да пре...   Apr 23 2011, 06:08 AM
tonyy   shad©w, опитах както каза, нещо не се получи. След...   Aug 29 2011, 10:36 PM
paket   http://i1227.photobucket.com/albums/ee429/dedoto/S...   Sep 7 2011, 08:03 PM
SkylimiT   При мен, когато опитам да използвам Extended Durat...   Sep 7 2011, 11:42 PM
kalooo   RE: Скриптове за Subtitle Workshop   Sep 8 2011, 10:28 AM
SkylimiT   Already did that...   Sep 8 2011, 04:56 PM
Victoria   Ако си с Уиндоус 7 и СВ е някъде в Program Files, ...   Sep 8 2011, 04:58 PM
SkylimiT   http://img339.imageshack.us/img339/6888/capture2ym...   Sep 8 2011, 05:24 PM
ReSpEkT   Някой да има проблем със скрипта Extended Duration...   Mar 12 2016, 11:11 AM
moiraines   Благодаря много! "Fix Pauses" просто...   Apr 8 2018, 08:31 AM


Reply to this topicStart new topic Thank You

 



- Олекотена версия Час: 17th June 2025 - 08:22 AM
Special for Translator's Heaven PHPTranslator's Converted By Translator's Heaven ©2006 InvisionCore
    Headoff Xen   Елате в .: BGtop.net :. Топ класацията на българските сайтове и гласувайте за този сайт!!!