【转】当翻译竟然变成了文本编辑

wizardforcel 7月前

> 原文:李笑来@学习学习再学习

图片

翻译一本书只需要一天时间!

—— 这是我今天做的事情。

月初的时候,摸索了一阵 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 1
            activate
            set w_position to its position            set w_size to its size        end tell
    end tell

    set 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,好像我还能再读至少两三千本好书呢……』

就这样。

最新回复 (3)
  • 齿轮key 7月前
    引用 2

    可以有,或许一些事情需要重新考虑了。。
    转义问题,之前搜了下好像是 xiunobbs 本身而不是 markdown 编辑器的原因,短时间可能先没看了,引用也有问题,比较硬伤。

  • wizardforcel 7月前
    引用 3
    齿轮key 可以有,或许一些事情需要重新考虑了。。 转义问题,之前搜了下好像是 xiunobbs 本身而不是 markdown 编辑器的原因,短时间可能先没看了,引用也有问题,比较硬伤。
    代码块的引号不应该转义,该转义的是`<>`。
  • wizardforcel 7月前
    引用 4
    我倒是觉得,有了 copilot,代码注释也变成文本编辑了,源码本身也能变成宣传工具。
    • 跑跑后花园(Firefox 社区)
      5
        注册  登录
返回
发新帖