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

这样就翻译成功了。

希望对大家有所帮助!!!

时间: 2024-10-13 19:28:54

Thinkphp3.2.3多语言翻译以及使用百度翻译的相关文章

基于百度翻译API开发属于自己的翻译工具

你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那每次弹出来的广告?其实我们想要的就是简单的翻译一个单词.今天就来使用百度翻译开放API,做一个属于自己的翻译工具,只有简单的翻译功能,至于外观自己根据自己的爱好,想做成什么样就做成什么样,终于可以任性一回了~~ 下面先来看一下词典效果:  一.百度翻译API简介 百度翻译可以通过HTTP访问,返回J

php百度翻译类

<?php // +---------------------------------------------------------------------- // | PHP MVC FrameWork v1.0 在线翻译类 使用百度翻译接口 无需申请Api Key // +---------------------------------------------------------------------- // | Copyright (c) 2014-2099 http://qil

Swift语言入门之旅 (翻译自《The Swift Programming Language》电子书)

关于Swift Swift是为IOS和OSX应用制定的新编程语言,吸取C和Objective-C语言的精粹,但不损失与C语言的兼容性.Swift采用安全编程模型.加入了各种现代编程语言特性,使得该语言更易被掌握.更具扩展性,用起来更有趣.Swift语言的奠基石是已经成熟的.并为大家所喜爱的Cocoa和Cocoa Touch框架,新语言使大家可以尽情畅想新软件开发的机遇. Swift沉积了多年的研发成果,苹果公司为提供高效Swift语言编译器.调试器和基础架构打下了坚实基础.我们使用Automat

日常API之百度翻译

百度翻译是什么,可以吃吗?相信很多人都熟悉,它是我们生活中必不可少的一只东东. 但是,百度翻译开发平台只有每月只能翻译200万个字符,多出的要按照49.00/百万字符来算.对于我酱紫的乞丐程序员来说,其实已经是足足的了. 接下来进入正题,分为2个部分讲,一是免费的百度翻译,二是收费的百度翻译(此处应该不会有人看) 首先讲讲免费的吧,这个API呢请求很简单,而且速度快. 一.免费版(无限制,且速度快) 先打开一只Cat,啊不,是翻译和Chrome(只要可以抓包的浏览器都可以,此处用Chrome做示

csharp:百度翻译

参考:http://api.fanyi.baidu.com/api/trans/product/index http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%99%BE%E5%BA%A6%E7%BF%BB%E8%AF%91API winform: /// <summary> /// 涂聚文 /// </summary>

C# 调用百度翻译Api

这是简单的界面.用的是wpf,winform也可以 具体的操作类 public partial class MainWindow : Window { string url = ""; public MainWindow() { InitializeComponent(); this.cbxTranslateChange.SelectedIndex = 0; } private TranClass tranClass = new TranClass(); private void bt

【Python】Python的urllib、urllib2模块调用“百度翻译”API进行批量自动翻译

1.问题描述 在文本数据处理时,经常回出现文本中各种语言的混杂情况,包括:英文.日语.俄语.法语等,需要将不同语种的语言批量翻译成中文进行处理.可以通过Python直接调用百度提供的翻译API进行批量的翻译. 百度翻译API详细文档见:百度翻译API文档 2.问题解决 开发环境:Linux 将文本中的中文和非中文进行分离,对非中文的部分进行翻译. Python的代码如下:translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys

阿里云发布黑科技:面对海量的文本翻译任务,阿里翻译团队是如何解决的

摘要: 对国际化企业来说语言问题是亟待突破的重要关口.面对海量的文本翻译任务,昂贵低效的人工翻译显然不能满足需求,利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键.阿里翻译团队在机器翻译领域做了大量技术储备,并针对我们所处的电子商务领域进行算法优化,进而打造阿里巴巴自己的机器翻译平台. 对国际化企业来说语言问题是亟待突破的重要关口.面对海量的文本翻译任务,昂贵低效的人工翻译显然不能满足需求,利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键.阿里翻译团队在机器翻译领域做了大量技

公众号对接百度翻译API

有时候在公众号中需要对接一些翻译的功能或者其他.最常见的翻译API就是中英互译,程序员用的最多的也就是中译英. 1.到百度翻译官网申请账号 http://api.fanyi.baidu.com/api/trans/product/desktop 登录之后就选择需要开通的服务.到http://api.fanyi.baidu.com/api/trans/product/apichoose 页面可以选择开通的服务.比如我已开通的服务: 开通的时候可以选择版本,对于我个人用户来说开通一个标准版就可以了,