ThinkPHP 5 框架实现多语言
今天给大家分享一篇tp5框架多语言的实例
第一步: 您需要在配置文件中开启网站多语言, 并添加语言允许列表:
// 默认语言
'default_lang' => 'zh-cn',
// 语言允许列表
'lang_list' => ['zh-cn','en-us'],
第二步: 添加 zh-cn.php 与 en-us.php 这两个语言包, 它们定义在application下lang目录中:
这两个语言包的具体内容如下:
1. zh-cn.php
<?php
return [
'lang' => '中文'
];
2. en-us.php
<?php
return [
'lang' => 'English'
第三步: 在模板文件中定义内容:
<p>您当前的语言为: {:lang('lang')}</p>
已经大功告成啦! 我们打开首页去访问看看
我们可以发现访问首页返回的是中文, 因为在config.php中, 默认的语言是zh-cn
接下来又出现了一个问题, 我需要怎么切换语言呢? 别急, 看代码
首先, 我们在首页写一个a链接, 做语言切换, 然后链接到我们的Index控制器replaceLang方法中.
<a href="/replaceLang">切换语言</a>
路由文件:
// 切换语言
Route::get('/replaceLang$', 'index/Index/replaceLang');
接下来就是最后一步, 也就是控制器中的代码
/**
* 语言切换
*/
public function replaceLang()
{
$lang = \think\Lang::detect();
switch ($lang) {
case 'zh-cn':
cookie('think_var', 'en-us');
return $this->success('切换英文成功!');
break;
case 'en-us':
cookie('think_var', 'zh-cn');
return $this->success('切换中文成功!');
break;
//其它语言
}
}
ps: \think\Lang::detect(); 此方法用于获取当前语言.