解锁外文书店

文摘   2024-08-06 17:30   北京  

ICAO曾经说过:安全数据库中的很多数据,都是以报告的形式,与诸如事故和事故征候等复杂事件相关。无论是SMS,还是EBT,其基础都是数据,既然数据都是报告的形式,而网上又能找到丰富的报告资料,尤其是事故调查报告、事故征候调查报告,这将对安全管理带来很多便利。然而,这些报告多为外语写成,英语最多,其他语种也不在少数,阅读困难使我们和海量数据失之交臂,有没有解决办法呢?

看完本篇,带你拥抱新世界。


步骤一:油猴

我们在网上搜一下,就能获得很多外语信息,有诸多方法把网页的外语变为中文,其中最简单实用的,是油猴+沉浸式翻译:

TamperMonkey是免费的浏览器插件,可以对浏览器下载的脚本进行管理,可以让网页变得更好看、去除广告、同步翻译等。其中沉浸式翻译插件支持很多种语言的相互翻译。

使用也极其简单,屏幕右侧弹出菜单,点击翻译即可。翻译结果会自动插入脚本,所以看上去是混排对照形式,既能看懂,又能对照。

以上是法语、阿拉伯语的奥运网站翻译效果。

安装油猴,请自行咨询度娘。

阅读一般的网页,用油猴就足够。但是,很多高质量文档,都是以pdf格式放在网上,下载后没法用油猴同步翻译,怎么办?


步骤二:pdf➡html

没错,想办法让pdf文档变成html文档即可。html文档就是浏览器读取和呈现的脚本文件,油猴也是针对html文档进行修改,获得翻译效果。

https://soft.rubypdf.com/software/pdf2htmlex-windows-version

按以上网址找到红框内软件,并下载,解压缩到一个文件夹,例如D:\pdf2html\。

接下来,我们去FAA网站下载一个AC试试,例如AC_20-165B,这是一个关于ADS-B的咨询通告,将pdf文件放到D:\pdf2html\里面。

这时打开命令行模式,进入D:\pdf2html\,或者对着文件夹点右键:

然后敲入指令:

pdf2htmlEX.exe --embed cfijo --dest-dir out AC_20-165B.pdf

开头是软件文件名,中间是参数,都不要改;最后是需要转化的文件名,可以换成需要转化的其他pdf文档。

执行完成后,文件夹内会出现out子文件夹,进去打开同名html文件,本例是AC_20-165B.html,你会看到和pdf文件几乎一样的页面:

说明已经转化成功,现在我们试一下油猴翻译:

成功翻译了,但是看上去很乱,这是为什么呢?因为这个软件的作者非常严谨,为了达到和原文尽量一致的显示效果,作者对层叠样式表进行了限制,导致油猴修改脚本后文字没地方显示,这又该怎么办?


步骤三:去除限制

这部分简单粗暴,分2个环节:

1、用记事本打开刚才生成的AC_20-165B.html,删除以下内容后保存:

<link rel="stylesheethref="fancy.min.css"/>
<script src="compatibility.min.js"></script>
<script src="pdf2htmlEX.min.js"></script>

2、再次用浏览器打开AC_20-165B.html,全文复制粘贴到一个新建word文档中,将该文档另存为html文件,例如AC.html,然后用浏览器打开它,启用油猴翻译,将会看到:

全文翻译成功,且保留英汉对照模式。

如果觉得麻烦,也可使用python代码,执行后做一次步骤三环节2即可。

import os
import webbrowser as wb

def run_cmd_command(cmd_command):
    os.system(cmd_command)

if __name__ == "__main__":
    pdfname = 'AC_20-165B'  # 确定pdf文件名
    python_exe_path = 'pdf2htmlEX.exe --embed cfijo --dest-dir out ' + pdfname + '.pdf'
    cmd_command = "{}".format(python_exe_path)
    run_cmd_command(cmd_command) # 转换为html

    style = ['<link rel="stylesheet" href="fancy.min.css"/>',
             '<script lay-src="compatibility.min.js"></script>',
             '<script lay-src="pdf2htmlEX.min.js"></script>']
    # 使用 open() 函数以只读模式打开我们的文本文件
    with open('.\\out\\' + pdfname + '.html''r', encoding='UTF-8'as file:# 使用 read() 函数读取文件内容并将它们存储在一个新变量中
       data = file.read()
    for i in style:# 使用 replace() 函数搜索和替换文本
       data = data.replace(i, '')
    with open('.\\out\\' + pdfname + '.html''w', encoding='UTF-8'as file:# 以只写模式打开我们的文本文件以写入替换的内容
       file.write(data) # 在文本文件中写入替换的数据

    wb.open('.\\out\\' + pdfname + '.html')

Final Song

有些朋友可能发现,打开生成的html文件后浏览器没有出现粉红“中”,打开网站却能出现并翻译,这是怎么回事呢?

原因是本地权限没有开,需要右键点击油猴,然后点击“管理扩展程序”:

这里打开即可:


外文书店的大门由此打开,如果你也成功解锁,记得转发给需要的人。


深入了解民航,请进入下列链接:

徒手画风螺旋线
地形和DEM
空管达人X
AI断案
用大数据减少鸟击危害
METAR提纯


Ubuntu330
简约是王道 Keep It Simple, Stupid