bdtrans 一个命令行下的机器翻译工具

时间:2021-08-04 03:02:31

  现如今,机器翻译技术已经越来越成熟了,尽管从整体来看机器翻译的结果还不是特别如意,但是也足以应付一般的翻译需求了。近几年机器翻译平台层出不穷,国外比较出名的翻译平台有Google翻译、必应翻译等,国内比较出名的也有百度翻译、有道翻译等。

  中国的百度公司在人工智能层面做的还算是蛮不错的(虽然它的搜索一直以来为人所诟病),笔者经常在Linux下做一些工作,当有翻译需求时不得不打开浏览器,进入百度翻译官网去翻译一些句子,这样显然是有些麻烦,我想如果百度翻译肯提供一个API的话就好了,这样我就能做一个在终端下调用API的小工具。

  笔者尝试登录百度翻译的开发者平台,发现百度翻译果然提供了API,于是笔者便用Python脚本语言写了一个命令行下的调用百度翻译工具,将其命名为 bdtrans

  虽然笔者是在Linux下写的这个工具,但是其它平台也是支持的(前提是你的计算机上安装了一个python3的解释器),它所依赖的第三方包只有setuptools与prompt_toolkit.

  你可以将其当作一个pyhton包,在自己的脚本文件中导入并使用它,或者在python解释器中使用它,也可以将其完全当作一个命令行下的小工具,甚至启动交互式的翻译环境交互式翻译句子,它也支持从文件中读取翻译内容,并将翻译结果存储进文件中去,下面笔者简要介绍一下工具的使用。

安装

你可以使用Python包管理工具来安装它: pip install bdtrans

你也可以下载源码包,解压后运行安装文件: python setup.py insatll

Github开源地址:https://github.com/zsimline/bdtrans

使用方式

  首先,你应该去百度翻译的官网上注册一个账户,并按照官网上的指导并申请一个百度翻译API的AppID与秘钥。
  当你首次尝试导入bdtrans包,或者在命令行工具下使用它时,它将会指引你输AppID、秘钥、默认的翻译规则等信息,并在输入完成后在你的用户目录下生成一个名为.bdtrans的配置文件,之后你就可以直接使用它而无需再次输入AppID等相关信息了。
  需要注意的是,百度翻译限制调用API的频率为1s/次,所以请不要在1s内调用多次API

模块函数

trans(words, source_lang=None, target_lang=None, reverse=False)

作用:翻译用户给定的句子,输出翻译结果

参数 含义
words 你想要翻译的句子
source_lang 源语言代码(非必须)
target_lang 目标语言代码(非必须)
reverse 是否反转源语言与目标语言
>>> import bdtrans
>>> bdtrans.trans('Hello, boy!','en','zh')
>>> 你好,男孩!

io_trans(input_file, output_file=None, quiet=False)

作用:从文件中读取翻译内容,如果指定了输出文件,翻译结果将被存储到输出文件中

参数 含义
input_file 输入的文件名
output_file 输出的文件名
quiet 是否关闭控制台输出

set_lang(source_lang, target_lang)

作用:设置源语言代码与目标语言代码

参数 含义
source_lang 源语言代码
target_lang 目标语言代码

save(file_name)

作用:保存翻译结果到文件中

参数 含义
file_name 保存的文件名

reverse_lang()

作用:反转源语言与目标语言

list_langs()

作用:打印目前支持的语言列表

display_rules

作用:显示当前的语言翻译规则

change_appid()

作用:按照向导改变配置文件中的AppID

change_lang()

作用:按照向导改变配置文件中的默认翻译规则

initialize_app()

作用:按照向导初始化APP

命令行工具

可以直接在命令行下使用它,最重要的是你可以使用 “bdtrans -S” 进入交互式的翻译环境。

bdtrans [选项] 待翻译文本

选项

选项 含义
-h, –help 显示帮助消息
-v, –version 显示程序版本
-l, –list 打印语言列表
-S, –shell 启动交互式翻译环境
-s code, –source code 指定源语言
-t code, –target code 指定目标语言
-i filename, –input filename 指定输入文件
-o filename, –output filename 指定输出文件
–init 按照向导初始化APP
–changeinfo 改变配置文件中的AppID
–changelang 改变配置文件中的翻译规则

交互环境下的选项

选项 含义
/reve 反转源语言与目标语言
/rule 显示当前的翻译规则
/list 打印支持的语言列表
/help 显示帮助信息
/quit 退出交互环境
/save filename 保存翻译结果
/setlang source_lang target_lang 设置源语言与目标语言
user@host:$ bdtrans 德玛西亚万岁
user@host:$ Long live Demasia
user@host:$ bdtrans -t ara 德玛西亚万岁
user@host:$ فيفا دي مارسيا
user@host:$ bdtrans -s zh 德玛西亚万岁
user@host:$ 不可以只指定源语言!

在交互环境下可以使用 =code 来临时的指定目标语言,此时源语言将自动的被指定为auto, 例如 ” =zh hello world ”

>=th 你在地球嗑瓜子
คุณใช้เมล็ดแตงโมบนโลก
>=jp 我在月球吃西瓜
月でスイカを食べます

支持的语言列表

语言代码 语言
zh 中文
en 英语
yue 粤语
wyw 文言文
jp 日语
kor 韩语
fra 法语
spa 西班牙语
th 泰语
ara 阿拉伯语
ru 俄语
pt 葡萄牙语
de 德语
it 意大利语
el 希腊语
nl 荷兰语
pl 波兰语
bul 保加利亚语
est 爱沙尼亚语
dan 丹麦语
fin 芬兰语
cs 捷克语
rom 罗马尼亚语
slo 斯洛文尼亚语
swe 瑞典语
hu 匈牙利语
cht 繁体中文
vie 越南语
auto 自动检测