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 相关文章推荐
为查询结果建立向后/向前按钮
Oct 09 PHP
PHP面向对象编程快速入门
Dec 14 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
php获取操作系统语言代码
Nov 04 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
php图片裁剪函数
Oct 31 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 PHP
php-7.3.6 编译安装过程
Feb 11 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代码保护--Zend Guard的使用详解
2013/06/03 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
加热夹克:RAVEAN
2018/10/19 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
暑期实践思想汇报
2014/01/06 职场文书
市场安全管理制度
2014/01/26 职场文书
迟到检讨书500字
2014/02/05 职场文书
党员承诺践诺书
2014/05/20 职场文书
诚信贷款承诺书
2014/05/30 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
红与黑读书笔记
2015/06/29 职场文书
人代会简报
2015/07/21 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
Python绘制地图神器folium的新人入门指南
2021/05/23 Python