文章目录

公司里要翻译一点油管上的视频,出于辛苦一小时,节约10分钟的原则,我想着是不是做个什么小工具来让翻译工作简单点。
现在的情况是:

1.     用Video Download helper (Firefox 版的) 还是可以从油管上下视频的
2.     可以用 直接下载到字幕文件,原来有配套字幕的和油管自动字幕都能下
3.     需要把原来的字幕翻译成中文做个新字幕

所以要做的工作很简单,把字幕翻译好,对照时间轴贴回去,重新生成新的字幕文件就好。

那么就用Excel做吧,挺简单的一个事。
把字幕文件打开读入Excel,逐句手动翻译之后套用原来的时间轴再转换成字幕文件。

读SRT文件的话用Open file for input 就行了,然后直接按行导入:

Sub Import()

    Dim FileName As Variant
    Dim sFileName, s1 As String
    Dim sPathName As String
    Dim aFile As Variant
    Dim ws As Worksheet
    Dim A

    Dim i, j, FirstCell As Double

    Set ws = Worksheets("Sheet1")


    ws.Range("A1:C100000").ClearContents

    Application.ScreenUpdating = False

    MsgBox "Please choose srt file"
    FileName = Application.GetOpenFilename("Text Files (*.srt), *.srt")


    If FileName <> False Then

        Open FileName For Input As #1
        j = 1
        Do While Not EOF(1)
            Line Input #1, s1
                If s1 <> "" Then
                    ws.Cells(j, 1) = s1
                End If
            j = j + 1
        Loop
        Close #1
        Application.ScreenUpdating = True
    MsgBox "SRT uploaded"
    End If

End Sub

然后正好在下面空行处翻译,然后导出就可以了

Sub Export()
    Dim FileName As String

    Dim s1 As Worksheet
    Set s1 = ThisWorkbook.Sheets("sheet1")
    i = 1
    FileName = Application.GetSaveAsFilename(InitialFileName:=vbNullString, FileFilter:="Text Files (*.srt),*.srt")

    Open FileName For Output As #1
    Do While s1.Range("A" & i) <> ""
        Write #1, Val(s1.Range("A" & i))
        Print #1, s1.Range("A" & i + 1)
        Print #1, s1.Range("A" & i + 3)
        Write #1,
        i = i + 4
    Loop
    Close #1
        MsgBox "SRT Exported"
End Sub

然后想想,还可以加一个功能的,把所有的句子先串联一下,合成一个段落可以方便扔进翻译工具里面翻译个大概做参考:

Sub Combine()
Dim AllTxt As String
Dim s1 As Worksheet
Set s1 = ThisWorkbook.Sheets("sheet1")

i = 1
s1.Range("N7").ClearContents
Do While s1.Range("A" & i) <> ""

AllTxt = AllTxt + s1.Range("A" & i + 2).Value + " "
i = i + 4
Loop

s1.Range("N7") = AllTxt
MsgBox "All text get together now"

End Sub

这样一来就完成了,实际操作起来还是挺方便的。

文件在这里