Вирівняти переноси в субтитрах
Або вставте текст субтитрів
Параметри
Одне поле, п’ять виборів, і кожен вибір має власну сторінку. «Переформатувати» перерозподіляє кожну репліку до заданої кількості колонок, що може скоротити задовгий рядок так само легко, як підтягнути короткий. «Розділити довгі рядки» розбиває лише рядки, довші за кількість, і лишає решту точно як були. «Вирівняти» зберігає наявну кількість рядків кожної репліки й переставляє слова між ними, доки найдовший рядок не стане якомога коротшим. «З’єднати» ставить кожну репліку в один рядок. «Обмежити» не чіпає жодної репліки, що вже в межах кількості рядків. Ця сторінка заповнює поле вибором, який називає її заголовок, і не пропонує інших.
У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.
Ця сторінка вирівнює рядки, які в репліці вже є. Кількість рядків вона лишає точно такою, якою її записав файл, і пересуває слова між ними, доки найдовший рядок не стане якомога коротшим. Репліка, що прийшла двома рядками на 63 і 5 колонок, виходить двома рядками на 33 і 35, а сусідня репліка, яка вже була рівною, не рухається взагалі.
Саме це відрізняє сторінку від тих, що переносять або розбивають. Перенесення працює до заданої вами кількості колонок і може додавати чи прибирати рядки; сторінка розбиття чіпає лише рядки, довші за межу. Тут кількість рядків узагалі не параметр — це факт, прочитаний із файлу, щось, що ви або ваш плеєр уже вирішили, — і змінюється тільки те, де всередині неї стоять слова.
Правило сторінки — найдовший рядок має бути якомога коротшим, і це не те саме, що розкласти слова порівну. Слова бувають різної довжини, тому поділ на однакову кількість слів дає один довгий рядок і один короткий. Сторінка натомість питає, наскільки вузькими могли б бути рядки, якби репліка й далі мала стільки з них, і складає текст до цієї ширини. На практиці два рядки виходять однакової довжини — це те, що ви помічаєте на екрані.
Деякі репліки лишаються зовсім недоторканими, і сторінка каже про це порожнім звітом, а не заявою про успішний прогін. Репліка з одним рядком не має другого рядка, куди можна пересунути слова. Репліка, де кожен рядок уже містить одне слово, настільки коротка, наскільки можуть бути стільки рядків. А рядок, що починається з тире, позначає зміну мовця: такі блоки тримають окремо один від одного, бо перенести половину слів однієї людини до іншої — не вирівнювання, а плутанина. Усе працює у вашому браузері, без завантаження, в одинадцятьох форматах, чиї репліки можуть мати більше одного рядка: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON і CSV.
Приклади
Короткий другий рядок і довгий перший
Вхід
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there by six
or wait for the later one.
Результат
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there
by six or wait for the later one.
Перший рядок був на 43 колонки, другий — на 26, тому сторінка перенесла by six з першого рядка на другий і спинилася: 36 і 33 колонки — найближче, до чого цю пару можна звести, а подальший рух зробив би довшим уже другий рядок. Репліка й далі має два рядки, кількість слів і їхній порядок ті самі, а таймкод і номер репліки недоторкані.
Репліка, яка вже вирівняна
Вхід
1
00:00:01,000 --> 00:00:04,000
The train leaves at six
in the evening Seven.
Результат
1
00:00:01,000 --> 00:00:04,000
The train leaves at six
in the evening Seven.
23 і 21 колонка — найрівніше, на що ця пара рядків здатна, тому сторінці нема чого робити й файл повертається байт у байт. Нічого й не повідомляється, бо прогін, який не знайшов роботи, — не прогін, який щось зробив. Це варто побачити раз: інструмент, що все одно переписав би рядки, ризикував би змінити вже правильний файл, і в звіті не було б нічого, що вас попередило б.
Китайський рядок проти англійського
Вхід
WEBVTT
00:00:01.000 --> 00:00:04.000
你好
Good morning to you everyone
Результат
WEBVTT
00:00:01.000 --> 00:00:04.000
你好 Good morning
to you everyone
Китайський рядок — два ієрогліфи, тобто 4 колонки, проти англійського рядка на 28: репліка, яку жоден читач не назве врівноваженою, і сторінка з цим згодна. Вона підтягує Good morning вгору, і рядки стають на 17 і 15 колонок. Підрахунок символів, а не колонок, назвав би китайський рядок двома одиницями й майже нічого не пересунув, лишивши саме ту нерівність, заради якої ця сторінка існує. Вирівнюють те, як рядки виглядають на екрані, а не кількість символів у них.
Часті запитання
Що саме змінює вирівнювання переносів у субтитрах?
Місце слів усередині репліки — і більше нічого. Кількість рядків лишається такою самою, кількість слів і їхній порядок теж, а початок, кінець і номер репліки належать файлу. Це сторінка для випадку, коли кількість рядків уже правильна для вашого плеєра чи вашого стилю, а проблема лише в тому, що один рядок значно довший за сусідній.
Чому вирівнювання не дорівнює рівномірному поділу слів?
Бо слова не однакової довжини, тому однакова кількість слів на рядок дає нерівний вигляд. Рядок зі словом I і рядок зі словом internationalization мали б по одному слову, а одне з них завширшки 20 колонок. Сторінка питає, наскільки вузькими можуть бути рядки, поки їх і далі стільки, і складає текст до цієї ширини — тому два рядки виходять близькими за мірою, а не за кількістю слів.
Чи змінює вирівнювання кількість рядків у субтитрі?
Ні, і в цьому суть сторінки. Кількість рядків читається з репліки й використовується як стала умова, тому репліка з двох рядків повертається реплікою з двох рядків, а з трьох — з трьох. Якщо вам потрібна інша кількість рядків, сторінка перенесення працює до заданої кількості колонок і може дати більше або менше рядків, а сторінка обмеження рядків працює до максимуму.
Чому рядки з тире лишилися невирівняними?
Бо тире на початку рядка позначає зміну мовця, і два блоки вирівнюють окремо один від одного, а не один проти одного. Два рядки на 14 і 18 колонок лишаються на 14 і 18: перенесення частини слів одного мовця на рядок іншого поставило б дві людини в один рядок, що протилежне тому, для чого ці тире стоять. Блок з одного рядка взагалі не має куди рухати слова.
Що буде з реплікою, яка має лише один рядок або по одному слову в рядку?
Вона повертається незмінною, і прогін нічого про неї не повідомляє. Один рядок не має другого, куди можна пересунути слова. Репліка, де кожен рядок містить одне слово, уже настільки коротка, наскільки можуть бути стільки рядків, бо слово не ділиться. В обох випадках файл проходить наскрізь без переписування, а звіт лишається порожнім, а не рахує репліку обробленою.
У яких форматах можна вирівняти переноси рядків?
В одинадцятьох, де репліка може мати більше одного рядка: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON і CSV. Звичайний текст виключено, бо там один рядок тексту — це одна репліка, тому кожна репліка має рівно один рядок і вирівнювання ніколи нічого не зробить. Одинадцять форматів читаються за вмістом, а не за розширенням файлу, і під час роботи нічого не завантажується.