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
<?phpreturn ['lang' => '中文'
];
2. en-us.php
<?phpreturn ['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(); 此方法用于获取当前语言.

大家都学会了吗? 是不是没有想象中的这么难. 本文自己原创内容, 转载请注明来处!

ThinkPHP 5 框架实现多语言 实例讲解相关推荐

  1. pic单片机内部时钟校准c语言,实例讲解PIC单片机的时钟设置

    什么时钟? 首先我们先讲讲什么是时钟.时钟就是单片机的心脏.每跳动一下.整个单片机的各个电路就同步的动作一下.就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234....然后我们全部 ...

  2. think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...

    ThinkPHP之A方法实例讲解 ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('Use ...

  3. 无极菜单 php,ThinkPHP菜单无极分类 ThinkPHP菜单无极分类实例讲解

    想了解ThinkPHP菜单无极分类实例讲解的相关内容吗,祝君圆梦在本文为您仔细讲解ThinkPHP菜单无极分类的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:ThinkPHP菜单无极分类, ...

  4. php rsa加密实例,关于PHP语言的RSA加密实例讲解

    本文主要向大家介绍了关于PHP语言的RSA加密实例讲解,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 这几天做了一些接口的对接需要用到RSA加密,百度一番发现原来有个openssl_p ...

  5. java的无极分类,ThinkPHP菜单无极分类实例讲解

    效果图如下 controller控制器代码: /** * 菜单列表 */ public function index(){ $menuList= Db::name('menu')->order( ...

  6. c语言中字符指针变量输入,C语言指针基础知识实例讲解

    对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到, ...

  7. 《GO语言圣经》:Bit数组实例讲解

    <GO语言圣经>第六章方法中Bit数组实例讲解,与课后习题答案. 书中介绍了关于方法的语法,在最后给出一个实例--Bit数组实现集合这种数据结构. 目的 实现集合的数据结构,并能够做集合的 ...

  8. python手势识别_OpenCV+python手势识别框架和实例讲解

    基于OpenCV2.4.8和 python 2.7实现简单的手势识别. 以下为基本步骤 1.去除背景,提取手的轮廓 2. RGB->YUV,同时计算直方图 3.进行形态学滤波,提取感兴趣的区域 ...

  9. c 语言 字符 查找,C 语言实例 - 查找字符在字符串中出现的次数

    C 语言实例 - 查找字符在字符串中出现的次数 C 语言实例 C 语言实例 查找字符在字符串中的起始位置(索引值从 开始). 实例 #include int main() { char str[], ...

最新文章

  1. 如何查找历史线程阻塞原因_java并发编程-线程状态,线程阻塞方式,阻塞中的线程如何终止?...
  2. 10分钟学会React Context API
  3. orb_slam 编译错误
  4. hdu 4006 The kth great number 线段树/优先队列/set
  5. java基础知识——基础语法
  6. P3368-Frequent values【线段树】
  7. 查看网卡流量:nload
  8. Spring Boot的学习之路(02):和你一起阅读Spring Boot官网
  9. 【线性代数公开课MIT Linear Algebra】 第六课 AX=b与列空间、零空间
  10. D - 最长公共子序列问题-详细过程
  11. httpclient的post请求超时
  12. 处理和引发事件的规范
  13. 30岁过后,是继续上班,还是去做个小生意?
  14. vue判断列表中包含某一项_判断字符串中是否包含某个字符串
  15. 【LOJ2127】「HAOI2015」按位或
  16. java中级工程师所需的技能_中级Java开发工程师的工作职责描述
  17. 用matlab解系统框图,控制系统框图(请教matlab中怎么画控制系统流程框图?)
  18. 面试总结-接口测试面试题
  19. 「英语六级作文」整体框架-Essay Map
  20. 万能网页视频下载教程

热门文章

  1. AndroidStudio NDK开发 之 jni生成so文件
  2. Spark常见20个面试题(含大部分答案)
  3. 一个int占多少个字节?
  4. 【网络】路由器,集线器,交换机,网桥,光猫有啥区别?
  5. 寻找第K大的数(快排思想)
  6. ubuntu 20.04 部署SS5详解
  7. Three.js着色器基础【含源码】
  8. 用C语言实现状态机设计模式
  9. java设计模式-状态模式
  10. 今年七岁!日本赋予人工智能“涩谷未来”永久居住权 | 聚焦