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 数组的创建、调用和更新实现代码
Mar 09 PHP
php的一些小问题
Jul 03 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php使用curl获取https请求的方法
Feb 11 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php生成高清缩略图实例详解
Dec 07 PHP
php制作的简单验证码识别代码
Jan 26 PHP
PHP的几个常用加密函数
Feb 03 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
Laravel框架基于ajax实现二级联动功能示例
Jan 17 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
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
Python是编译运行的验证方法
2015/01/30 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
Python 如何对文件目录操作
2020/07/10 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
销售找工作求职信
2013/12/20 职场文书
大学生村官任职感言
2014/01/09 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
小学运动会口号
2014/06/07 职场文书
技术支持岗位职责
2015/02/13 职场文书
自荐信范文
2019/05/20 职场文书
德劲DE1108畅想
2021/04/22 无线电
vue3中provide && inject的使用
2021/07/01 Vue.js