前言
之前四座网发布过基于百度在线翻译的火车头php翻译插件和百度翻译API火车头翻译插件两款火车头采集器的翻译插件,前者基于百度在线翻译的实现的,但因为百度在线翻译规则变了导致现在无法使用,后者虽然可以使用但是百度翻译api每个月只有200万字符的免费翻译,对于翻译数量比较大的人来说可能不够用。
前几天有朋友在四座网博客上留言说发现一个可以使用的Google翻译php代码,问我能不能改成火车头数据采集器的php翻译插件,我看了下代码感觉应该不是很难就答应了,于是便有了今天这款GoogleTranslate插件。
很多人可能看到GoogleTranslate是基于Google在线翻译的,可能会怀疑它的稳定性,虽然Google搜索在国内是被墙了,但是Google翻译是通过translate.Google.cn来访问的,因此不用翻墙就可以直接使用。唯一的问题就是GoogleTranslate这款火车头数据采集软件插件是通过抓取Google在线翻译来实现的,不保证以后Google会改变网页规则。
插件特点
- 免费 基于Google在线翻译实现,使用完全免费。
- 简单 插件只有一个1K大小的php文件,下载后放到火车头网站采集软件里即可。
- 方便 所有的设置都在火车头网站数据抓取软件的采集规则里设置即可,不需要修改插件代码。
- 灵活 不受软件版本和操作系统版本的限制,只要支持php插件的火车头采集工具即可使用。
使用方法
1.修改火车头的PHP环境
由于火车头软件内置的PHP环境有问题,在使用php插件之前需要先修改火车头的PHP环境。修改的方法很简单,打开火车头采集器的安装目录“System/PHP”,找到php.ini文件打开,并找到如下代码。
;extension=php_curl.dll
将最前面的分号“;”删除并保存即可,这样火车头数据采集器就可以正常运行这个PHP插件了。
2.将插件文件放到火车头的安装目录
将下载的插件解压后,把“GoogleTranslate.php”文件放到火车头安装目录的插件文件夹。(V9版的是Plugins文件夹,7.6版的是Plugins/LocoySpider文件夹)
3.设置翻译方向和翻译标签
3.1.在火车头的采集规则里新建一个标签名叫“翻译方向”的标签,数据获取方式选择“生成固定格式的数据”,内容按“源语言标识>翻译目标语言标识”这样的规则填写。例如我采集的是中文,需要翻译成英文,则填“zh-CN>en”(中间的符号“>”是英文半角输入下的尖括号,符号错了的话无法翻译),如下图:
各国语言标识见本文下面的“语言标识”部分。
3.2.新建一个标签名叫“翻译标签”的标签用来设置需要翻译的标签和保存翻译后内容的标签,数据获取方式选择“生成固定格式的数据”,规则为“采集的标签名>保存翻译后内容的标签名”(同样中间的符号“>”是英文半角输入下的尖括号,符号错了的话无法翻译),多个翻译标签之间用英文半角的逗号“,”隔开,如果不需要保存采集的内容则前后都写采集标签名即可。如下图:
我上图中填写了4个翻译规则,火车头采集软件运行后,数据保存规则如下:
- 采集的标题不会保存中文内容,只会保存翻译后的英文内容。
- 内容、作者、出处三个都即会保存采集的中文内容,同时会保存翻译后的英文内容。
4.创建翻译内容标签
根据“翻译标签”里的规则,新建相应的标签名用来保存翻译后的内容,规则留空即可。例如我上面图中的规则里设置了内容、作者、出处三个标签,翻译后的内容都是存储在“翻译的XX”标签里的,那我的采集规则里需要对应的创建这三个标签名,然后这三个标签的采集规则留空,如下图:
上图中三个红框中的标签是用来保存翻译后的内容的,标签名必须和“翻译标签”内规则填写的标签名一致,如果未创建或和标签名和规则不一致,则会无法翻译,有可能火车头软件还会报错。
5.开启火车头采集工具的PHP插件功能
V9版本的火车头采集器在“编辑任务”>“其他设置”>“插件”>“采集结果处理插件”里,选择GoogleTranslate.php后保存规则。
火车头7.6版本在“编辑任务”>“文件保护及部分高级设置”>“任务PHP插件”里,选择GoogleTranslate后保存规则。
完成了以上步骤,只要翻译方向和翻译标签没错的话,就可以正常翻译了。
语言标识
语言标识码 | 名称 | 语言标识码 | 名称 |
---|---|---|---|
auto | 自动检测 | ||
zh-CN | 中文(简体) | zh-TW | 中文(繁体) |
en | 英语 | fr | 法语 |
de | 德语 | ru | 俄语 |
it | 意大利语 | ko | 韩语 |
ja | 日语 | la | 拉丁语 |
sq | 阿尔巴尼亚语 | ar | 阿拉伯语 |
am | 阿姆哈拉语 | az | 阿塞拜疆语 |
ga | 爱尔兰语 | et | 爱沙尼亚语 |
eu | 巴斯克语 | be | 白俄罗斯语 |
bg | 保加利亚语 | is | 冰岛语 |
pl | 波兰语 | bs | 波斯尼亚语 |
fa | 波斯语 | af | 布尔语(南非荷兰语) |
da | 丹麦语 | tl | 菲律宾语 |
fi | 芬兰语 | fy | 弗里西语 |
km | 高棉语 | ka | 格鲁吉亚语 |
gu | 古吉拉特语 | kk | 哈萨克语 |
ht | 海地克里奥尔语 | ha | 豪萨语 |
nl | 荷兰语 | ky | 吉尔吉斯语 |
gl | 加利西亚语 | ca | 加泰罗尼亚语 |
cs | 捷克语 | kn | 卡纳达语 |
co | 科西嘉语 | hr | 克罗地亚语 |
ku | 库尔德语 | lv | 拉脱维亚语 |
lo | 老挝语 | lt | 立陶宛语 |
lb | 卢森堡语 | ro | 罗马尼亚语 |
mg | 马尔加什语 | mt | 马耳他语 |
mr | 马拉地语 | ml | 马拉雅拉姆语 |
ms | 马来语 | mk | 马其顿语 |
mi | 毛利语 | mn | 蒙古语 |
bn | 孟加拉语 | my | 缅甸语 |
hmn | 苗语 | xh | 南非科萨语 |
zu | 南非祖鲁语 | ne | 尼泊尔语 |
no | 挪威语 | pa | 旁遮普语 |
pt | 葡萄牙语 | ps | 普什图语 |
ny | 齐切瓦语 | sv | 瑞典语 |
sm | 萨摩亚语 | sr | 塞尔维亚语 |
st | 塞索托语 | si | 僧伽罗语 |
eo | 世界语 | sk | 斯洛伐克语 |
sl | 斯洛文尼亚语 | sw | 斯瓦希里语 |
gd | 苏格兰盖尔语 | ceb | 宿务语 |
so | 索马里语 | tg | 塔吉克语 |
te | 泰卢固语 | ta | 泰米尔语 |
th | 泰语 | tr | 土耳其语 |
cy | 威尔士语 | ur | 乌尔都语 |
uk | 乌克兰语 | uz | 乌兹别克语 |
es | 西班牙语 | iw | 希伯来语 |
el | 希腊语 | haw | 夏威夷语 |
sd | 信德语 | hu | 匈牙利语 |
sn | 修纳语 | hy | 亚美尼亚语 |
ig | 伊博语 | yi | 意第绪语 |
hi | 印地语 | su | 印尼巽他语 |
id | 印尼语 | jw | 印尼爪哇语 |
yo | 约鲁巴语 | vi | 越南语 |
注意事项
- 如果是测试的话,“翻译方向”和“翻译标签”这两个标签一定要设置,否则火车头软件会报错。
- 我没有测试单篇文章字数很多时的效率和成功率,所以不知道如果采集的文章很长的话能不能正常翻译。
- GoogleTranslate插件的原理是将采集结果去请求Google在线翻译,然后再模拟浏览器将翻译结果抓取下来保存在火车头采集器里,所以如果Google翻译的网页规则变了的话,插件可能会无法使用。
- 我在火车头V9和7.6两个版本里都测试了,均能正常使用。如果火车头软件出现“您使用的PHP插件存在语法或其他问题,请检查!”这个错误提示,请按上面的使用方法中第1条,看看是否正确修改了火车头的PHP环境;然后再检查翻译方向、翻译标签设置的规则是否和你的采集规则一致。
如果插件突然使用不了了的话,可以在下面留言,或联系我。另外我是PHP渣,写这个插件的时候是一边搜索一边写的,如果你对PHP很了解,对这个插件有什么优化建议,欢迎评论留言告诉我。
鸣谢
写这个插件的原因是网友@DEV 在我博客上留言提出来的,要不是他留言我不会写这个插件。这个插件翻译的实现代码全部来自@云落的乐趣公园,我只是做了简单的修改,再加上了火车头插件的代码而已。
对以上两位朋友深表感谢。