Wordfast Classic 匯入翻譯記憶(TMX)

好久沒有寫網誌了,前一陣子都在忙期中考,想到整個期中考竟然耗了3個禮拜才考完,這大概可稱為學生生活的折磨吧~

最近都在忙翻譯,順便研究Wordfast Classic 的功能,之前用OmegaT 翻譯軟體時能用的翻譯記憶交換檔(TMX),匯入 Wordfast Classic 以後竟然變成亂碼!

後來才發現是 Unicode 編碼的問題。
以前OmegaT 採用 UTF-8 noBOM 編碼,而之前用的中英文對齊工具 LF Aligner 輸出就是 UTF-8 編碼,所以可以直接用,沒有問題。
而現在Wordfast Classic 雖然採用 Unicode, 不過卻只認識 UTF-16 Little Endian  ,所以要先把以前的 TMX 檔案改變編碼才行呢。

Wordfast Classic 有個好用的功能是「Reference Search」,只要按 <Ctrl>+<Alt>+ N 就可以搜尋指定資料夾裡面有沒有出現目前選定的文字。
之前把許多 .doc/ .docx 參考文件都放在一個資料夾裡,讓 Wordfast 去搜尋資料,不過發現只要遇到中文就變成亂碼。但是純文字(.txt)格式又能成功搜尋。

原來是那些docx 檔案內嵌的編碼是 UTF-8,所以就看起來是亂碼了~

因為 Microsoft Word 的 DOCX 類型檔案是壓縮的XML 檔案,只要在 docx 上點右鍵解壓縮,就能看到裡面的內容。

不過要一個一個改編碼太麻煩了,不如就直接存成純文字檔比較快。
當然一個一個存成純文字檔也是有點麻煩,不如先將參考的doc檔案全部混成一個檔案。
以下是巨集:


Sub InsertFiles()
    Dim strFileName As String
    Dim rng As Range
    Dim Doc As Document
    Const strPath = "D:\Mydocument"    '請在strPath這個資料夾填入那堆檔案所在的資料夾,最後不要加上斜槓\
    Set Doc = Documents.Add
    strFileName = Dir$(strPath & "\*.doc*")
    Do
        Set rng = Doc.Bookmarks("\EndOfDoc").Range
        If rng.End > 0 Then 'section break not necessary before first document.'
            rng.InsertBreak wdSectionBreakNextPage
            rng.Collapse wdCollapseEnd
        End If
        rng.InsertFile strPath & "\" & strFileName
        strFileName = Dir$()
    Loop Until strFileName = ""
End Sub


執行完巨集後,目錄下所有的doc/docx 檔案就全部變成一個檔案了~
然後經過一些修改就可以存成txt檔了。

之前沒有發現是編碼的問題造成亂碼前,要將 TMX 改成 Wordfast 的TM(翻譯記憶)還需要透過另一個軟體,Olifant,才能匯入。不過現在就不需透過 Olifant 了。

留言

這個網誌中的熱門文章

Anki 教學 - 學習卡片

Anki 教學 - 基礎知識

「健保代碼查詢APP」