官方文档
>系统会默认加载下面三个语言包:
> 框架语言包: thinkphp\lang\当前语言.php
> 应用语言包: application\lang\当前语言.php
> 模块语言包: application\模块\lang\当前语言.php
>如果要在模板中输出语言变量不需要在控制器中赋值,可以直接使用模板引擎特殊标签来直接输出语言定义的值:
>{$Think.lang.lang_var}
可以输出当前语言包里面定义的 lang_var语言定义。
配置
~~~
'lang_switch_on' => true,
~~~
![](https://box.kancloud.cn/5b7b3c42f469ad2c3bfec3d2fbac5074_493x502.png)
zh-cn.php
~~~
<?php
return [
'tt' => '文章目录'
];
~~~
en-us.php
~~~
<?php
return [
'tt' => 'Article Category'
];
~~~
application\admin\controller\Login.php
~~~
public function index()
{
$ttt = Lang::get('tt');//Controller中如何调用多语言,也可以用lang('tt') 简写
// cookie('think_var', 'en-us'); //英
cookie('think_var', 'zh-cn'); //中
$this->assign('ttt', $ttt);
return $this->fetch();
}
~~~
\application\admin\view\login\index.html
~~~
1---{$Think.lang.tt}--第一种调用方法
2---{:lang('tt')}--与第一种方法一样
3---{$ttt}--controller中调用Lang类
~~~
总结:从上面的代码中我们可以得知,tp5多语言其实是读取cookie,然后去不同的语言包取数据,有两种形式可以取到,一个是从Controller取,一个是从模板中直接取,不管哪一种,都实现了数据与语言选择的分离。
- php套路
- 套路之类结构
- thinkphp分块解析之Collection
- thinkphp基础之collection
- Collection在thinkphp中的运用
- thinkcmf模块分析
- Controller按界面点击顺序排列表
- user模块-Controller分析
- portal模块-Controller分析
- admin模块-Controller分析
- user模块-脑图
- portal模块-脑图
- admin模块-脑图
- cmf公共函数解析-common.php
- thinkcmf点滴记录
- 自定义标签详解
- 插件
- 系统信息插件
- 插件演示插件
- 留言板插件
- 留言板1 建立胚胎
- 留言板1-1 数据库变化
- 留言板1-2 自定义钩子
- 留言板2 连接数据库
- 留言板3 读取后台界面数据
- 留言板4 前端模板
- 留言板5 分离cssjs文件
- 留言板6 验证
- 留言板7 图形验证码
- 留言板8 后台留言列表页
- 留言板9 后记
- 评论插件
- 1 分析数据表
- 2 CommentModel.php
- 3 UserModel.php
- 4 DCommentPlugin.php
- 前端调用代码
- 喜欢插件
- 1 分析
- 2 收藏功能
- 3 插件建模
- 4 数据库设计
- 5 插入一条数据
- 多语言
- thinkphp多语言
- thinkcmf多语言