一、引言
随着ChatGPT的持续火爆,各种像ChatGPT人工智能聊天机器人,如Claude,通义千问,文心一言不断涌现。这些新兴的人工智能产物在智能问答、语法纠错、信息抽取、代码撰写、译文评估、文章润色方面都发挥着重要作用,已经逐渐成为人生工作和生活中不可或缺的一部分,帮助我们解决实际问题,实现好的想法。
如果说翻译界早就进入到了译后编辑(MPTE)时代,那么在ChatGPT的助推下,文本生成、代码编程等领域已经进入到:人工选题+ChatGPT生成+人工编辑,即所谓的Choice+ChatGPT+Edit(CCE)阶段。因为,ChatGPT助推人机的交流、对话、协作,大大提升人工编程、项目开发的速度和质量。
今天,我们就采用EEC的方法,借助于ChatGPT和小牛机器翻译的API,快速开发一个不限字符的网页在线翻译工具,解决传统机器翻译术语不准确、翻译界面无法自定义、翻译质量不高的难题。
二、前期准备
1. 获取小牛翻译API
由于我们要用到小牛机器翻译API,所以我们要登录小牛的官方网站 niutrans.com 进行注册,
注册完之后,我们就可以登录小牛翻译的后台,
查看我们的免费翻译额度,新用户默认会给予100万字符的使用额度,有效期是一年。如果认证成为企业用户,将免费得到500万的免费额度,不得不说,这个额度还是不错的。
在小牛翻译官网后台,我们可以添加翻译记忆库、术语库,也可以下载Trados, Memq和Zotero插件,用于不同场景下的辅助翻译。在这里,我们只需要点击【API接口】,进入到下一个页面,然后再点击【复制APIKey】,可以得到小牛翻译的API。
接着我们还在这个页面点击上方的【开发文档】,找到php代码的demo即代码样码。
进入到文本翻译选项,向下拉,找到php的样例代码,进行复制:
2. 上传记忆库和术语库
我们可以点击右上角的【控制台】,点击左侧的【资源管理】,进入到术语词典和翻译记忆模块。
通过【创建词库】,再通过【添加术语】或者【添加记忆库】,可以添加单个或多个术语,也可以批量添加记忆库,经常使用的记忆库或者术语库可以设置为默认句库或者术语库。小牛翻译的术语词典、翻译记忆已上线分库功能,批量上传的记忆库支持tmx, txt 等格式。
其中txt格式的术语或者记忆库,平台都提供了模板,我们只用照着模板进行修改就可以了。
二、开发过程
1. 语言的选择
由于我们设想自己的在线翻译程序,可以在手机、电脑端使用,同时又支持Windows, 苹果等系统,于时我们就考虑用php来进行开发,这样只要电脑或者手机能访问网页,就能利用上我们的在线翻译工具。
而本人懂一点儿Python和VBA的编程知识,对php并不熟悉,那么作为一个php编程的门外汉,如何来开放出一个在线的翻译工具呢?下面就看看我们如何ChatGPT来辅助我们编程开发的吧。
2. 编程的过程
这时,我们要请出ChatGPT,设计好我们想要的网页呈现形式,同时还要把我们在小牛翻译上面得到的代码样例,同时在开发过程中,还要在我们的网站上进行测试效果,以期达到我们想到的目标。
于时,我向ChatGPT咨询如下:
请利用以下php代码编写一个网页翻译器,要求php代码。 有两个文本输入框,一个翻译按钮,把文本输入上方的文本框,点击翻译,翻译结果出现在下方文本框,要求写两个php文件,一个是index.php,展示界面,调用机器翻译引擎的网页response.php里放置我们这个代码:
编辑切换为居中
给ChatGPT发送指令
但是经过测试发现一个网页就够了,于时我让ChatGPT进行修改:
编辑切换为居中
修改指令
这一次我们得到了以下代码:
<!DOCTYPE html>
<html>
<head><title>网页翻译器</title><meta charset="utf-8">
</head>
<body><h1>网页翻译器</h1><?phpif(isset($_POST['submit'])) {$host = "http://api.niutrans.com";$path = "/NiuTransServer/translation";$apikey = "您的apikey";$src_text = $_POST['src_text'];$to = $_POST['to'];$durl = $host.$path."?from=zh&src_text=".urlencode($src_text)."&to=".$to."&apikey=".$apikey;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $durl);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);curl_setopt($ch, CURLOPT_TIMEOUT, 30);$data = curl_exec($ch);curl_close($ch);echo "<p>翻译结果:</p>";echo "<textarea name='result_text' rows='5' cols='50'>".$data."</textarea>";}?><form method="post" action=""><p>请输入需要翻译的文本:</p><textarea name="src_text" rows="5" cols="50"></textarea><br><p>请选择翻译语言:</p><select name="to"><option value="en">英语</option><option value="fr">法语</option><option value="es">西班牙语</option><option value="ru">俄语</option><option value="ja">日语</option><option value="ko">韩语</option></select><br><input type="submit" name="submit" value="翻译"><br><p>翻译结果:</p><textarea name='result_text' rows='5' cols='50'></textarea></form>
</body>
</html>
经过测试,上面这段代码有两个问题,一是返回的翻译结果是json格式,不是我们想要的译文,二是打开网页时,这个翻译结果框不显示,显得不是特别好看。于时,我请我一位精通php的好友Jeff帮我修改这个代码,同时我也把我的想法告诉了ChatGPT,让它帮我对代码进下完善和修改。首先,我们要它修改的是,让它获取json返回值中的"tgt_text. ",很快ChatGPT就给出了我们想要的结果。
编辑切换为居中
获取Json文件
进一步完善代码,我们给了ChatGPT以下指令:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
最后,我们将最终得到的代码进行了三个地方的修改: 1. 添加我自己的小牛翻译API; 2. 把【中文】添加目标翻译语种,实现中文和其它语中之间的互译; 2. 把默认翻译的语言改成auto,这样无论输入什么语言,小牛翻译强大的自动翻译功能就会准确地识别出它的语种,并按照要求翻译成我们想要的语言,这样我们这个网页翻译器的功能就大大提升了。
以下是我们最终完成的代码,全部完成不到半个小时:
<!DOCTYPE html>
<html>
<head><title>简易在线翻译器|Gordon制作</title><meta charset="utf-8">
</head>
<body><h1>网页翻译器</h1><?phpif(isset($_POST['submit'])) {$host = "http://api.niutrans.com";$path = "/NiuTransServer/translation";$apikey = "0e8f5df5b778ec4ef9f1796fe75c409f";$src_text = $_POST['src_text'];$to = $_POST['to'];$durl = $host.$path."?from=auto&src_text=".urlencode($src_text)."&to=".$to."&apikey=".$apikey;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $durl);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);curl_setopt($ch, CURLOPT_TIMEOUT, 30);$data = curl_exec($ch);curl_close($ch);$result = json_decode($data, true);echo "<p>翻译结果:</p>";echo "<textarea name='result_text' rows='5' cols='100'>".$result['tgt_text']."</textarea>";}else{echo "<p>翻译结果:</p>";echo "<textarea name='result_text' rows='5' cols='100'></textarea>";}?><form method="post" action=""><p>请输入需要翻译的文本:</p><textarea name="src_text" rows="5" cols="100"></textarea><br><p>请选择翻译语言:</p><select name="to"><option value="zh">中文</option><option value="en">英语</option><option value="fr">法语</option><option value="es">西班牙语</option><option value="ru">俄语</option><option value="ja">日语</option><option value="ko">韩语</option></select><input type="submit" name="submit" rows="5" cols="50" value="翻译" id="myButton"></form>
</body>
</html>
三、在线翻译器展示
1. 界面效果展示:
最终我们在虚拟主机上测试成功,得到以下界面:
编辑切换为居中
网页在线翻译器
当然以上只是一个具有基本功能的在线翻译器,虽然具备多语种翻译,但是由于没有设置css样式,看起来还是有点儿不上档次,下一步我们可以对其进行进一步修改和完善,使之更加美观、大方。
2. 翻译器的优势
尽管如此,我们还是用了不到一个小时就开发出了这样一个功能强大的翻译器,它有以下几大特色:
-
可以根据自己的需求进行个性化的设置。
-
可以实现语种在线即时快速检测,多语言之间的互译。
-
支持Windows, 苹果,手机安卓等客户端的访问,你可以随时随地使用它。
-
由于我们在小牛机器翻译后台设置默认的翻译忘记库和术语库,所以我们在查询术语和句子翻译时,机器翻译API会优先提供给我们库里的内容,使得我们得到的翻译结果更加精准。
四、启示
-
小牛翻译API免费,100万的免费额度不够用的话,还可以通过关注小牛的公众号签到领流量。如果文档较大的话可以用小牛的文档翻译,或者直接安装小牛的翻译插件,对文档进行快速翻译。
-
本项目开发过程证明了ChatGPT在项目开发、程序编写、代码调试等方面的优势,可以将其它作为自己工作流中的一部分,充分发挥它的"超级智慧",提升我们的工作效率和工作质量。
-
在上面例子中,我对于生成的译文可以进行译后编辑,也可以再喂给ChatGPT,让它指出我们的语法错误,润色我们的文字,提出进一步修改的意见,这样我们的译文质量就又可以更上一层楼了。