## 多语言
在CMS内容管理系统中前台支持多语言切换,默认的模板是未使用多语言,如果我们在开发过程中需要使用到多语言展示,可以按以下方法进行修改。
### 语言包文件
~~~bash
addons/cms/lang/zh-cn.php
addons/cms/lang/en.php
...
~~~
### 模板标签
我在们开发修改CMS模板标签时可以使用多语言模板标签来自动输出相应的文字,例如:
~~~bash
<a href="/">{:__('Home')}</a>
<a href="/">{:__('This is %s,base on %s', 'FastAdmin', 'ThinkPHP5')}</a>
~~~
此时我们需要在对应的多语言文件定义语言包,例如:
~~~php
<?php
return [
'Home' => '首页',
'This is %s,base on %s' => '这是%s,基于%s'
];
~~~
则在中文语言环境下展示效果为
~~~xml
<a href="/">首页</a>
<a href="/">这是FastAdmin,基于ThinkPHP5</a>
~~~
如果未定义语言包,默认会展示为
~~~xml
<a href="/">Home</a>
<a href="/">This is FastAdmin,base on ThinkPHP5</a>
~~~
### 切换多语言
当我们有多个语言世时,如果需要在前台切换多语言,我们可以通过以下几种方式进行切换
#### URL参数切换
我们可以通过传递`lang`参数来强制使用指定语言包,例如
~~~javascript
http://yoursite.com/cms/?lang=en
http://yoursite.com/cms/?lang=zh-cn
~~~
#### Cookie变量切换
很多时候我们切换一次多语言后,后续请求的页面也需要保持切换后的指定语言来显示,此时我们就需要使用到`cookie`来存储语言标识。
我们可以通过在PHP中或JS操作`think_var`这个`cookie`值来切换多语言。
~~~javascript
//php
setcookie('think_var', 'en');
//js
function setCookie(name,value,seconds) {
var expires = "";
if (seconds) {
var date = new Date();
date.setTime(date.getTime() + (seconds*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
setCookie('think_var', 'en');
~~~
### 常见问题
1. 语言包定义是不区分大小写的
2. 默认多语言会自适应用户当前的浏览环境,如果需要关闭自适应,请修改`application/config.php`中的`lang_switch_on`修改为`false`
- 概述
- 安装
- 配置
- 模板
- 标签
- 全局标签
- 文档/文档列表
- 专题/专题列表
- 栏目/栏目列表
- 公共参数
- 单页/单页列表
- 特殊标签
- 栏目列表页
- 分页标签
- 自定义字段
- ThinkPHP5标签
- 自定义表单数据列表
- 自定义过滤条件
- 用户信息
- 模板目录
- API
- 小程序
- 控制器
- Archives.php
- Base.php
- Common.php
- Index.php
- My.php
- User.php
- 准备工作
- 导入项目
- 修改配置
- 测试数据
- 多语言
- 常见问题
- Uniapp版
- 1.准备工作
- 1.HbuilderX安装
- 2.Hbuilder 插件安装
- 2.导入项目
- 3.运行项目
- 1.运行前的配置
- 2.运行为H5
- 3.运行为微信小程序
- 4.运行为APP
- 4.项目发布
- 1.发布H5端
- 2.发布微信小程序
- 3.发布APP
- 5.登录配置
- 6.常见问题
- 1.关于自定义导航栏切换闪烁问题
- 2.关于后台移动端样式预览问题
- 3.关于支付配置的问题
- 4.前端跨域的问题
- 5.关于各端内容分享的问题
- 6.关于签到问题
- 7.关于公众号授权登录问题
- 8.关于底部导航的追加或删除问题
- 9.运行微信小程序,进入微信小程序客户端后,没有底部菜单
- 10.关于首页焦点图的修改
- 11.关于发布小程序代码大小超出的问题
- 12.前端显示空白或白屏或提示网络请求错误的问题
- 13.关于如何在非tabbar配置页面显示tabbar导航
- 14.关于更换资讯页为主页的问题
- 15.关于更新1.4.4版本分包问题
- 16.Tabbar底部高亮显示问题
- 17.微信小程序获取手机号失败
- 18.微信小程序从页面侧滑返回或按键返回时Tabbar丢失的问题
- 19.Tabbar底部不支持外部链接的修复方法
- API文档
- 公共接口(Common)
- 文档接口(Archives)
- 评论接口(Comment)
- 自定义表单(Diyform)
- 短信验证码(Sms)
- 邮箱验证码(Ems)
- 登录/注册(Login)
- 我的接口(My)
- 搜索文档(Search)
- 标签文档(Tag)
- 日志中心(TheLogs)
- 会员中心(User)
- 专题接口(Special)
- 功能解说
- 自动内链
- 自定义表单
- 区块管理
- 栏目管理
- 模型管理
- 伪静态
- Sitemap
- 安全更新