РЕДАКТИРОВАТЬ
ОК, как и ожидалось, проблема была со строками, а не с генерацией субтитров.
API Google Translate указывает, что по умолчаниюего вывод в HTML.Вот почему вы получаете сущности HTML вместо необработанных символов.
В вызове метода translate необходимо указать, что формат должен быть текстовым, а не HTML.
Что-тонапример:
translate_client.translate(
test_list[j:j + 128],
target_language=target,
format="text")
Более подробную информацию о параметрах можно найти по адресу: https://cloud.google.com/translate/docs/reference/translate?hl=ja
и более подробную информацию о самом Python API, читая его исходный код здесь: https://github.com/googleapis/google-cloud-python/blob/master/translate/google/cloud/translate_v2/client.py#L164
КОНЕЦ РЕДАКТИРОВАНИЯ
Прежде чем я отвечу, я дам вам несколько советов, поскольку вы, кажется, новичок здесь: если вам нужна помощь с кодом, вам следуетприведите полностью рабочий пример.Очень сложно помочь кому-то, когда он не предоставляет весь контекст и необходимую информацию.
Итак, давайте перейдем к ответу ...
Я собираюсь начатьс диким предположением здесь:
Вы создаете файлы субтитров с библиотекой srt, найденной по адресу: https://github.com/cdown/srt
-
Я только что проверил этос кодом ниже:
subtitle_generator = srt.parse('''\
1
00:31:37,894 --> 00:31:39,928
Je m'appelle Francisco
''')
subtitles = list(subtitle_generator)
with open("a_fr.srt" , "w", encoding='utf-8') as f:
f.write(srt.compose(subtitles))
И это очень хорошо показало апостроф.
Вы должны проверить содержимое подпрограмм и исходный текст, используемый в функции разбора.С большой вероятностью проблема заключается в исходном тексте, а не в печати на python, поскольку в процессе написания нет ничего, что автоматически превращало бы символы в сущности HTML.