Thinkphp的多语言功能---可用

使用ThinkPHP的多语言功能,需要做的事情有:

1.在配置文件里开启多语言,代码如下:

<?php
return array(
	//'配置项'=>'配置值'
	
	'SHOW_PAGE_TRACE' =>true, // 显示页面Trace信息

	
	
	'LANG_SWITCH_ON' => true,   // 开启语言包功能
	
	'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
	'DEFAULT_LANG' => 'zh-cn', // 默认语言
	'LANG_LIST'        => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
	'VAR_LANGUAGE'     => 'l', // 默认语言切换变量	
	

);
?>

2.在项目的行为配置文件(Conf/tags.php)中启用多语言行为,添加如下配置项:

return array(
    // 添加下面一行定义即可
    'app_begin' => array('CheckLang')
);

3.定义语言包

在项目的Lang目录里定义语言包,比如

E:\www\TP\APP\Lang\en-us\common.php

<?php
return array(
	'title'=>'Title',
	'hello'=>'Hello',
	'language'=>'Language',
);

E:\www\TP\APP\Lang\zh-cn\common.php

<?php
return array(
	'title'=>'标题',
	'hello'=>'你好',
	'language'=>'语言',
);

4.在TPL模板文件里加上下面的代码,

<!DOCTYPE html>
<html>
<head>
<meta http="Content-Type" content="text/html;charset=utf-8" />
<title>{$Think.lang.title}</title>
<script type="text/javascript" src="http://localhost/jQuery/jquery-1.9.1.min.js"></script>
<script>
function switchToLang(lang)
{
	var frame = $("<iframe id='lang'  ></iframe>");
	frame.appendTo('body');
	frame.attr('src','__APP__/Index/Lang/l/'+lang);
}
</script>
</head>
<body>
<p><a href="javascript:switchToLang('zh-cn')">中文</a>  <a href="javascript:switchToLang('en-us')">英文</a></p>
<p><?php echo LANG_SET; ?></p>
<p>{$Think.lang.hello}</p>
<p>{$Think.lang.language}</p>

</body>
</html>

switchToLang(lang)函数,用变量代替要显示的字符串。

5.在4中的tpl模板文件的对应controller里加入Lang method,比如:

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action
{
    public function index()
	{
		$this->display();
    }
	
	public function Lang()
	{      
		echo '<script> parent.location.reload()</script>';
    }
}

我没有完全理解4.5,4\5只是实现语言切换的一种方式,可以用其他的方式。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值