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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
Feb 18 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
php实现用已经过去多长时间的方式显示时间
Jun 05 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP让网站移动访问更加友好方法
Feb 14 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配置文件中最常用四个ini函数
2007/03/19 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
python类参数self使用示例
2014/02/17 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
Python贪心算法实例小结
2018/04/22 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
会计实习生工作总结的自我评价
2013/10/07 职场文书
干部行政关系介绍信
2014/01/17 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏