身为码农,避免不了需要看一些大部头的英文图书。对于我这种英文“二把刀”,努努力倒是能看懂。但时间就是金钱,看英文图书的主要目的还是用最小的代价(主要是时间成本),学到最多最新的知识。所以很多英文图书,我也不想抠得太细,领会精神就好了。
这两年google翻译有了很大的进步,虽然翻译的结果跟人工翻译还是差了不少,但如果只想快速浏览知识本身,直接看google翻译的结果倒也凑合(有二义性的还是需要看原文的)。
于是想到了一个“半自动化”的图书翻译方法。
我要看的英文图书是PDF格式的,首先需要抽取其中的英文文本。
第一步:抽取PDF文本
1)在ubuntu下安装pdf转换工具:
apt-get install -y poppler-utils
2)抽取英文文本的命令:
pdftotext <your_book>.pdf -x 0 -W 1000 -y 80 -H 520 -nopgbrk -f <first_page> -l <last_page> <output>.txt
其中<your_book>是英文图书的文件名;<output>是要输出的文本文件名;<first_page>和<last_page>是需要抽取的起始页和结束页号,之所以指定页号区域,是因为google翻译是有长度限制的,所以我们提供的原始内容也不能太多,一两页就好了。
这里的-x, -y是要抽取英文区域距离左上角的坐标的x,y值,-W, -H表示文本区域的宽和高;之所以设置x,y,W,H,是想把页眉页脚部分去掉,否则页眉页脚穿插在正文之中,影响阅读。这里x,y,W,H的值需要根据PDF文件的布局来调整。
pdftotext命令的详细说明,请参阅:
man pdftotext
第二步:手动排版英文内容
这一步就是对照PDF原版,排版纯文本英文内容。例如,第一步抽取出来的文本一般断句是不对的,需要根据原文,重新合并和拆分句子。
第三步:调用google翻译
1)安装python环境
apt-get install -y python3-pip
2) 安装googletrans库
pip3 install googletrans
3) 编写脚本trans.py
#!/usr/bin/env python3
import googletrans
from googletrans import Translator
translator = Translator(service_urls=['translate.google.cn'])
file=open('output.txt','r')
origin=file.read()
result = translator.translate(origin, src='en', dest='zh-cn')
print(result.text)
简单解释一下:
service_urls是服务器url列表,国内访问translate.google.cn就行(不用额外的科学上网技术);src是'en',dest是'zh-cn',就是英译汉;翻译结果在result.text中,这里简单地将结果输出到了屏幕,您也可以存入指定的文件。
当然,上述方法只是初步翻译,您可以将翻译的结果合并整理成一本简单的图书,如果有精力的话,再做几遍人工校验,降低二义性,实现“信达雅”。
凡是重复的劳动都应该用计算机来做。其实也没那么容易了。但如果付出20%的劳动能换来80%的成果,做一下也值得。
英文大牛见笑了。每个人的基础不一样,想尽办法去努力的人值得“尊敬”。
,