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

举报
原来是咔咔 发表于 2022/03/27 00:25:49 2022/03/27
【摘要】 最近项目比较忙,就没有怎么写文章。本文主要内容为多语言的后台是如何实现的。 实现多语言后台 前言一、后台实现多语言二、视图切换语言三、测试四、总结 前言 公司需要写一个多语言后...

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

前言

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

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

一、后台实现多语言

使用框架为v5.1.38 LTS

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

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

default_lang关于这个参数就是在没有切换其它语言之前就直接默认中文
在这里插入图片描述
配置文件了解之后我们需要在需要的模块创建lang目录,并且配置对应语言的语言包。

这里咔咔只配置了英文和中文 如还需要其它语言可自行添加即可。
在这里插入图片描述
到这一步你会发现从头到尾都没有一个参数说是配置语言列表的参数。配置文件也没有找到。

但是在文档里你可以看到这行代码。我们去源码看看

在这里插入图片描述
在源码中就可以看得明白,语言的cookie的name值也是固定的,并且cookie的有效期时间为3600,这些都是需要根据自己项目进行调整的。

最重要的是看允许语言列表。我们继续追溯这个变量
在这里插入图片描述
在文件thinkphp/library/think/Lang.php最后我们就可以看到一个方法,这个方法也正是文档给出的一个方法
在这里插入图片描述
由于我们整个后台都需要使用多语言,所以我们需要在common中进行配置
在这里插入图片描述

二、视图切换语言

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

在这里插入图片描述
然后在控制器写方法changeLanguage,用来处理语言切换后的cookie改变
在这里插入图片描述
此时我们的后台页面就是这样的
在这里插入图片描述

三、测试

在经过上面的操作之后,我们就可以根据自己设置的语言包来进行语言切换了

在模板中我们就需要使用lang这个模板标签进行获取数据
在这里插入图片描述
这个是英文状态
在这里插入图片描述
这个是中文状态
在这里插入图片描述
到这关于多语言的实现就完成了。

四、总结

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

其中关键点如下

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

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

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/107881580

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200