本文实例讲述了Laravel框架实现调用百度翻译API功能。分享给大家供大家参考,具体如下:
前言
最近在弄的视频下载网站,弄seo是人工去google翻译,然后再保存,这样下去很累啊,然后就想到让程序自己去翻译然后保存不就行了嘛,自己主要把中文的seo搞定就OK了。说干就干,最先去找了google 翻译 api,可惜要绑定信用卡,太麻烦,放弃,然后找到百度翻译API,虽然支持的国外语言不多,但最基本的国家也都有了。ok,开始撸码。
代码说明
使用的是Laravel框架,语言包存放在resources/lang目录下。代码功能主要是读取lang下所有的文件,然后读取指定的文件(zh-CN),所里面的数据循环出来,调用百度API,再将翻译后的结果保存下来。
上码
static function translate($_query,$_src_lang,$_desc_lang){ #Trans:就是百度提供的PHP类 $_res = Trans::translate($_query,$_src_lang,$_desc_lang); $_result = @$_res[\"trans_result\"][0][\"dst\"]; return $_result; } #google 和 百度的不同.. const LANG=[ \"de\" => \"de\", \"en\" => \"en\", \"es\" => \"spa\", \"fr\" => \"fra\", \"it\" => \"it\", \"ja\" => \"jp\", \"ko\" => \"kor\", \"pt\" => \"pt\", \"ru\" => \"ru\", \"th\" => \"th\", \"vi\" => \"vie\", \"zh-CN\" => \"zh\", \"zh-TW\" => \"cht\", \"id\" => \"en\", \"ms\" => \"en\", \"my\" => \"en\", ]; static function startTrans($_trans_name=\'down.php\',$_lang_name=\'zh-CN\'){ $_lang_dir = Storage::disk(\'lang\'); $_dirs = $_lang_dir->directories(); $_transArr = self::_getSrcTransArr($_lang_name,$_trans_name); foreach($_dirs as $_lang){ #当然,要跳过指定的文件 if($_lang == $_lang_name){ continue; } $_tran_path = \"$_lang/{$_trans_name}\"; if(!$_lang_dir->exists($_tran_path)){ #这里直接touch就行了 $_lang_dir->copy(\"template.php\",$_tran_path); } $_trans_file_arr = []; #下面是翻译工作 foreach($_transArr as $key=>$_row){ $_trans_file_arr[$key] = self::translate($_row,self::LANG[$_lang_name],self::LANG[$_lang]); } #将数组写入文件 $str=\'\'.PHP_EOL.\'return \' . var_export($_trans_file_arr,true).\";\"; file_put_contents(resource_path(\"lang/{$_tran_path}\"), $str); } } #读取指定文件数组 private static function _getSrcTransArr($_dir_name,$_trans_name){ $_src_file = Storage::disk(\'lang\')->files($_dir_name); $_out_data = []; foreach($_src_file as $_file){ if(stripos($_file,$_trans_name)!==false){ $_out_data = include_once (resource_path(\"lang/{$_file}\")); break; } } return $_out_data; }
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
© 版权声明
THE END
暂无评论内容