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


Posted in PHP onMay 30, 2019

本文实例讲述了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 #PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 #PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 #PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 #PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 #PHP
PHP微信网页授权的配置文件操作分析
May 29 #PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 #PHP
You might like
根德YB400的电路分析
2021/03/02 无线电
浅析php变量修饰符static的使用
2013/06/28 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
Python 除法小技巧
2008/09/06 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
浅析python标准库中的glob
2020/03/13 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
教你怎样写好自我评价
2013/10/05 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
党支部综合考察材料
2014/05/19 职场文书
八一建军节慰问信
2015/02/14 职场文书
出国留学单位推荐信
2015/03/26 职场文书
七年级数学教学反思
2016/02/17 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android