千家信息网

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

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章将为大家详细讲解有关Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Thinkphp多语言翻
千家信息网最后更新 2024年11月17日Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析

这篇文章将为大家详细讲解有关Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、Thinkphp多语言翻译

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

'配置值'    //语言包配置    'LANG_SWITCH_ON' => true, // 开启语言包功能    'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效    'LANG_LIST' => 'zh-cn,en-us,zh-tw', //必须写可允许的语言列表    'VAR_LANGUAGE' => 'l', // 默认语言切换变量);?>

然后在Common/conf文件夹下新建一个tags.php文件,写入内容:

 array('Behavior\CheckLangBehavior'),  );?>

当然还要写入自己的语言包文件,在Think/Lang/下面有四个语言包文件,你可以在这四个或新建语言包文都可以,或者你在模块下面新建一个Lang文件夹,比如Home/Lang,在下面新增zh-cn.php,en-us.php等等语言包文件。简体中文语言包可以这样写如下:

 "登录",);

英文语言包可以这样写如下:

 "Login",);

然后随便在一个页面,写入如下内容:

{$Think.lang._Login}

最后在浏览器访问该页面,即可看到,比如在地址栏输入如下URL:

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

这样就可以看到中英文切换了,大家可以自己试一试。

二、使用百度翻译

我这里说的百度翻译并不是在http://fanyi.baidu.com/这个网址中输入内容点击翻译这样的,这里我是以代码的形式利用CURL进行翻译的。

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

 '自动检测',        '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

这样就翻译成功了。

关于"Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0