Thinkphp3.2.3多语言翻译以及使用百度翻译的示例分析
admin
2023-06-17 03:21:25
0次

一、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-cn
http://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

这样就翻译成功了。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...