Перейти до основного вмісту
SubtitleMatrix

Переформатувати субтитри до довжини

Текст і оформленняПереформатування рядків
Або вставте текст субтитрів

Параметри

Одне поле, п’ять виборів, і кожен вибір має власну сторінку. «Переформатувати» перерозподіляє кожну репліку до заданої кількості колонок, що може скоротити задовгий рядок так само легко, як підтягнути короткий. «Розділити довгі рядки» розбиває лише рядки, довші за кількість, і лишає решту точно як були. «Вирівняти» зберігає наявну кількість рядків кожної репліки й переставляє слова між ними, доки найдовший рядок не стане якомога коротшим. «З’єднати» ставить кожну репліку в один рядок. «Обмежити» не чіпає жодної репліки, що вже в межах кількості рядків. Ця сторінка заповнює поле вибором, який називає її заголовок, і не пропонує інших.

Рахується в колонках, а не символах, тож китайський або японський символ займає дві, а латинська літера з наголосом — одну. 42 — звичайна цифра для субтитрів латиницею. Зменште — рядки стануть коротшими, але численнішими; нічого не обрізається.

У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.

Ця сторінка перекладає текст кожної репліки до обраної вами довжини рядка. Рядок, довший за неї, ламається на межі слова; рядок, коротший, підтягується назад у рядок вище, коли вони вдвох уміщаються разом. Це єдина сторінка групи, яка робить обидві дії, і саме тому до неї тягнуться, коли переноси у файлі роз’їхалися, а не коли один рядок задовгий.

Довжина рахується в колонках, а не в символах. Китайський чи японський ієрогліф займає дві колонки, латинська літера — одну, тому межа 42 вміщає двадцять один ієрогліф або сорок дві латинські літери. Сорок два — цифра, яку латинські субтитри використовують десятиліттями, і тут вона типова. Нічого ніколи не обрізається, щоб досягти числа: сторінка пересуває переноси й лишає слова, тому рядок, який неможливо ввести в межу жодним переносом, вона повідомляє.

Рядок, що починається з тире, позначає зміну мовця. Такі рядки — стіни. Сторінка перекладає слова з обох боків від такої стіни, але не зливає дві в один рядок, бо поставити діалог двох людей в один рядок — помилка читання, яку ці тире й писалися, щоб не допустити. Якщо ви хочете розчинити цю стіну, сторінка прибирання переносів робить саме це й рахує, скільки розчинила.

Усе відбувається у вашому браузері. Жоден файл не завантажується й обліковий запис не потрібен. Приймаються всі одинадцять форматів, які несуть більше одного рядка в репліці: 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

2
00:00:05,000 --> 00:00:09,000
I told you we would miss the last train if we stayed any longer

Результат

1
00:00:01,000 --> 00:00:04,000
We could take the train and be there by
six

2
00:00:05,000 --> 00:00:09,000
I told you we would miss the last train if
we stayed any longer

Дві протилежні вади в одному файлі, обидві виправлені за типової довжини 42 колонки. Перша репліка прийшла рядками на 23 і 19 колонок, які разом дають 43 — одну колонку понад межу, — тому сторінка з’єднує їх і відразу ламає на слово раніше, лишаючи 39 і 3. Друга була записана одним рядком на 63 колонки й виходить як 42 і 20. У жодній репліці нічого не додано чи прибрано: слова ті самі, зрушили лише переноси між ними. Хвіст на три колонки в першій репліці — чесна ціна жадібного пакування рядків, а не рівного поділу.

Китайський рядок, де один ієрогліф — дві колонки

Вхід

WEBVTT

00:00:01.000 --> 00:00:04.000
你好世界今天天气很好我们出去玩吧顺便买点东西回来

Результат

WEBVTT

00:00:01.000 --> 00:00:04.000
你好世界今天天气很好我们出去玩吧顺便买点东
西回来

Двадцять чотири китайські ієрогліфи — це сорок вісім колонок, тому рядок понад межею й ламається після двадцять першого з них. Інструмент, що рахував би символи, назвав би двадцять чотири коротким рядком і лишив би його, і саме так двобарвний китайський субтитр стає вдвічі ширшим за англійський поруч. У тексті немає пробілів, на яких ламати, тому кожен ієрогліф — власна точка переносу, і перенос падає посеред речення, де китайський субтитр усе одно має ламатися.

Двоє мовців, два рядки

Вхід

1
00:00:01,000 --> 00:00:04,000
- Then we walk
- All the way home

Результат

1
00:00:01,000 --> 00:00:04,000
- Then we walk
- All the way home

Файл повертається байт у байт, і це правильний результат, а не збій. Два рядки мають 14 і 18 колонок і вмістилися б разом в один рядок на 32, але кожен починається з тире, що означає іншого мовця. Злиття віддало б одному акторові слова іншого. Жоден рядок сам не перевищує межу, тому більше робити нічого, і прогін, якому нема про що повідомити, не повідомляє нічого.

Часті запитання

Як перенесення вирішує, де саме ламається рядок субтитрів?

Слова репліки викладаються одне за одним, і перенос ставиться перед першим словом, яке виштовхнуло б рядок за кількість колонок. Це жадібне заповнення, а не рівний поділ: перший рядок заповнюється наскільки вміщається, а все, що лишилося, переходить на наступний. У результаті рядки запаковані, а не вирівняні, і це те, що потрібно, коли мета — вкласти репліку в якомога менше рядків. Якщо у вашому файлі вже правильна кількість рядків і ви хочете, щоб вони виглядали рівно, це робить сторінка вирівнювання переносів.

Чому мій короткий другий рядок приєднали до першого?

Бо разом вони вкладаються в межу. Перенесення трактує всю репліку як один потік тексту й викладає її заново з нуля, тому перенос, який був у файлі, не зберігається лише тому, що він там був. У цьому різниця між цією сторінкою і тією, що ламає лише довгі рядки: та лишає кожен уже короткий рядок точно на місці, а ця може підтягнути його вгору. Якщо перенос був навмисний, йому потрібне тире або інша сторінка, а не ця.

Довжина рядка в перенесенні рахується в символах чи в колонках?

У колонках, і саме так насправді міряють рядок субтитрів. Латинська літера, цифра й пробіл займають по одній колонці; китайський чи японський ієрогліф, корейський склад і емодзі — по дві. Тому межа 42 приймає сорок два латинські символи або двадцять один ієрогліф, і два рядки виходять однакової ширини на екрані. Підрахунок символів дав би кожному китайському субтитрові рядок удвічі довший за англійський за того самого налаштування.

Чому мої два рядки з тире не злили в один під час перенесення?

Бо тире на початку рядка означає зміну мовця, а злиття двох таких рядків поставило б діалог двох людей в один рядок. Сторінка трактує такі рядки як блоки, які не можна переходити, тому перекладає слова всередині кожного блоку й лишає блоки на місці. Рядки в прикладі вище достатньо короткі, щоб уміститися разом, і все одно лишаються окремо саме з цієї причини. Якщо ви справді хочете їх з’єднати, сторінка прибирання переносів з’єднує їх і повідомляє, скільки мовних переходів розчинила.

Що буде зі словом, довшим за довжину рядка субтитрів?

Воно отримує власний рядок і лишається довшим за межу, а прогін повідомляє про один рядок, що все ще понад межею. Переносу всередині одного слова, який не змінив би саме слово, немає, а змінювати ваш текст — не те, для чого існує налаштування довжини рядка. Німецькі складники й довгі URL — типові випадки. Якщо такий рядок конче треба ввести в число, перенос має зайти всередину слова, і це редагування, яке ви робите навмисно, а не інструмент за вас.

У яких форматах можна перенести субтитри до довжини рядка?

В одинадцятьох, які можуть нести більше одного рядка в репліці: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON і CSV. Звичайний текст — єдиний виключений формат, і причина в тому, що текстовий файл за визначенням має одну репліку на рядок, тому всередині репліки немає переносу, який сторінка могла б пересунути, і вихід був би ідентичний входу. Ніщо з файлу ніколи не завантажується, а формат читається за вмістом, а не за назвою файлу.

Споріднені інструменти