1. 有可以翻译视频字幕的软件么
有时从网上下载到新的电影,却没有中文字幕,好不容易找到个字幕却是英文版的,本程序原理是调用谷哥的翻译功能,仅调用了英翻汉功能,如果需要其他语言可回贴说明一下,改起来应该不难。为便于修改,使用了VBS来写,随时随地可修改.....
1、生成程序:把下列语句存于一个纯文本文件(比如用你系统的“记事本”粘贴进去再存成“字幕翻译.vbs”即可使用。
2、使用方法:把英文字幕的“.srt”文件用鼠标拖到这个程序上松手即可开始自动翻译,翻译完成后自动生成一个同名文件的汉字字幕文件。
'程序调用谷哥的翻译功能,仅调用了英翻汉功能,如果需要其他语言请回贴说明一下,改起来应该不难。
'为便于修改,使用了VBS来写,随时随地可修改……
'使用方法是把“英文字幕。srt”用鼠标拖到这个程序上松手即可开始自动翻译。
'[程序开始]
Dim WshShell,file_name,str,val(5000,3),reg,wmi
Set WshShell=WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application") '建立Shell.Applciation 对象
Set Shell=CreateObject("Shell.Application")
Set objArgs=WScript.Arguments'取得拖入的文件名
on error resume next
Set wmiService = GetObject("winmgmts:\\.\root\cimv2") '关闭内存中未完全退出占用小于8M的IE
Set wmiObjects = wmiService.ExecQuery("SELECT * FROM Win32_process where caption='iexplore.exe'")
if wmiObjects.count > 0 then
For Each wmiObject In wmiObjects
if (wmiObject.workingsetsize/1048576) < 80 then wmiObject.terminate()
next
End if
file_name=""
if objArgs(0)=Empty then file_name="No"
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title","","REG_SZ" '去除标题栏后IE说明
on error goto 0
start_time=now()
if file_name="No" then msgbox "未找到匹配文件,请拖动字幕文件到本程序。":Wscript.Quit
set ie=wscript.createobject("internetexplorer.application","event_") '创建ie对象'
Set google = WScript.CreateObject("InternetExplorer.Application")
google.visible = false
WshShell.RegDelete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title"'恢复IE标题栏说明为Internet Exporer
'ie.fullscreen=0:ie.menubar=0:ie.addressbar=0:ie.toolbar=0:ie.statusbar=0:ie.resizable=1
' 不使用全屏 '取消菜单栏 '取消地址栏 '取消工具栏 '取消状态栏 '允许用户改变窗口大小
ie.width=500:ie.height=500:ie.top=2:ie.navigate "about:blank" '宽 高 打开空白页面
ie.document.write "<html><head><title>- 字幕英翻汉程序</title></head><body>"
ie.document.write "<div id=right> "
ie.document.write "<a target=_BLANK href=http://bbs.dp168.com/thread-108654-1-1.html style=font-size:12px;>论坛</a></div><br>"
set wnd=ie.document.parentwindow '设置wnd为窗口对象'
set id=ie.document.all '设置id为document中全部对象的集合'
tmp1=InstrRev(objArgs(0),".")-1 '计算中间应使用的中文字幕文件名
if tmp1>0 then
if instr(objArgs(0),"eng") then
file_name=replace(objArgs(0),"eng","chs")
else
file_name=left(objArgs(0),tmp1) & ".chs" & right(objArgs(0),len(objArgs(0))-tmp1)
end if
else
file_name=objArgs(0) & "chs.txt"
end if
on error resume next
objFSO.deletefile file_name,true
on error goto 0
'msgbox file_name
txt=""
Set tmp1 = objFSO.OpenTextFile ( objArgs(0),1) '打开英文字幕原始文件准备读取
txt = trim(tmp1.ReadAll) '读所有进内存
set tmp1=nothing
for i=1 to 3 '修正头部出错
line=mid(txt,i,1)
if asc(line)=31 then exit for
next
txt="1" & vbCrLf & right(txt,len(txt)-i)
reg=split(txt,vbCrLf)'在内存中提取已读入的注册表关键字并放入val
count=1
ie.document.write " <textarea rows=15 cols=35 id=txt></textarea>"
ie.visible=1 '窗口可见
for i=0 to UBound(reg) '翻译开始:读一行处理一行
for j=1 to UBound(reg)
if IsNumeric(reg(i)) then if cint(reg(i))=count then exit for
i=i+1
next '出循环时已找到第count句
i=i+1:if i>UBound(reg) then exit for
on error resume next
while instr(reg(i),"-->")=0 and i<UBound(reg)
i=i+1
wend'如果行号是第i,并且下行有表示时间轴的"-->"则后面是文字
if err.number<>0 then
msgbox err.number
err.clear
end if
on error goto 0
val(count,0)=reg(i)'出循环时已找到有"-->"的时间轴
i=i+1:str=""
if i>UBound(reg) and count<2 then
if count<2 then
ie.document.write "这个字幕格式不能被识别:<br>" & file_name & "。<br>"
Wscript.Quit
end if
exit for
end if
for j=1 to UBound(reg)
if trim(reg(i))>"" then str=str & reg(i) & vbCrLf
if (i+1)>UBound(reg) then exit for
if IsNumeric(reg(i+1)) then if int(reg(i+1))=count+1 then exit for
i=i+1:if i>UBound(reg) then exit for
next
if j=UBound(reg) then str="Not find then string."
if right(str,1)=chr(10) or right(str,1)=chr(13) then str=left(str,len(str)-1)
if right(str,1)=chr(10) or right(str,1)=chr(13) then str=left(str,len(str)-1)
val(count,1)=str
val(count,2)=trans(str)
ie.document.getElementById("txt")。value=count & vbCrLf & val(count,1) & vbCrLf & val(count,2) & vbCrLf
count=count+1
next
txt=""
for i=1 to count-1
txt=txt & i & vbCrLf & val(i,0) & vbCrLf & val(i,1)
txt=txt & vbCrLf & val(i,2) & vbCrLf & vbCrLf
next
Set tmp1=objFSO.OpenTextFile(file_name,8,True,0) '打开TXT准备写入
txt=txt & vbCrLf & vbCrLf
tmp1.write(txt)
tmp1.close
i=datediff("s",start_time,now()) :if i>60 then j=(i mod 60) & "分" & int(i/60) & "秒" else j=i & "秒"
k=int(i/(count-1)*100)/100:if k<1 then k="0" & k
j=j & "平均每句" & k & "秒"
ie.document.write "<br><br> 翻译" & count-1 & "句用去" & j & ",请直接"
ie.document.write "关闭本窗口。<br> 已生成" & file_name & "。<br><br><br>"
ie.document.parentwindow.scrollby 0,150
Wscript.Quit
'程序是否在运行
FunctiOn is_Process(ProcessName) '程序是否在运行
dim Process_n,prog
Set prog=getobject("winmgmts:\\.")。instancesof("win32_process")
For Each Process_n In prog
If LCase(Process_n.name)=LCase(ProcessName) Then
is_Process=1
Else
is_Process=0
End If
Next
set prog=nothing
End Function
'使用谷歌翻译对应的句子,请注意之前使用了以下两句
'Set google = WScript.CreateObject("InternetExplorer.Application")
'google.visible = false
FunctiOn trans(str_in)
dim i,j,str_out,strURL,ping_time,tmpval
if trim(str_in)="" then trans="翻译字符串不能为空":Exit Function
str_in=trim(replace(str_in,vbCrLf,""))
strURL=trim(replace(str_in," ","%20"))
strURL = "http://translate.google.cn/?sl=auto&tl=zh-CN#en/zh-CN/" & strURL & ""
google.navigate strURL
Set objWMI = GetObject("winmgmts:\\.")
Set colPings = objWMI.ExecQuery ("Select * From Win32_PingStatus where Address = '" & "translate.google.cn" & "'")
ping_time=9999
On error resume next
For Each objPing in colPings
ping_time=objPing.ResponseTime+0
Next
On error goto 0
if ping_time >2000 then trans="翻译服务器太慢,请改时段翻译":Exit Function
for i=1 to 5
trans="":str_out="":tmpval=0
wscript.sleep ping_time*3
on error resume next
trans = google.document.body.innerText
on error goto 0
tmpval=instr(trans,"地址,或者上传文档")+32 '之前定义39结果少取了3个,36也少取4个?
if tmpval>0 then
trans=right(trans,len(trans)-tmpval)
tmpval=instr(trans,"正式用语")-3
if tmpval>0 then
trans=left(trans,tmpval)
tmpval=instr(trans,"仍然翻译")+4
trans=right(trans,len(trans)-tmpval)
tmpval=instr(trans,str_in)
if tmpval>0 then trans=right(trans,len(trans)-tmpval-len(str_in))
while right(trans,1)=chr(10) or right(trans,1)=chr(13)
trans=left(trans,len(trans)-1)
wend
tmpval=instr(trans,vbCrLf & vbCrLf)
if tmpval>0 then trans=right(trans,len(trans)-tmpval)
while len(trans)>len(replace(trans,vbCrLf & vbCrLf,vbCrLf))
trans=replace(trans,vbCrLf & vbCrLf,vbCrLf)
trans=trim(trans)
wend
trans=replace(trans,"<I>","<i>")
trans=replace(trans,"</ I>","</i>")
if left(trans,1)=chr(10) or left(trans,1)=chr(13) then trans=right(trans,len(trans)-1)
if left(trans,1)=chr(10) or left(trans,1)=chr(13) then trans=right(trans,len(trans)-1)
if left(trans,1)=chr(10) or left(trans,1)=chr(13) then trans=right(trans,len(trans)-1)
if left(trans,1)=chr(10) or left(trans,1)=chr(13) then trans=right(trans,len(trans)-1)
if right(trans,1)=chr(10) or right(trans,1)=chr(13) then trans=left(trans,len(trans)-1)
if right(trans,1)=chr(10) or right(trans,1)=chr(13) then trans=left(trans,len(trans)-1)
if trans>"" then exit for
end if
end if
next
if trans="" then trans="不知道为什么,反复试了5次都取不出翻译结果"
End Function
'[程序结束]
2. 那个APP软件最多外国的电影,翻译成了普通话最多的
很多的
木鱼影视,
麻花影视
哔哩哔哩
里面好多国外的影视,中文字幕,个人认为挺不错的哦!
开心快乐每一天!
3. 有没有软件可以把电影里的英语翻译成国语的软件
没有的。
因为电影的字幕不是文本形式的。
即使是文本也不能用软件翻译。
目前存在的英译汉,汉译英的软件翻译结果都不堪入目。何况是电影,一种有着艺术般对白的东东。
4. 我想要那个翻译视频的就是电影的软件我的事苹果
一般来说想要翻译软件是需要下载下来才能够使用它的。先从网络搜索下翻译软件。找到你所需要的哪一款。然后找到下载地址。安装完毕后需要登录账号调试下就可以了。
5. 国外电影语言听不懂有没同步翻译软件可以
我一直是用金山词霸,他收录牛津词典,有超过20W的词汇和释义,权威又好用。比有道好用太多了,现在的有道词典不比以前了好用啦
6. 有什么翻译软件好用想边学边看美国电影
金山快译通,地址不敢留,会删,他的中式英语少一些,而且金山规模不小,词汇更新很快.
7. 有什么软件可以让电影自动翻译出中文字幕
没有.
8. 用什么软件可以把视频上的英语翻译过来
没有任何软件可以把视频上的英语翻译过来。
英语翻译,是指用英语来表达另一种语言或用另一种语言表达英语的语言之间互相表达的活动。英语翻译既包括中译英、英译中,同时也包括英韩互译、日英互译以及英语和其它语种的互译。
英语翻译中有直译和意义两种基本翻译方法,另有增译法、省译法、转译法、拆句法、合并法、正译法、反译法、倒置法、包孕法等技巧。
9. 我看电影时,为什么电影老说英文有什么软件能把英文同步翻译成英文的吗
没有 这样的软件。
要不就看下面的字幕。要不去下个多语言版本或干脆就是国语版本的,不过一般网上的大片都是英语对白的,要看字幕的!我现在都习惯了!