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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
通过php修改xml文档内容的方法
Jan 23 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
Symfony2安装第三方Bundles实例详解
Feb 04 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
PHP微信分享开发详解
Jan 14 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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实现斐波那契数列的简单写法
2014/07/19 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
javascript中常用编程知识
2013/04/08 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
从vue源码看props的用法
2019/01/09 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
python 字符串格式化代码
2013/03/17 Python
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python解析树及树的遍历
2016/02/03 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
python 实现性别识别
2020/11/21 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
新学期红领巾广播稿
2014/01/14 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
小学中等生评语
2014/12/29 职场文书
争先创优个人总结
2015/03/04 职场文书
自我评价优缺点范文
2015/03/11 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL