溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Thinkphp3.2.3多語言翻譯以及使用百度翻譯的示例分析

發(fā)布時間:2021-09-06 14:20:27 來源:億速云 閱讀:111 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Thinkphp3.2.3多語言翻譯以及使用百度翻譯的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、Thinkphp多語言翻譯

首先在Common/conf/config.php文件中寫入如下內(nèi)容:

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

然后在Common/conf文件夾下新建一個tags.php文件,寫入內(nèi)容:

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

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

<?php

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

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

<?php

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

然后隨便在一個頁面,寫入如下內(nèi)容:

{$Think.lang._Login}

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

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

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

二、使用百度翻譯

我這里說的百度翻譯并不是在http://fanyi.baidu.com/這個網(wǎng)址中輸入內(nèi)容點(diǎn)擊翻譯這樣的,這里我是以代碼的形式利用CURL進(jìn)行翻譯的。

翻譯文件放在/Home/Common/function.php中,內(nèi)容如下:

<?php
class Translate {
    /**
     * 支持的語種
     * @var ArrayAccess
     */
    static $Lang = Array (
        'auto' => '自動檢測',
        'en' => '英語',
        'zh' => '中文',
        'cht' => '中文繁體',
    );
    /**
     * 獲取支持的語種
     * @return array 返回支持的語種
     */
    static function getLang() {
        return self::$Lang;
    }
    /**
     * 執(zhí)行文本翻譯
     * @param string $text 要翻譯的文本
     * @param string $from 原語言語種 默認(rèn):中文
     * @param string $to 目標(biāo)語種 默認(rèn):英文
     * @return boolean string 翻譯失敗:false 翻譯成功:翻譯結(jié)果
     */
    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 );
        // 出錯狀態(tài)碼 999
        if ($result ['error']) {
            return false;
        }
        return $result ['trans_result'] ['data'] ['0'] ['dst'];
    }
}
?>

大家可以根據(jù)自己的需求對其進(jìn)行修改。

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

這樣就翻譯成功了。

關(guān)于“Thinkphp3.2.3多語言翻譯以及使用百度翻譯的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI