在接下来的月份里,我决定——少写博客多写代码……毕竟文字那是文人玩的东西,我一敲代码的要写点东西真是半天憋不出一个字,别说有多难受了!所以我今后会把重心转移到技术方面,争取做出更多作品,而博客的更新,可能会减少到一周一篇,至于博客的内容,更多的则会是记录我之后学习的过程以及相关学习笔记。

进入正题,今天分享一个 php 的翻译类模块,小试了一下,效果非常不错!于是果断搬过来分享。

<?php  
// +----------------------------------------------------------------------  
// | PHP MVC FrameWork v1.0 在线翻译类 使用iciba接口 无需申请Api Key  
// +----------------------------------------------------------------------  
// | Copyright (c) 2014-2099 http://blog.wxsshop.com All rights reserved.  
// +----------------------------------------------------------------------  
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )  
// +----------------------------------------------------------------------  
// | Author: zlx3323 <605476114@qq.com> 2019年6月1日 下午15:22:15  
// +----------------------------------------------------------------------  
/** 
 * 在线翻译类 
 * @author zlx3323 <605476114@qq.com> 
 */  
class Translate {  
    /** 
     * 支持的语种 
     * @var ArrayAccess 
     */  
    static $Lang = Array (  
            'auto' => '自动检测',  
            
            'de' => '德语',  
            'ru' => '俄语',  
            'fr' => '法语',  
            'ko' => '韩语',  
           
            'ja' => '日语',  
          
          
            'es' => '西班牙语',  
          
            'en' => '英语',  
           
            'zh' => '中文'   
    );  
    /** 
     * 获取支持的语种 
     * @return array 返回支持的语种 
     */  
    static function getLang() {  
        return self::$Lang;  
    }  
    /** 
     * 执行文本翻译 
     * @param string $text 要翻译的文本 
     * @param string $from 原语言语种 默认:中文 
     * @param string $to 目标语种 默认:英文 
     * @return boolean string 翻译失败:false 翻译成功:翻译结果 
     */  
    static function exec($text, $from = 'zh', $to = 'en') {  
        // http://fy.iciba.com/ajax.php?a=fy&f=auto&t=auto&w=%E6%88%91%E7%88%B1%E4%BD%A0 
        $url = "http://fy.iciba.com/ajax.php?a=fy";  
        $data = array (  
                'f' => $from,  
                't' => $to,  
                'w' => $text   
        );  
		
        $data = http_build_query ( $data );  
		
        $ch = curl_init ();  
		 
        curl_setopt ( $ch, CURLOPT_URL, $url );  
        curl_setopt ( $ch, CURLOPT_REFERER, "http://fy.iciba.com" );  
        curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:37.0) Gecko/20100101 Firefox/37.0' );  
        curl_setopt ( $ch, CURLOPT_HEADER, 0 );  
        curl_setopt ( $ch, CURLOPT_POST, 1 );  
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );  
        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );  
        curl_setopt ( $ch, CURLOPT_TIMEOUT, 10 );  
        $result = curl_exec ( $ch );  
		
        curl_close ( $ch );  
          
        $result = json_decode ( $result, true );  
        
        if (!isset($result ['content'] ['out'])){  
            return false;   
        }  
        return $result ['content'] ['out'];  
    }  
}  
  
// 使用示例:  
echo Translate::exec ( "我爱你" );