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 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
Smarty环境配置与使用入门教程
May 11 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 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 观察者模式的实现代码
2013/05/10 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
广告代码静态化js通用函数
2007/05/09 Javascript
js实现DIV的一些简单控制
2007/06/04 Javascript
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
JS实现简单日历特效
2020/01/03 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
一个超级简单的python web程序
2014/09/11 Python
连接Python程序与MySQL的教程
2015/04/29 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
活动邀请函范文
2014/01/19 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
药店营业员岗位职责
2015/04/14 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
JS实现扫雷项目总结
2021/05/19 Javascript