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 SQL之where语句生成器
Mar 24 PHP
php PDO中文乱码解决办法
Jul 20 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
PHP生成图片验证码、点击切换实例
Jun 25 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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读取msn上的用户信息类
2008/12/05 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
python实现的一个火车票转让信息采集器
2014/07/09 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
Python 发送邮件方法总结
2020/08/10 Python
Python内置函数及功能简介汇总
2020/10/13 Python
python excel多行合并的方法
2020/12/09 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
大学生文员专业个人求职信范文
2014/01/05 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
大学信息公开实施方案
2014/03/09 职场文书
法制教育观后感
2015/06/17 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
分析Python list操作为什么会错误
2021/11/17 Python