如何将谷歌翻译(GT)结果导出为CSV格式?
哈哈,我懂你这种手动整理双语词汇的需求!之前也试过类似的操作,给你几个亲测可行的方案,帮你把谷歌翻译里手动配对的词和译文导出成CSV或者表格:
方案1:浏览器控制台快速导出(零插件)
这个方法不用装任何东西,直接用浏览器自带的开发者工具就能搞定:
- 打开谷歌翻译页面,调整到你需要的状态(确保左右文本框都是可编辑的,每行输入一对词和译文,一一对应)
- 输入完所有词汇和译文后,按
F12打开开发者工具,切换到「Console」标签页 - 粘贴下面这段代码,按下回车,浏览器会自动下载一个CSV文件:
// 获取左右文本框内容 const sourceText = document.querySelector('textarea#source').value; const targetText = document.querySelector('textarea#target').value; // 按行分割并过滤空行 const sourceLines = sourceText.split('\n').filter(line => line.trim() !== ''); const targetLines = targetText.split('\n').filter(line => line.trim() !== ''); // 生成CSV格式内容 let csvContent = "外语词,译文\n"; for (let i = 0; i < Math.min(sourceLines.length, targetLines.length); i++) { // 转义CSV中的特殊字符(引号和逗号) const cleanSource = sourceLines[i].replace(/"/g, '""'); const cleanTarget = targetLines[i].replace(/"/g, '""'); csvContent += `"${cleanSource}","${cleanTarget}"\n`; } // 创建下载链接并触发下载 const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); const downloadUrl = URL.createObjectURL(blob); const link = document.createElement('a'); link.href = downloadUrl; link.download = '双语词汇表.csv'; document.body.appendChild(link); link.click(); document.body.removeChild(link);
方案2:Tampermonkey脚本一键导出(更便捷)
如果你经常需要做这种操作,可以装个Tampermonkey油猴脚本,给谷歌翻译页面加个专属的导出按钮:
- 先给浏览器安装Tampermonkey插件(各大浏览器应用商店都能找到)
- 打开Tampermonkey的「添加新脚本」页面,删除默认代码,粘贴下面这段:
// ==UserScript== // @name 谷歌翻译手动配对导出CSV // @namespace http://tampermonkey.net/ // @version 0.1 // @description 给谷歌翻译页面添加导出按钮,快速导出手动录入的双语词汇 // @match https://translate.google.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 创建导出按钮 const exportBtn = document.createElement('button'); exportBtn.textContent = '导出双语CSV'; exportBtn.style.cssText = 'margin: 10px 0 0 10px; padding: 8px 16px; background: #4285F4; color: white; border: none; border-radius: 4px; cursor: pointer;'; // 把按钮添加到翻译框上方的工具栏 const toolbar = document.querySelector('.Q2Lfc'); if (toolbar) { toolbar.appendChild(exportBtn); } // 按钮点击触发导出逻辑 exportBtn.addEventListener('click', function() { const sourceText = document.querySelector('textarea#source').value; const targetText = document.querySelector('textarea#target').value; const sourceLines = sourceText.split('\n').filter(line => line.trim() !== ''); const targetLines = targetText.split('\n').filter(line => line.trim() !== ''); let csvContent = "外语词,译文\n"; for (let i = 0; i < Math.min(sourceLines.length, targetLines.length); i++) { const cleanSource = sourceLines[i].replace(/"/g, '""'); const cleanTarget = targetLines[i].replace(/"/g, '""'); csvContent += `"${cleanSource}","${cleanTarget}"\n`; } const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); const downloadUrl = URL.createObjectURL(blob); const link = document.createElement('a'); link.href = downloadUrl; link.download = '双语词汇表.csv'; document.body.appendChild(link); link.click(); document.body.removeChild(link); }); })();
- 保存脚本后,刷新谷歌翻译页面,就能看到左上角多了个「导出双语CSV」按钮,输入完内容直接点击就能导出,非常方便!
方案3:手动复制粘贴+Excel(适合怕代码的同学)
如果你对代码完全没兴趣,用最朴素的方法也能搞定:
- 把谷歌翻译左侧文本框里的所有外语词全选复制,粘贴到Excel的A列
- 把右侧文本框里的所有译文全选复制,粘贴到Excel的B列(确保每行对应)
- 打开Excel的「文件」->「另存为」,选择「CSV(逗号分隔)」格式保存即可
另外提一句,你之前用Emacs org-mode的Google捕获没效果,大概率是因为那个功能是调用谷歌翻译API自动翻译内容,而你是手动录入译文建立配对,所以完全不匹配场景,上面的方案都是针对你手动录入的双语配对设计的,应该能解决你的问题!
内容的提问来源于stack exchange,提问作者147pm




