Вилучити курсив
Або вставте текст субтитрів
Параметри
Одне поле, сім виборів, і кожен вибір має власну сторінку. Курсив, жирний, підкреслення й колір вилучають один різновид діапазону й лишають решту оформлення рядка. «Усе» вилучає кожен діапазон, який моделює інструмент — ті чотири плюс караоке-таймінг — і не чіпає нічого іншого в тексті. «HTML» робить те саме й додатково вимітає кутову розмітку, що лишилася в тексті, бо інструмент її не моделює, як-от теги мовця VTT <v Bob> і <c.className>. «ASS» робить те саме для блоків перекриття, очищаючи коди {...}, не розпізнані під час розбору, як-от {\fad(500,500)}. Ця сторінка заповнює поле вибором, який називає її заголовок, і не пропонує інших.
У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.
Ця сторінка прибирає кожен діапазон курсиву з файлу субтитрів і не чіпає слів. Киньте файл, запустіть — і текст реплік повернеться точно таким, як був написаний: те саме написання, та сама пунктуація, ті самі переноси рядків, ті самі таймкоди, — а курсивної розмітки немає. Це не конвертація й не переписування: змінюється лише те, які відрізки тексту файл називає нахиленими.
Курсив — єдине вбудоване оформлення, яке вживає майже кожен файл субтитрів, бо воно несе значення, а не прикрасу. Діалог за кадром, голос у телефоні, оповідач, іншомовне слово, титульна картка й внутрішня думка традиційно пишуться курсивом. Ось чому це окрема сторінка від прибирання жирного чи підкреслення: у звичайному файлі ви хочете прибрати одне з них і зберегти решту, а сторінка, що прибирає все, цього не вміє.
Те саме видалення працює, хоч би як файл його записував. SRT, WebVTT, SBV і SAMI пишуть «<i>» і «</i>»; ASS і SSA пишуть «{\i1}» і «{\i0}»; TTML пише span зі стилем шрифту. Це різні синтаксиси одного факту, і файл читають за тим, чим він є, а не за тим, що заявляє розширення, тож прогін поводиться однаково на всіх. Одне сторінка навмисно лишає на місці — тег класу WebVTT на кшталт «<c.lawyer>»: це ім’я, яке визначає власна таблиця стилів сторінки, а не діапазон курсиву, і інструмент його ніколи не моделював; сторінка, що такі речі вимітає, каже про це у своїй назві.
Нічого не завантажується. Файл читають і записують у вкладці браузера, тож матеріал, який не може покинути машину, лишається на ній, а файл, у якому курсиву не було, повертається байт у байт.
Приклади
Діалог за кадром у файлі SRT
Вхід
1
00:00:01,000 --> 00:00:02,000
<i>A voice off screen.</i> The door opens.
2
00:00:03,000 --> 00:00:04,000
<i>I can hear you.</i>
Результат
1
00:00:01,000 --> 00:00:02,000
A voice off screen. The door opens.
2
00:00:03,000 --> 00:00:04,000
I can hear you.
Обидва діапазони курсиву йдуть, включно з тим, що покриває цілу репліку, а текст другої репліки недоторканий. Там, де діапазон курсиву стояв поруч зі звичайним діалогом у тому самому рядку, слова з обох боків змикаються одним пробілом — так рядок і виглядав для читача весь час.
Файл WebVTT, що несе й тег класу
Вхід
WEBVTT
00:00:01.000 --> 00:00:02.000
<c.lawyer><i>The defendant was not present.</i></c>
Результат
WEBVTT
00:00:01.000 --> 00:00:02.000
<c.lawyer>The defendant was not present.</c>
Курсив іде, а «<c.lawyer>» лишається. Ім’я класу — не діапазон стилю: його шукають у таблиці стилів сторінки, і «<c.lawyer>» там вільно може означати будь-що. Лишити його — чесне прочитання тега, якого інструмент ніколи не моделював; сторінка, що прибирає розмітку такої форми, — «Прибрати HTML-теги з субтитрів».
Файл без курсиву
Вхід
1
00:00:01,000 --> 00:00:02,000
<b>The room was dark.</b>
2
00:00:03,000 --> 00:00:04,000
She left early.
Результат
1
00:00:01,000 --> 00:00:02,000
<b>The room was dark.</b>
2
00:00:03,000 --> 00:00:04,000
She left early.
Прибирати було нічого, тож файл повертається байт у байт, а жирний лишається там, де був. На файлі, де курсив скоріше підозрюють, ніж бачать, це найдешевший спосіб дізнатися — і він не забере жирний потай.
Часті запитання
Що вважається діапазоном курсиву у файлі субтитрів?
Те, як файл його записує. У файлі SRT або WebVTT це пара тегів «<i>» навколо якихось слів; у файлі ASS або SSA — «{\i1}» і «{\i0}»; у TTML — span зі стилем шрифту italic. Усі три описують одне й те саме, і сторінка читає кожен файл за форматом, чим він насправді є, тож знаходить діапазон у будь-якому синтаксисі. Вона не вгадує: текст, що лише виглядає нахиленим, як рядок, набраний декоративним шрифтом, не має діапазону курсиву й не чіпається.
Чи змінює видалення курсиву таймкоди або текст?
Ні те, ні те. Сторінка переписує лише розмітку навколо слів, тому кожна репліка зберігає початок і кінець до мілісекунди, порядок реплік — файловий, а кількість реплік не змінюється. Текст байт-ідентичний, окрім самих символів тегів: жодного розділового знака не додано, жоден рядок не злитий з іншим, а репліка з двома рядками й після прогону має два рядки.
Чи можна прибрати курсив з одних реплік і лишити на інших?
Не на цій сторінці: робиться цілий файл, кожна репліка, кожен рядок. Якщо частині файлу курсив треба зберегти, шлях, що працює сьогодні, — запустити сторінку й потім або повернути теги на репліки, які ви хотіли зберегти, або спершу розділити файл і запустити сторінку на одній частині. Вибір для кожної репліки кинутий файл висловити не може — у файлі немає нічого, звідки сторінка його прочитала б.
Чому курсив такий важливий, що має власну сторінку?
Бо в субтитрах він зазвичай несе значення, а не прикрасу. Рядок курсивом — це традиційно голос не на екрані, оповідач, іншомовне слово або внутрішня думка, і читач, що це втрачає, втрачає частину сказаного сценою. Ось чому сторінка існує окремо від прибирання всього оформлення: у реальному файлі ви часто хочете прибрати курсив заради редакційного стилю, лишивши жирний заголовковий рядок жирним.
Чому тег класу WebVTT лишився в моєму файлі після цього прогону?
Бо ім’я класу — не діапазон курсиву. «<c.lawyer>» не каже, що текст оформлено певним чином, — воно каже, що текст належить до названої групи, а який вигляд має ця група, вирішує таблиця стилів, якої файл не містить. Інструмент такі теги ніколи не моделював, тож лишає їх у тексті, а не видаляє те, чого не вміє прочитати. «Прибрати HTML-теги з субтитрів» — сторінка, що їх вимітає, і вона каже про це у своїй назві.
До чого застосовується видалення курсиву — до слів усередині репліки чи до цілої репліки?
До того відрізка тексту, який позначив файл, а це часто не ціла репліка. Рядок може початися з курсивного зауваження, а потім повернутися до звичайного шрифту, і розмітку втрачає лише зауваження; діапазон курсиву, що охоплює цілу репліку, як зазвичай буває з діалогом за кадром, забирає весь рядок. Так чи так самі символи ніколи не переписують, тож ніщо не залежить від того, де діапазон почався.