Thinkphp3.2.3多語言翻譯以及使用百度翻譯

一、Thinkphp多語言翻譯

首先在Common/conf/config.php文件中寫入如下內容:

<?php
return array(
    //'配置項'=>'配置值'
    //語言包配置
    'LANG_SWITCH_ON' => true, // 開啓語言包功能
    'LANG_AUTO_DETECT' => true, // 自動偵測語言 開啓多語言功能後有效
    'LANG_LIST' => 'zh-cn,en-us,zh-tw', //必須寫可允許的語言列表
    'VAR_LANGUAGE' => 'l', // 默認語言切換變量
);
?>

然後在Common/conf文件夾下新建一個tags.php文件,寫入內容:

<?php
/**
 * 語言包配置文件
 */
return array(
    // 添加下面一行定義即可
    'app_begin'     => array('Behavior\CheckLangBehavior'),  
);
?>

當然還要寫入自己的語言包文件,在Think/Lang/下面有四個語言包文件,你可以在這四個或新建語言包文都可以,或者你在模塊下面新建一個Lang文件夾,比如Home/Lang,在下面新增zh-cn.php,en-us.php等等語言包文件。簡體中文語言包可以這樣寫如下:

<?php

/**
 * 簡體中文語言包
 */
return array(
    '_Login' => "登錄",
);

英文語言包可以這樣寫如下:

<?php

/**
 * 英文語言包
 */
return array(
    '_Login' => "Login",
);

然後隨便在一個頁面,寫入如下內容:

{$Think.lang._Login}

最後在瀏覽器訪問該頁面,即可看到,比如在地址欄輸入如下URL:

http://localhost/index.php?l=zh-cn
http://localhost/index.php?l=en-us

這樣就可以看到中英文切換了,大家可以自己試一試。


二、使用百度翻譯

我這裏說的百度翻譯並不是在http://fanyi.baidu.com/這個網址中輸入內容點擊翻譯這樣的,這裏我是以代碼的形式利用CURL進行翻譯的。

翻譯文件放在/Home/Common/function.php中,內容如下:

<?php
class Translate {
    /**
     * 支持的語種
     * @var ArrayAccess
     */
    static $Lang = Array (
        'auto' => '自動檢測',
        'en' => '英語',
        'zh' => '中文',
        'cht' => '中文繁體',
    );
    /**
     * 獲取支持的語種
     * @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') {
        $url = "http://fanyi.baidu.com/v2transapi";
        $data = array (
            'from' => $from,
            'to' => $to,
            'query' => $text
        );
        $data = http_build_query ( $data );
        $ch = curl_init ();
        curl_setopt ( $ch, CURLOPT_URL, $url );
        curl_setopt ( $ch, CURLOPT_REFERER, "http://fanyi.baidu.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, 5 );
        $result = curl_exec ( $ch );
        curl_close ( $ch );
        $result = json_decode ( $result, true );
        // 出錯狀態碼 999
        if ($result ['error']) {
            return false;
        }
        return $result ['trans_result'] ['data'] ['0'] ['dst'];
    }
}
?>

大家可以根據自己的需求對其進行修改。

echo Translate::exec ( "大家好","zh",“en”); //這裏輸出是:Hello everyone

這樣就翻譯成功了。

希望對大家有所幫助!!!j_0071.gifj_0078.gifj_0079.gif



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章