当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel框架实现调用百度翻译API功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-24 11:15:15 浏览: 评论:0 

这篇文章主要介绍了Laravel框架实现调用百度翻译API功能,结合实例形式分析了基于Laravel框架的百度翻译API调用相关操作技巧,需要的朋友可以参考下。

本文实例讲述了Laravel框架实现调用百度翻译API功能,分享给大家供大家参考,具体如下:

前言

最近在弄的视频下载网站,弄seo是人工去google翻译,然后再保存,这样下去很累啊,然后就想到让程序自己去翻译然后保存不就行了嘛,自己主要把中文的seo搞定就OK了。说干就干,最先去找了google 翻译 api,可惜要绑定信用卡,太麻烦,放弃,然后找到百度翻译API,虽然支持的国外语言不多,但最基本的国家也都有了。ok,开始撸码。

代码说明

使用的是Laravel框架,语言包存放在resources/lang目录下。代码功能主要是读取lang下所有的文件,然后读取指定的文件(zh-CN),所里面的数据循环出来,调用百度API,再将翻译后的结果保存下来。

上码:

  1. static function translate($_query,$_src_lang,$_desc_lang){ 
  2.   #Trans:就是百度提供的PHP类 
  3.   $_res  = Trans::translate($_query,$_src_lang,$_desc_lang); 
  4.   $_result = @$_res["trans_result"][0]["dst"]; 
  5.   return $_result
  6. #google 和 百度的不同.. 
  7.  const LANG=[ 
  8.   "de"  => "de"
  9.   "en"  => "en"
  10.   "es"  => "spa"
  11.   "fr"  => "fra"
  12.   "it"  => "it"
  13.   "ja"  => "jp"
  14.   "ko"  => "kor"
  15.   "pt"  => "pt"
  16.   "ru"  => "ru"
  17.   "th"  => "th"
  18.   "vi"  => "vie"
  19.   "zh-CN" => "zh"
  20.   "zh-TW" => "cht"
  21.   "id"  => "en"
  22.   "ms"  => "en"
  23.   "my"  => "en"
  24. ]; 
  25. static function startTrans($_trans_name='down.php',$_lang_name='zh-CN'){ 
  26.   $_lang_dir =  Storage::disk('lang'); 
  27.   $_dirs   =  $_lang_dir->directories(); 
  28.   $_transArr =  self::_getSrcTransArr($_lang_name,$_trans_name); 
  29.   foreach($_dirs as $_lang){ 
  30.     #当然,要跳过指定的文件 
  31.     if($_lang == $_lang_name){ 
  32.       continue
  33.     } 
  34.     $_tran_path = "$_lang/{$_trans_name}"
  35.     if(!$_lang_dir->exists($_tran_path)){ 
  36.       #这里直接touch就行了 
  37.       $_lang_dir->copy("template.php",$_tran_path); 
  38.     } 
  39.     $_trans_file_arr  =  []; 
  40.     #下面是翻译工作 
  41.     foreach($_transArr as $key=>$_row){ 
  42.       $_trans_file_arr[$key] = self::translate($_row,self::LANG[$_lang_name],self::LANG[$_lang]); 
  43.     } 
  44.     #将数组写入文件 
  45.     $str=''.PHP_EOL.'return ' . var_export($_trans_file_arr,true).";"
  46.     file_put_contents(resource_path("lang/{$_tran_path}"), $str); 
  47.   } 
  48. #读取指定文件数组 
  49. private static function _getSrcTransArr($_dir_name,$_trans_name){ 
  50.   $_src_file =  Storage::disk('lang')->files($_dir_name); 
  51.   $_out_data =  []; 
  52.   foreach($_src_file as $_file){ 
  53.     if(stripos($_file,$_trans_name)!==false){ 
  54.       $_out_data = include_once (resource_path("lang/{$_file}")); 
  55.       break
  56.     } 
  57.   } 
  58.   return $_out_data
  59. }

Tags: Laravel调用百度翻译API

分享到: