欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

关于网站调用在线翻译api实现翻译功能

发布时间:2025/4/16 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于网站调用在线翻译api实现翻译功能 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在做一些网站的时候偶尔会遇到需要中英文翻译的部分,也许是提供用户在线翻译的功能,也可能是把用户输入的一整段文字进行翻译。小龙最近就遇到这么一个事儿,对接中外两方用户的沟通,为了对语言不那么顺畅的用户提供一点点帮助,在网站里嵌入了自动翻译的功能,就简化了用户复制黏贴,再打开百度翻译的步骤了。

小龙用的是有道提供的api,普通用户就可以免费使用的。有道提供了网页模块的调用法和数据接口型的,网页模块的会比较简单一些,在他们官网上把写好的代码复制进html就好,这边简单展开以下数据接口型的调用。

首先,我们需要一个key,做过百度api的朋友对这个应该是完全不陌生了。申请地址:http://ai.youdao.com/,注册后就可以申请了。

有道提供的api很简单:

  http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=<doctype>&version=1.1&q=要翻译的文本

一个很标准的GET形式的数据传输,想看结果的朋友可以直接申请key以后,将这段链接复制进浏览器的地址栏,打开,就可以看到回传的数据了,记得数据类型必须是utf8的,还要url转码哦。

小龙给一个PHP的DEMO给参考下:

function simple_translate($sentence){$url_sentence = urlencode($sentence);$url = "http://fanyi.youdao.com/openapi.do?keyfrom=xinlei&key=759115437&type=data&doctype=json&version=1.1&q=".$url_sentence;$str_json = file_get_contents($url);if ($str_json){$info = json_decode($str_json);$translation = $info->translation;$result_sentence = $translation[0];}else{$result_sentence = $sentence;}return $result_sentence; }

这个api有个小小的缺点,就是只能翻译200个字符以内的段落,多了,他就OOXX了~~~~

我们的解决方法嘛,小龙就把段落切成了句子,然后一句句翻,翻完了拼起来呗。。。最原始的方法了,不过,很好使

给一个加强版的DEMO,会调用到上面的function

function translate($string){if ($string){$symbol_array = array(".", "?", "!", ")", "(", "[", "]","{", "}",":");$i = 0;$result = "";while($i < strlen($string)){if (in_array($string[$i], $symbol_array)){$s = $string[$i];$string1 = substr($string, 0, $i);$string2 = substr($string, $i+1);$result = simple_translate($string1).$s.translate($string2);break;}$i++;}if (!$result){$result = simple_translate($string);}return $result;}else{return "";}}

  按照 . , ? ! : () [] {} 对于段落进行了切割,然后逐句翻译,最后再整个拼起来。

转载于:https://www.cnblogs.com/starkiller/p/6928954.html

总结

以上是生活随笔为你收集整理的关于网站调用在线翻译api实现翻译功能的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。