当翻译变成了文本编辑。。。
原文:李笑来@学习学习再学习
翻译一本书只需要一天时间!
—— 这是我今天做的事情。
月初的时候,摸索了一阵 Google Cloud Translation API,过程中发现了 DeepL,直接就转了过去,买了 Pro 服务,每个月 24 美元不到,一年下来,连 300 美元都不到…… 便宜得令人发指。
DeepL 的机器翻译,能以惊人的速度和准确率翻译任何语言到任何语言 —— 我都不想在这里用感叹号了……
然后呢?
然后,翻译基本上成为了『较为低级的文字编辑工作』,绝大多数的键盘敲打,都是为了诸如以下的事情:
单双直引号要转换为适合中文排版的引号,
『』
和「」;
两个减号构成的破折号
--
要换成前后有恰当空格的 unicode 破折号——
;英文与数字与中文之间要有空格,比如,
在 2021 年
;书名、杂志名、文章名,要换上
《》
;避免中文字符采用斜体风格,要把它们换成加重风格
人名的姓与名之间的
-
要换成·
;省略号也要换
……
如果英文的原文写作风格真的非常符合 Plain English,不大耍文采的话,那么,DeepL 的翻译几乎可以称得上完美。这一点,曾经当过写作老师的我有着格外的感触。舞文弄墨的文采,常常降低有效知识的传播。也因此,我养成了自己的『大白话文风』,尽量不使用没必要的成语,尽量不使用除了类比之外的修辞(类比,是几乎唯一的能够跨语言、跨文化的修辞手段)……
少数情况下,需要注意的是:
特定概念的翻译,以及在前后文中的统一。比如,Collective Fitness,被翻译成『共同健康』显然是不符合上下文的,应该是『集体适应』;
少数情况下,有些短语可能被『智能翻译』漏掉。比如,
When St. Elizabeth of Hungary was lying in state, “a crowd of worshippers came and cut or tore strips of the linen enveloping her face; they cut off the hair, the nails, even the nipples.”
当匈牙利的圣伊丽莎白躺在床上时,『一群崇拜者来到这里,剪掉或撕掉包裹在她脸上的亚麻布条;他们剪掉了头发、指甲,甚至乳头。』
这句话里的 … was lying in state,指的是『(尸体)被公众瞻仰』。所以,需要调整一下:
当匈牙利的圣伊丽莎尸体被公众瞻仰时,『一群崇拜者来到这里,剪掉或撕掉包裹在她脸上的亚麻布条;他们剪掉了头发、指甲,甚至乳头。』
有些时候,会不由自主地想加一些注释,比如:
译注:『来自上面的死亡』,来自 1979 年的电影《末日降临》(The Apocalypse Now,该片被中译为《现代启示录》—— 我猜片名翻译者是把 Apocalypse 这个词意思硬往宗教意义上理解去了……)。片中比尔上校的直升机上刷着这个标语。另外,二战末期,美国空军的第七轰炸队(7th Bomb Wing)的机身上,也写着这个标语的拉丁语版:Mors Ab Alto。从上下文语境上来看,『来自上面的死亡』这个词汇,作者指的应该是现代战争。
只有少数情况下,整个句子的翻译会出问题,这时只需要顺手改一下即可。只不过,『发现这种句子』需要的是『时时刻刻处于精读状态』的能力,貌似跟翻译能力关系不大。
以上这些细琐无聊的又(极大量)或者即便麻烦也相当有趣的细节工作(极少量),完全不费劲,首先是因为工具太方便,其次是因为精读本来就不是干速度的;但,实际上更为关键的动力,从我自己的感受来看,完全是自己的『文本格式控』……
别看我自己写文章经常不小心带上错别字(我把这事儿怪罪于拼音输入法而不是自己的粗心大意),但,我就是完全受不了一个文本在电脑上的显示丑陋。在这方面我是个极端的强迫症患者,反正就是一定要想办法把排版搞得极其舒服才行!
于是,这个成了一个意想不到的动力,令我在原本就很强的精读能力上又多了一层注意力集中的重要理由 —— 反正一点都不觉得累。
我给 VSCode 设置了很多快捷键,以便我在编辑文本的时候『最顺手』:
[{"key": "ctrl+shift+9","command": "editor.action.insertSnippet","args": {"snippet": "($TM_SELECTED_TEXT$0)"},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+shift+'","command": "editor.action.insertSnippet","args": {"snippet": "“$TM_SELECTED_TEXT$0”"},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+'","command": "editor.action.insertSnippet","args": {"snippet": "‘$TM_SELECTED_TEXT$0’"},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+shift+[Backslash]","command": "editor.action.insertSnippet","args": {"snippet": "【$TM_SELECTED_TEXT$0】"},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+shift+[Slash]","command": "editor.action.insertSnippet","args": {"snippet": "《$TM_SELECTED_TEXT$0》"},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+shift+[BracketRight]","command": "editor.action.insertSnippet","args": {"snippet": "「$TM_SELECTED_TEXT$0」"},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+shift+[BracketLeft]","command": "editor.action.insertSnippet","args": {"snippet": "『$TM_SELECTED_TEXT$0』"},"when": "editorTextFocus&&editorHasSelection"} ,{"key": "ctrl+shift+-","command": "editor.action.insertSnippet","args": {"snippet": " —— "},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+shift+=","command": "editor.action.insertSnippet","args": {"snippet": " $TM_SELECTED_TEXT$0 "},"when": "editorTextFocus&&editorHasSelection"},{"key": "ctrl+alt+cmd+a","command": "editor.action.insertSnippet","args": {"snippet": "<a href=\"\" target=\"_blank\">$TM_SELECTED_TEXT$0</a>"},"when": "editorTextFocus&&editorHasSelection&&editorLangId==html"}, {"key": "ctrl+alt+cmd+b","command": "editor.action.insertSnippet","args": {"snippet": "<strong>$TM_SELECTED_TEXT$0</strong>"},"when": "editorTextFocus&&editorHasSelection&&editorLangId==html"},{"key": "ctrl+alt+cmd+i","command": "editor.action.insertSnippet","args": {"snippet": "<em>$TM_SELECTED_TEXT$0</em>"},"when": "editorTextFocus&&editorHasSelection&&editorLangId==html"},{"key": "ctrl+alt+cmd+u","command": "editor.action.insertSnippet","args": {"snippet": "<u>$TM_SELECTED_TEXT$0</u>"},"when": "editorTextFocus&&editorHasSelection&&editorLangId==html"},{"key": "ctrl+alt+cmd+d","command": "editor.action.insertSnippet","args": {"snippet": "<del>$TM_SELECTED_TEXT$0</del>"},"when": "editorTextFocus&&editorHasSelection&&editorLangId==html"},{"key": "ctrl+tab","command": "cursorRight","when": "editorTextFocus&&!editorHasSelection"},{"key": "ctrl+alt+cmd+backspace","command": "editor.emmet.action.removeTag"},{"key": "ctrl+shift+l","command": "editor.emmet.action.wrapWithAbbreviation"}
]
不仅如此,还可以从很多小地方提高效率。比如,DeepL 的 Insert to...
按钮(看起来像是个 Electron App 的链接)没有快捷键(从任何文本编辑器里往 DeepL 传输文本倒是有个快捷键,连续快速按两次 ⌘ c
)…… 于是,写了个 AppleScript 脚本,然后在 Alfred 里设置了个快捷键(用来运行这个脚本):
on alfred_script(q) tell application "System Events"tell process "DeepL" to tell window 1activateset w_position to its position set w_size to its size end tellend tellset px to item 1 of w_position set py to item 2 of w_position set sx to item 1 of w_size set sy to item 2 of w_size tell application "System Events"click at {px + sx - 190, py + sy - 95} -- Insert to link end tellend alfred_script
(不知道上面的动图是否能正确显示……)
别看这只是把一个『把鼠标挪过去,对准那个链接(按钮)点一下』的动作换成了『按一个组合快捷键』,实际上省下的是无数的『你还要扭头再扭回来』的动作……
在这个过程中,如果你会用正则表达式,那就更爽了,因为编辑大文本的时候,熟练使用正则表达式,可以帮你瞬间收缩替换成百上千个你需要更改的地方 —— 纯手工修改在这样的工具面前,就好像是电影阿凡达里那些土著人用来攻击武装直升机的弓箭一样。
翻译,竟然就这样成了『低级文字编辑工作』……
这给我带来的好处太多了。
家人英语阅读并不熟练,但,现在不怕了,真有好书的时候,我直接动手就完了 —— 反正自己不仅要精读,还可能精读很多遍。翻译现在成了『稍带手』的事儿。他们不用等到市场上有中文版才能看 —— a) 过去要等上至少一年;b) 同时也有可能压根就等不着;c) 就算最终等到了,也更可能是垃圾翻译 —— 能翻译的就翻译,不管翻译得好不好;翻译不出来的,就干脆删掉;翻译错了、翻译反了都干脆不知道;前后不一致,上下文不连贯,句子不通顺,相比来看都是小问题了……
现在好了,极低成本低完成 —— 这里我所说的成本,主要是时间成本。如果不是书籍,而是一篇文章,那就更应该这么做了!
翻译,不再是为了出版 —— 按照我们国家的版税习惯,翻译书籍基本上是不可能赚到什么钱的…… 这也解释了为什么那些认真的译者们每一个都值得尊重。
现在呢?翻译,反正不是为了钱,而是为了照顾家人和朋友 —— 有点酷。
DeepL 给我带来的另外一个好处让我心花怒放,现在我可以直接看任何语言的书了。尤其是历史方面的书籍,意大利历史得看意大利文的,日本历史得看日文的,俄罗斯历史得看俄文的,不是吗?这实在是太解脱了!
今年年初的时候,我恍然间发现,二十多岁的时候立下的愿望(这一辈子认真读一千本好书)竟然实现了!很是高兴了一阵子…… 现在有了 DeepL,折腾了一个来月的感想是,『WOW,好像我还能再读至少两三千本好书呢……』
就这样。
当翻译变成了文本编辑。。。相关推荐
- 沙拉查词配置浏览器外翻译(为你的电脑配置一个随时翻译器吧!)
目录 前言 一.插件安装(以安装用户可跳转至步骤二) 二.配置桌面翻译 三.使用方法及分析 四.适用场景(插件级翻译的优势) 总结 前言 1.撰写本篇文章旨在提供一种轻量级(插件级)的桌面翻译的解决方 ...
- 七个高效的文本编辑习惯(以Vim为例)
本文由 伯乐在线 - dryrun 翻译自 Bram Moolenaar.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. [感谢@dryrun 的热心翻译.如果其他朋友也有不错的原创或译文,可以尝 ...
- swift 富文本编辑_如何使用Swift构建协作式文本编辑器
swift 富文本编辑 by Neo Ighodaro 由新Ighodaro 如何使用Swift构建协作式文本编辑器 (How to build a collaborative text editor ...
- 神奇的文本编辑,惊人的移花接木 | ACM MM 2019 论文赏析
点击我爱计算机视觉标星,更快获取CVML新技术 本文简要介绍 ACM Multimedia 2019录用论文"EditingText in the Wild"的主要工作.该论文主要 ...
- 翻译qmake文档(二) Getting Started
翻译qmake文档 目录 原英文文档: http://qt-project.org/doc/qt-5/qmake-tutorial.html 本教程教讲授qmake基础知识.这个手册里的其它专题包含更 ...
- python qt gui快速编程 pdf_翻译:《用python和Qt进行GUI编程》——介绍
介绍: 这本书讲的是如何利用Python和Qt来开发GUI应用程序的.仅仅需要一点点必备的知识:你可以使用一些面相对象的语言来编程,例如C++,C#,java或者python等等.在富文本编辑的那些章 ...
- (个人翻译)Scrivener交互式手册中文版FowWindows 03基础操作
文章目录 新手指引 主界面 活页夹 使用活页夹 特殊文件夹 其他文件夹没有特别之处 搜索 编辑器 使用编辑器 头视图 脚视图 检视器 概要与笔记 概要索引卡 笔记 标签与状态 书签 项目书签 元数据 ...
- 文本编辑快捷键_42种以上几乎可以在任何地方工作的文本编辑键盘快捷键
文本编辑快捷键 Whether you're typing an email in your browser or writing in a word processor, there are con ...
- ApacheCN 翻译、校对、笔记整理活动(有偿)进度公告 2022.7
命令行上的数据科学第二版[校对][千字两元] 仓库:https://github.com/apachecn/ds-cmd-line-2e-zh 整体进度:https://github.com/apac ...
最新文章
- 大国AI竞赛中国忙赶超,但美国仍主导全球AI芯片设计
- 基于人工智能智商研究的智能定律初探
- leetcode 10 Regular Expression Matching
- 优化group by 语句
- EBS常用表_Dictionary
- ASP.NET验证控件之RequiredFieldValidator
- mysql延迟关联为什么快_MySQL 覆盖索引与延迟关联详解
- printf 指针地址_指针搞都不懂,好意思说自己会C语言?
- oracle中where中使用函数,Oracle 尽量避免在 SQL语句的WHERE子句中使用函数
- Java基础入门笔记-布尔类型变量
- python进程池和线程池_Python中的进程池与线程池(包含代码)
- Diango 框架起步
- PCL之统计异常值去除滤波器--StatisticalOutlierRemoval
- 电蚊拍GB4706检测及安规测试设备
- 最新Mac安装/卸载pip教程
- 紧急求助SPSS大神。spss在xml神经网络预测值为空是怎么回事?
- 01.数模竞赛论文的写作
- practice是什么意思_practice是什么意思 还有practice的用法
- 动态分区式内存管理(完整代码)
- 魅族20值得入手吗 魅族20参数配置
热门文章
- (43)FPGA时序逻辑与组合逻辑(时序逻辑)
- 【蓝桥杯单片机】定时器和中断
- ajax html页面传值乱码,jQuery Ajax传值到Servlet出现乱码问题的解决方法
- 创建struct fib_info函数分析
- GStreamer 编写一个简单的MP3播放器
- 嵌入式Linux系统编程学习之七gdb调试器
- 【LeetCode】剑指 Offer 30. 包含min函数的栈
- 源码分析Dubbo服务提供者启动流程-上篇
- 2018.09.19 atcoder AtCoDeer and Election Report(贪心)
- Java中Lambda表达式的使用(转)