Русские субтитры: Разделение субтитра (только в переводе) - Русские субтитры

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Разделение субтитра (только в переводе)

#1 Пользователь офлайн   nekto_sp Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 5
  • Регистрация: 05 Июнь 09
  • Пол:Мужчина
  • Страна:

Отправлено 05 Июнь 2009 - 14:34

Собственно нужен такой скрипт. А лучше два. :)

Аналогичный Divide Lines и Fast divide lines, но только для перевода.

Может есть у кого?

Спасибо.
0

#2 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 991
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 96
  • Своих переводов: 16

Отправлено 05 Июнь 2009 - 18:53

скрипта нет, но содержимое можно менять при помощи CTRL+Shift+W
0

#3 Пользователь офлайн   nekto_sp Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 5
  • Регистрация: 05 Июнь 09
  • Пол:Мужчина
  • Страна:

Отправлено 05 Июнь 2009 - 23:44

Просмотр сообщенияBedaZzle (5.6.2009, 17:53) писал:

скрипта нет, но содержимое можно менять при помощи CTRL+Shift+W


Спасибо за ответ. Этим и пользуюсь. Несколько неудобно.

Жаль, что скрипта нет.
Если бы был, получился бы полный джентельменский набор для синхронизации и последующего объединения английских и русских титров.
Обнаружил, что на большом телевизоре смотреть фильмы с такими объединенными субтитрами вполне можно.
И часто это избавляет от необходимости ставить на паузу и лезть в словарь.

Может знаете, есть ли специальная команда DivideSub для использования в скриптах?

Спасибо.
0

#4 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 45
  • Своих переводов: 19

Отправлено 08 Июнь 2009 - 12:05

Просмотр сообщенияnekto_sp (5.6.2009, 21:44) писал:

Если бы был, получился бы полный джентельменский набор для синхронизации и последующего объединения английских и русских титров...
Может знаете, есть ли специальная команда DivideSub для использования в скриптах?

Скрипт написать - не проблема. Но ещё проще было бы модифицировать те скрипты, который делят строки в "оригинале" (я так понял, что тексты Divide Lines и Fast divide lines у тебя есть, так?), чтобы они обрабатывали не "оригинал", а "перевод": нужно всего-то открыть тексты Divide Lines и Fast divide lines в блокноте, сделать замену всех etSubtitleText на etSubtitleTrans и спасти получившийся скрипт под другим именем. Всё...

ПС. Специальной команды DivideSub нет, практически все фунции по работе с текстом титров перечислены в example.pas - рекомендую ознакомиться. Но подобную функцию легко реализовать самому, вставляя знак переноса строки где-нибудь поближе к середине (по пробелу или по знакам препинания).
0

#5 Пользователь офлайн   nekto_sp Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 5
  • Регистрация: 05 Июнь 09
  • Пол:Мужчина
  • Страна:

Отправлено 08 Июнь 2009 - 18:32

Просмотр сообщенияНуПогоди (8.6.2009, 11:05) писал:

Скрипт написать - не проблема. Но ещё проще было бы модифицировать те скрипты, который делят строки в "оригинале" (я так понял, что тексты Divide Lines и Fast divide lines у тебя есть, так?), чтобы они обрабатывали не "оригинал", а "перевод": нужно всего-то открыть тексты Divide Lines и Fast divide lines в блокноте, сделать замену всех etSubtitleText на etSubtitleTrans и спасти получившийся скрипт под другим именем. Всё...


Если бы они у меня были, я бы так и сделал :(
0

#6 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 45
  • Своих переводов: 19

Отправлено 08 Июнь 2009 - 19:19

Просмотр сообщенияnekto_sp (8.6.2009, 16:32) писал:

Если бы они у меня были, я бы так и сделал :(
А если их нет, то что интересно означала следующая фраза?

Цитата

Аналогичный Divide Lines и Fast divide lines, но только для перевода.

Откуда вообще взялись эти красивые названия? как по ним догадаться, что именно должен делать требуемый скрипт? А нет подробного описания функций - не будет и скрипта. C'est la vie...
0

#7 Пользователь офлайн   nekto_sp Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 5
  • Регистрация: 05 Июнь 09
  • Пол:Мужчина
  • Страна:

Отправлено 08 Июнь 2009 - 21:16

Просмотр сообщенияНуПогоди (8.6.2009, 18:19) писал:

Откуда вообще взялись эти красивые названия? как по ним догадаться, что именно должен делать требуемый скрипт? А нет подробного описания функций - не будет и скрипта. C'est la vie...


Edit/Texts/Divide lines...
Edit/Texts/Fast divide lines

поскольку это стандартные функции, то описание их функциональности есть в хелпе.
0

#8 Пользователь офлайн   nekto_sp Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 5
  • Регистрация: 05 Июнь 09
  • Пол:Мужчина
  • Страна:

Отправлено 08 Июнь 2009 - 23:17

Собственно слегка модифицированый Insert (translation only):

// Fast Divide subtitle (only in translation). 
// Based on Insert subtitle (only in translation) by Bedazzle.
program FastDevideTransSub;

// -----------------------------------------------------------------------------

var
  n: Integer;
  i: Integer;
  j: Integer;

  txt: String;
  currentSub: String;
  nextSub: String;
  newLinePos: LongInt;

begin
  n := GetSubtitleCount-1;

  for i := 0 to n do
  begin
     if (IsSubtitleSelected(i) = true) then
     begin
        currentSub := GetSubtitleTrans(i);
        newLinePos := Pos(Chr(13), currentSub);
        if newLinePos <=1 then break;

        for j := n downto i+1 do
        begin
           txt := GetSubtitleTrans(j-1);
           SetSubtitleTrans(j, txt);
        end;

        nextSub := currentSub;
        Delete(currentSub, newLinePos, Length(currentSub));
        Delete(nextSub, 1, newLinePos+1);	
        SetSubtitleTrans(i+1, nextSub);
        SetSubtitleTrans(i, currentSub);

        break;
     end;
  end;
end.

0

#9 Пользователь офлайн   BedaZzle Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Admin
  • Сообщений: 2 991
  • Регистрация: 22 Октябрь 02
  • Страна:
  • Прислал(a) субтитров: 96
  • Своих переводов: 16

Отправлено 08 Июнь 2009 - 23:18

Просмотр сообщенияНуПогоди (8.6.2009, 18:19) писал:

Откуда вообще взялись эти красивые названия?


Это из менюшки программы, если переключить язык на английский.
0

#10 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 45
  • Своих переводов: 19

Отправлено 09 Июнь 2009 - 20:07

BedaZzle сказал:

Это из менюшки программы, если переключить язык на английский.
Мудрено... Особенно, если вовсю пользоваться CTRL-Shift-D.

nekto_sp сказал:

Собственно слегка модифицированый Insert (translation only):

Имхо, быстрее будет один раз прочитать все титры, вычислить сколько из них надо будет разрезать и потом опять (от последнего к первому) прогнать цикл, но уже с записью титров в нужные ячейки (т.е. с учётом вычисленного в первом цикле смещения).
0

#11 Пользователь офлайн   yasha18 Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 3
  • Регистрация: 29 Ноябрь 09
  • Страна:

Отправлено 15 Февраль 2010 - 19:32

А нет случаем ни кого скрипта Divide Lines (который CTRL+SHIFT+D), чтобы работал для всего субтитра сразу? Ну или хотя бы просто скрипта Divide Lines... Достало вручную этим пробегать по каждому титру.
0

#12 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 45
  • Своих переводов: 19

Отправлено 15 Февраль 2010 - 20:06

Просмотр сообщенияyasha18 (15 Февраль 2010 - 16:32) писал:

...чтобы работал для всего субтитра сразу? ... Достало вручную этим пробегать по каждому титру.
Речь идёт о том, чтобы применить вышеприведенный скрипт сразу к нескольким титрам (а не к одному?) Если да, просто выделите титры для обработки (весь файл сразу = Ctrl-A; несколько титров = нажать шифт и выбрать стрелками; можно ещё выбирать Ctrl и клик мышкой) и запускайте скрипт.
Вариант №2: убрать из текста скрипта условие if (IsSubtitleSelected(i) = true) then - тогда будут обрабатываться все титры, независимо от того, выделены они или нет.
0

#13 Пользователь офлайн   yasha18 Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Members
  • Сообщений: 3
  • Регистрация: 29 Ноябрь 09
  • Страна:

Отправлено 15 Февраль 2010 - 21:41

Нет-нет, мне нужна именно скриптовка Divide Lines, а не та, что здесь представлена. Divide Lines ведь делит титры по времени учитывая количество символов в получающихся строках.
Ну, сейчас буду вспоминать Pascal, попробую изобразить сам что-нибудь такого плана. Жаль, что по какой-то причине у меня не открываются линки в теме http://subtitry.ru/f...?showtopic=2379
ни мозилой, ни эксплорером.
0

#14 Пользователь офлайн   НуПогоди Иконка

  • Иконка
  • Отправить ЛС
  • Группа: Избранные
  • Сообщений: 832
  • Регистрация: 31 Июль 06
  • Страна:
  • Прислал(a) субтитров: 45
  • Своих переводов: 19

Отправлено 16 Февраль 2010 - 12:01

Просмотр сообщенияyasha18 (15 Февраль 2010 - 18:41) писал:

Ну, сейчас буду вспоминать Pascal, попробую изобразить сам что-нибудь такого плана.

Ничего особенно вспоминать не надо. Чтобы разрезать титр на два по строкам пропорционально их длине, нужно знать лишь стандартные функции, описанные в example.pas (Get & SetSubtitleText, Get & SetSubtitleInitialTime, Get & SubtitleFinalTime, InsertSubtitle) + Length(стринг) + Pos(CRLF,стринг), которая возвращает точку CRLF=#13#10 для резки в стринге (если конечно находит его) + strcopy. Вот собственно и всё...
0

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему