现如今,机器翻译技术已经越来越成熟了,尽管从整体来看机器翻译的结果还不是特别如意,但是也足以应付一般的翻译需求了。近几年机器翻译平台层出不穷,国外比较出名的翻译平台有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 自动检测

bdtrans 一个命令行下的机器翻译工具的更多相关文章

  1. Linux系统——28个命令行下的工具

    Unix/Linux下的28个命令行下的工具 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不 ...

  2. 命令行的全文搜索工具--ack

    想必大家在命令行环境下工作时候,一定有想要查找当前目录下的源代码文件中的某些字符的需求,这时候如果使用传统方案,你可能需要输入一长串的命令,比如这样: 1. grep -R 'string' dir/ ...

  3. dict-命令行下中英文翻译工具

    命令行下中英文翻译工具(Chinese and English translation tools in the command line) 安装(Install) ubuntu 安装 pip sud ...

  4. [Shell学习笔记] 命令行下的高级网络工具cURL命令

    原文: http://www.1987.name/365.html Linux curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯 ...

  5. 用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具

    用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具 前言 上周,同事抱怨说 react 怎么不能像 angular 那样,使用命令行工具来生成一个组件.对呀,平时工作时,想要创建 ...

  6. Linux 命令行下搜索工具大盘点,效率提高不止一倍!

    在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令.grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂. 于是,为了简化 grep ...

  7. GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。

    GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...

  8. 十分钟通过 NPM 创建一个命令行工具

    大过年的,要不要写点代码压压惊?来花十分钟学一下怎么通过 NPM 构建一个命令行工具. 写了一个小 demo,用于代替 touch 的创建文件命令 touchme ,可以创建自带“佛祖保佑”注释的文件 ...

  9. python:执行一个命令行N次

    经常希望可以执行一个命令行N次...windows下没有现成的工具(有?推荐给我!) 用python写一个... #!/usr/bin/evn python #coding: utf-8 " ...

随机推荐

  1. Jquery第一次考核

    1. 什么是JS JavaScript 缩写.一种计算机脚本语言 JavaScript是一种动态.弱类型.基于原型的语言,通过浏览器可以直接执行 2. JS三大组成部件 ECMAScript DOM ...

  2. C++学习之路

    一.二分查找 1.binary_search:查找某个元素是否出现. a.函数模板:binary_search(arr,arr+size ,indx) b.参数说明: arr: 数组首地址 size: ...

  3. light oj 1011 - Marriage Ceremonies (状态压缩+记忆化搜索)

    题目链接 大概题意是有n个男的n个女的(原谅我这么说,我是粗人),给你一个n*n的矩阵,第i行第j列表示第i个女(男)对第j个男(女)的好感度,然后要安排n对相亲,保证都是正常的(无搞基百合之类的), ...

  4. spring boot 学习笔记之前言----环境搭建(如何用Eclipse配置Maven和Spring Boot)

    本篇文档来源:https://blog.csdn.net/a565649077/article/details/81042742 1.1 Eclipse准备 (1)     服务器上安装JDK和Mav ...

  5. html+css+dom补充

    补充1:页面布局 一般像京东主页左侧右侧都留有空白,用margin:0 auto居中,一般.w. <!DOCTYPE html> <html lang="en"& ...

  6. 深入理解JVM-类加载器深入解析(1)

    类加载 在java代码中,类型的加载,连接与初始化过程都是在程序运行期间完成的 类型:表示的Object本身,并不是指一个对象,也就是class. 运行期间:表示的是一种runtime的概念,在运行期 ...

  7. npm 一些有用的提示和技巧

    生成 package.json 我们通常执行 npm init,然后开始添加 npm 请求的信息. 但是,如果我们不关心所有这些信息,并且希望保留默认值,那么对于 npm 请求的每一条数据,我们都按 ...

  8. print('', end='')

    print函数的end参数,从python3才开始支持,所以如果要使用这种模式,需要对应使用python3

  9. IE浏览器主页被篡改为2345,针对一般解决办法无法解决的情况

    1.注册表修改 按微软键+R  输入regedit 弹出注册表.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN 将右侧的Sta ...

  10. 关于Oracle本地连接出现与监听有关的问题的解决方法探讨

    关于Oracle本地连接出现与监听有关的问题的解决方法探讨 监听的作用: 用于应用桌面即用户与数据库服务器建立连接的媒介,客户端发送连接请求,监听识别请求并建立客户端与服务器的连接后,监听的使命并完成 ...