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 相关文章推荐
ip签名探针
Oct 09 PHP
玩转虚拟域名◎+ .
Oct 09 PHP
一个很不错的PHP翻页类
Jun 01 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 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
thinkPHP实现表单自动验证
2014/12/24 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
tensorflow多维张量计算实例
2020/02/11 Python
python中列表的含义及用法
2020/05/26 Python
django教程如何自学
2020/07/31 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
CSS3 分类菜单效果
2019/05/27 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
大三毕业自我鉴定
2014/01/15 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
2015年个人思想总结
2015/03/09 职场文书
学术会议通知
2015/04/15 职场文书
施工现场安全管理制度
2015/08/05 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers