如何在 Google Docs 上把 "dump quotes" 替換成 “smart quotes”
Just now
近期常常使用ChatGPT來做翻譯或是撰寫英文文章,但是ChatGPT所生成的英文都會使用dump quotes,也就是「"」這樣的quotes。但在英文的寫作中,卻需要替換成「“”」這樣的smart quotes。
這件事情困擾了一陣子後,我終於找到一篇完整說明解決方案的Stackoverflow文章,讓我可以在Google Docs中一次性取代這些quotes。在此我整理該文章的內容並翻譯成中文給大家參考。
手動執行
手動執行的方法如下:
- 點選「編輯」→「尋找並取代」。
- 在跳出來的「尋找並取代」視窗中,請務必確認「使用規則運算式」有被勾選。
- 尋找「
(?<=\s|^)\"
」(此語法代表「"」位於開頭或前面有空白)並取代為「“
」。 - 剩下的「"」應該都位於結尾的位置,所以尋找「
\"
」並取代為「”
」就可以把剩下來的「"」都取代掉。 - 接下來,如果你的文章中還有「'」,那接著就繼續用類似的方式處理。
- 尋找「
(?<=\s|^)\'
」並取代為「‘
」。 - 最後,尋找「
\'
」並取代為「’
」即可。
這樣應該就可以大功告成了。
使用App Script
如果您想要使用App Script來處理,可以嘗試這樣做:
- 點選「擴充功能」→「App Script」。
- 在跳出來的程式碼框中,貼上以下程式碼:
function replaceQuotes() {
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var text = body.getText();
// 替換雙引號
var startDoubleQuotePattern = /(?<=\s|^)"/g;
var endDoubleQuotePattern = /"/g;
// 先替換起始雙引號
text = text.replace(startDoubleQuotePattern, "“");
// 然後替換剩下的結束雙引號
text = text.replace(endDoubleQuotePattern, "”");
// 替換單引號
var startSingleQuotePattern = /(?<=\s|^)'/g;
var endSingleQuotePattern = /'/g;
// 先替換起始單引號
text = text.replace(startSingleQuotePattern, "‘");
// 然後替換剩下的結束單引號(包含撇號)
text = text.replace(endSingleQuotePattern, "’");
// 更新文件中的文字
body.setText(text);
}
- 點選「儲存」後,再點選「執行」。若有需要,請授權這個專案讓App Script可以運作。
以上這樣的步驟應該就會完成了。
不過,如果你遇到了「系統已封鎖這個應用程式」,那應該就是另外一個我們要來解決的問題了……