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过滤危险html代码的函数
Jul 22 PHP
中英文字符串翻转函数
Dec 09 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
PHP实现文件下载详解
Nov 27 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
php实现socket推送技术的示例
Dec 20 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
php的单例模式及应用场景详解
Feb 27 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
ip签名探针
2006/10/09 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
python求斐波那契数列示例分享
2014/02/14 Python
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
农村产权制度改革实施方案
2014/03/21 职场文书
房屋出售协议书
2014/04/10 职场文书
企业读书活动总结
2014/06/30 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
教师节主题班会方案
2015/08/17 职场文书
体育教师研修感悟
2015/11/18 职场文书
Python实现简单的猜单词
2021/06/15 Python