Распределяю перевод субтитров в файл субтитров.
Имеется файл субтитров (пусть без временных меток и с одним предложением)
And to make sure you know how to get the
most out of this training.
B файл перевода (для теста с переводом одного предложения)
And to make sure you know how to get the most out of this training.
И чтобы убедиться, что вы знаете, как получить максимальную отдачу от этого обучения.
Написал на Python небольшой скрипт для определения длин строк и их отношений.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
i = 0
for line in open("txt"):
Line = line.strip()
print(len(Line), "- длина строки во втором цикле:", Line)
if i == 0:
FirstLine = Line
LenFirstLine = len(Line)
elif i == 1:
SecondLine = Line
LenSecondLine = len(Line)
else:
print("i больше 1")
i = i + 1
Divide_LenFisrtLine_by_LenSecondLine = round(LenFirstLine / LenSecondLine, 2)
print("- Отношение строки в", LenFirstLine, "к",
LenSecondLine, ":", Divide_LenFisrtLine_by_LenSecondLine)
print(Divide_LenFisrtLine_by_LenSecondLine)
for line in open("srt"):
srt = line.strip()
print(len(srt), "- длина строки в первом цикле:", srt)
if srt in FirstLine:
print(srt)
print(len(srt), "- длина строки в проверке:", srt)
Divide_srt_by_LenFirstLine = round(len(srt) / LenFirstLine, 2)
print(Divide_srt_by_LenFirstLine, "=",
"длина:", srt, "/", "длина:", FirstLine)
ChooseBlockFromSecondLine = round(
Divide_srt_by_LenFirstLine * LenSecondLine)
print(ChooseBlockFromSecondLine, "= ( длина:", srt,
"/ длина:", FirstLine, ") * длина:", SecondLine)
Вывод скрипта:
67 - длина строки во втором цикле: And to make sure you know how to get the most out of this training.
85 - длина строки во втором цикле: И чтобы убедиться, что вы знаете, как получить максимальную отдачу от этого обучения.
- Отношение строки в 67 к 85 : 0.79
0.79
40 - длина строки в первом цикле: And to make sure you know how to get the
And to make sure you know how to get the
40 - длина строки в проверке: And to make sure you know how to get the
0.6 = длина: And to make sure you know how to get the / длина: And to make sure you know how to get the most out of this training.
51 = ( длина: And to make sure you know how to get the / длина: And to make sure you know how to get the most out of this training. ) * длина: И чтобы убедиться, что вы знаете, как получить максимальную отдачу от этого обучения.
26 - длина строки в первом цикле: most out of this training.
most out of this training.
26 - длина строки в проверке: most out of this training.
0.39 = длина: most out of this training. / длина: And to make sure you know how to get the most out of this training.
33 = ( длина: most out of this training. / длина: And to make sure you know how to get the most out of this training. ) * длина: И чтобы убедиться, что вы знаете, как получить максимальную отдачу от этого обучения.
Получил индекс - 51 - индекс знака, от которого нужно плясать по переводу строки.
Надо ведь найти самый близкий пробел к этому индексу и сделать срез, верно? Этот срез подставить в первую строки субтитров. Но это потом.
Пример:
Английский текст:
And to make sure you know how to get the
most out of this training.
Перевод:
И чтобы убедиться, что вы знаете, как получить максимальную отдачу от этого обучения.
Скрипт показал что нужно переводить где-то на 51 знаке:
И чтобы убедиться, что вы знаете, как получить макСимальную отдачу от этого обучения.
Это знак сделал заглавной буквой «С» в слове «макСимальную».
Как сделать из текста, состоящий из одной строки, зная индекс 51 - знака где примерно нужно переводить на новую строку:
И чтобы убедиться, что вы знаете, как получить максимальную отдачу от этого обучения.
текст состоящий из двух строк:
И чтобы убедиться, что вы знаете, как получить
максимальную отдачу от этого обучения.
?
Перемещено true_admin из general