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安全配置
Oct 09 PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 PHP
php使用GeoIP库实例
Jun 27 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 PHP
详解Go与PHP的语法对比
May 29 PHP
PHP遍历数组的6种方式总结
Nov 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 str_pad 函数使用详解
2009/01/13 PHP
php微信开发自定义菜单
2016/08/27 PHP
php中namespace及use用法分析
2016/12/06 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
基于jQuery实现表格的排序
2016/12/02 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Django验证码的生成与使用示例
2017/05/20 Python
python 图像平移和旋转的实例
2019/01/10 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
承诺书范文
2014/06/03 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
付款证明格式范文
2015/06/19 职场文书
python基础之while循环语句的使用
2021/04/20 Python
JS ES6异步解决方案
2021/04/29 Javascript
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
python基于turtle绘制几何图形
2021/06/15 Python
Android studio 简单计算器的编写
2022/05/20 Java/Android