Bilingual Subtitler
Бесплатная программа, позволяющая сочетать 2 клевых занятия: просмотр кино/сериалов и изучение иностранного языка – одновременно: при помощи динамически подключаемых к оригинальным переведенных субтитров.Любого кино/сериала.
Любого иностранного языка — при помощи субтитров на любом, родном вам
Возможны постоянно подключенные к оригинальным переведенные субтитры
Страница программы, с полным описанием→
Скачать последний релиз →
Видеогайд по программе и просмотру с подключаемыми русскими субтитрами →
Как работает программа:
- Создание двуязычных субтитров:
- После загрузки пользователем оригинальных и нужного количества русских субтитров и выбора цветов, по кнопке "Создать субтитры" по пути в окне "Путь итоговых файлов" создаются 2 файла с .ass-субтитрами — оригинальными и двуязычными (или только двуязычные, если пользователь выбрал такую опцию в настройках).
- Воспроизведение с динамически включаемыми двуязычными субтитрами субтитрами.
Пользователь стартует воспроизведение видео в видеоплеере с английскими субтитрами. Предполагается, что видеоплеер поставит первыми в списке дорожек субтитров именно созданные файлы с оригинальными и двуязычными субтитрами (так делает Media Player Classic HomeCinema) Когда в субтитрах появляется непонятный ему момент, пользователь нажимает горячую клавишу, заданную в программе [события нажатия клавиш "слушает" NeatInput]. В этот момент в программе проверяется совпадение имени активного процесса [получаем через функцию GetForegroundWindow и GetWindowThreadProcessId из user32.dll] имени процесса видеоплеера, задаваемому в настройках, и в случае совпадения — эмулируются нажатия на клавишу паузы и смены субтитров на следующие. [Эмуляция происходит либо через функцию PostMessage из user32.dll (в случае, если эмулируется нажатие одной клавиши), либо через библиотеку WindowsInput.InputSimulator (в случае эмуляции нажатия сочетания клавиши и клавиши-модификатора Ctrl, Alt или Shift. Через InputSimulator на глаз работает помедленнее, чем через PostMessage (потому что, как я понимаю, InputSimulator полноценно эмулирует нажатие клавиш, PostMessage лишь посылает сигнал о нажатии в процесс), но я не смог через PostMessage воплотить нажатие сочетания клавиши и клавиши-модификатора).] Пользователь прочитывает варианты перевода, вновь нажимает на горячую клавишу программы — эмулируются нажатия на клавишу паузы и смены субтитров на предыдущие — вновь включаются одни английские субтитры, воспроизведение продолжается.
Авторы:
- Автор программы — Евгений 0xotHik Помелов
Программа использует:
- Библиотеки Яндекс.Лингвистики для .Net авторства Ивана KvanTTT Кочуркина (StackOverflow, LinkedIn, GitHub)
- Библиотеку LibSE из состава приложения Subtitle Edit — с её помощью осуществляется считывание субтитров из файлов .mkv.
- Библиотеку Windows Input Simulator (с неправильными примерами кода в разделе Example :))
- Библиотеку NeatInput
- Библиотеку DocX
- Библиотеку KnownFolders
- Библиотеку OctoKit
- Установщик создан через программу Inno Setup
- Большое спасибо компании Яндекс за предоставление бесплатного доступа Яндекс.Переводчику.
Автор будет рад откликам о программе в любом виде
Замечание: Возможно некоторое несоответствие между бинарниками в "Релизах" и исходным кодом к ним, формируемым GitHub'ом — периодически я коммитил изменения, которые вошли в бинарники, уже после оформления Релиза.
P.S.: Программа писалась после работы в свободное время забесплатно, чем могут быть объяснены некоторые шероховатости исходного кода, если таковые обнаружатся имеющими место быть.