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 了。
最近都在忙翻譯,順便研究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 了。
留言
張貼留言