ThinkPhp多语言如何实现你了解过吗?

最近项目比较忙,就没有怎么写文章。本文主要内容为多语言的后台是如何实现的。php

前言

公司须要写一个多语言后台,之前也没作过,因而到面向百度了一下。这是用了TP框架俩年了,第一次发现框架是自带的多语言切换功能。这里着实给点一个赞。web

接下来咱们来实现一下这个功能。thinkphp

1、后台实现多语言

使用框架为v5.1.38 LTS数据库

来到配置文件config/app.php能够看到关于语言的配置信息就只有这俩个参数。浏览器

lang_switch_on这个参数是自动监听的浏览器语言,微信

default_lang关于这个参数就是在没有切换其它语言以前就直接默认中文配置文件了解以后咱们须要在须要的模块建立lang目录,而且配置对应语言的语言包。cookie

这里咔咔只配置了英文和中文  如还须要其它语言可自行添加便可。到这一步你会发现从头至尾都没有一个参数说是配置语言列表的参数。配置文件也没有找到。app

可是在文档里你能够看到这行代码。咱们去源码看看框架

在源码中就能够看得明白,语言的cookie的name值也是固定的,而且cookie的有效期时间为3600,这些都是须要根据本身项目进行调整的。编辑器

最重要的是看容许语言列表。咱们继续追溯这个变量在文件thinkphp/library/think/Lang.php最后咱们就能够看到一个方法,这个方法也正是文档给出的一个方法因为咱们整个后台都须要使用多语言,因此咱们须要在common中进行配置

2、视图切换语言

在视图模板里直接调用languageChange方法在视图中有一个变量为$languageName,这个变量是咔咔直接从配置文件直接取出来的,后期会调整到数据库中。

而后在控制器写方法changeLanguage,用来处理语言切换后的cookie改变此时咱们的后台页面就是这样的

3、测试

在通过上面的操做以后,咱们就能够根据本身设置的语言包来进行语言切换了

在模板中咱们就须要使用lang这个模板标签进行获取数据这个是英文状态这个是中文状态到这关于多语言的实现就完成了。

4、总结

上面说了这么多,只是把每一步的步骤给你们写出来了。

其中关键点以下

  • application/config.php配置文件修改
  • 在对应的模块里添加lang目录,而且建立须要的语言包
  • 视图进行语言切换调用后台接口存储cookie值。保存在think_var
  • 模板使用lang标签便可

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。但愿在诺大互联网中咔咔的文章能带给你一丝丝帮助。


本文分享自微信公众号 - PHP初学者必看(PHP0022)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索