srt字幕翻译
Posted ctrl-cctrl-v
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了srt字幕翻译相关的知识,希望对你有一定的参考价值。
需要把字幕名改成i.txt
有有道和谷歌
代码:
#Author:Chenglong Qian #Copyright :Chenglong Qian import json import requests import re import os import sys from GoogleFreeTrans import Translator def google(ttt): translator = Translator.translator(src=‘auto‘, dest=‘zh-CN‘) return translator.translate(ttt) num=392 def translator(str): """ input : str 需要翻译的字符串 output:translation 翻译后的字符串 有每小时1000次访问的限制 """ global num; num=num+1 # API url = ‘http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null‘ # 传输的参数, i为要翻译的内容 key = { ‘type‘: "AUTO", ‘i‘: str, "doctype": "json", "version": "2.1", "keyfrom": "fanyi.web", "ue": "UTF-8", "action": "FY_BY_CLICKBUTTON", "typoResult": "true" } # key 这个字典为发送给有道词典服务器的内容 response = requests.post(url, data=key) # 判断服务器是否相应成功 if response.status_code == 200: # 通过 json.loads 把返回的结果加载成 json 格式 result = json.loads(response.text) translation = result[‘translateResult‘][0][0][‘tgt‘] return translation else: print("有道词典调用失败") # 相应失败就返回空 return None f = open("i.txt","r", encoding=‘UTF-8‘) txtstr = f.read() #将txt文件的所有内容读入到字符串txtstr中 f.close() list = txtstr.split(‘ ‘) print(list) q=input("选择翻译平台:1.有道 2.谷歌") q=int(q) j=0 for uchar in list: if (uchar >= u‘u0041‘ and uchar<=u‘u005a‘) or (uchar >= u‘u0061‘ and uchar<=u‘u007a‘): if q==1: china=translator(uchar) elif q==2: china=google(uchar) list[j]=china print(china) j=j+1 txt="" for i in list: txt=txt+‘ ‘+i print(txt) f = open("china.txt","x") with open(‘china.txt‘,‘w‘, encoding=‘UTF-8‘) as f: #设置文件对象 f.write(txt)
以上是关于srt字幕翻译的主要内容,如果未能解决你的问题,请参考以下文章