Laravel框架实现调用百度翻译API功能示例
本文实例讲述了Laravel框架实现调用百度翻译API功能。分享给大家供大家参考,具体如下:
前言
最近在弄的视频下载网站,弄seo是人工去google翻译,然后再保存,这样下去很累啊,然后就想到让程序自己去翻译然后保存不就行了嘛,自己主要把中文的seo搞定就OK了。说干就干,最先去找了google翻译api,可惜要绑定信用卡,太麻烦,放弃,然后找到百度翻译API,虽然支持的国外语言不多,但最基本的国家也都有了。ok,开始撸码。
代码说明
使用的是Laravel框架,语言包存放在resources/lang目录下。代码功能主要是读取lang下所有的文件,然后读取指定的文件(zh-CN),所里面的数据循环出来,调用百度API,再将翻译后的结果保存下来。
上码
staticfunctiontranslate($_query,$_src_lang,$_desc_lang){ #Trans:就是百度提供的PHP类 $_res=Trans::translate($_query,$_src_lang,$_desc_lang); $_result=@$_res["trans_result"][0]["dst"]; return$_result; } #google和百度的不同.. constLANG=[ "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", ]; staticfunctionstartTrans($_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($_dirsas$_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($_transArras$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); } } #读取指定文件数组 privatestaticfunction_getSrcTransArr($_dir_name,$_trans_name){ $_src_file=Storage::disk('lang')->files($_dir_name); $_out_data=[]; foreach($_src_fileas$_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程序设计有所帮助。