云豹短视频app源码中关于php--thinkcmf配置语言包的说明
云豹科技经常接到国外客户的单子,因此在语言模式设置上,需要实现灵活切换,以便不同语言的人员使用。云豹短视频app源码采用PHP做后台,Thinkcmf做框架,Thinkcmf本身是具有多语言模式的,默认的两种语言:中文与英文。
一、 语言包切换设置
在云豹短视频app源码项目中,后台、前端、H5、接口四大模块需要配置语言包。本文就thinkcmf的前端进行简单介绍:
1、打开项目框架中前端的父类文件Homebasecontroller.php,更改初始化语言包设置
目录位置:域名//vendor/thinkcmf/cmf/src/controller/HomeController.php
1)、更改初始化语言包设置:把原有的获取语言包的代码:$lang = request()->langset();注释掉。
2)、添加获取语言类型的参数language,该参数有页面传递过来,下文语言包使用会介绍到。这里初始化配置代码如下:
if($_REQUEST['language']!=''){ $lang=$_REQUEST['language']; }else{ $lang='tha'; }
2、框架初始化语言包HomeLangBehavior行为配置:
云豹短视频APP源码中,目录文件:vendor/thinkcmf/cmf/src/behavior/HomeLangBehavior.php
根据需求获取语言包类型,代码如下:
$module=request()->module(); if( $module=='portal' || $module=='Portal'){//portal模块中包含前端与后台,所以要加验证判断语言包获取方式 $controller=request()->controller(); if($controller=="Page" || $controller=="page" ){//H5界面则根据参数language获取语言包类型 if($_REQUEST['language']!=''){ $langSet=$_REQUEST['language']; }else{ $langSet='tha'; } }else{//其他的框架获取方式 $langSet = request()->langset(); } }else{ if($_REQUEST['language']!=''){ $langSet=$_REQUEST['language']; }else{ $langSet='tha'; } }
2、云豹短视频app源码框架初始化LangBehavior行为配置:
目录文件:vendor/thinkcmf/cmf/src/behavior/LangBehavior.php
根据需求获取语言包$module=request()->module();
if($module=='appapi' || $module=='Appapi' ){ if($_REQUEST['language']!=''){ $langSet=$_REQUEST['language']; }else{ $langSet='tha'; } } else{ $langSet = request()->langset(); }
3、获取到语言包类型,接下来引用语言包内容文件
语言包内容文件位置:域名/app/appapi/lang/
语言包文件内容编写格式如下:
<?php return array( '语言包key值' => '翻译语言', )
4、云豹短视频app源码中的语言包生效,需要开启app.php文件中的多语言设置,如下图:
5、语言包的使用
1)、js
需要创建function.js文件,用户解析语言包,代码如下:
/** 语言包替换 key string 需要翻译的文本(语言包中的键值) params object 需要替换的参数(动态变量的键对值) **/ function LangT(key,params) { lang=typeof(lang)=='object'?lang:JSON.parse(lang); var rs = lang && lang[key] ? lang[key] : key; for (var k in params){ var r = new RegExp('{'+k+'}', "ig"); var re=params[k]; rs=rs.replace(r, re); } return rs; }
在js文件中引用如下:
LangT(“语言包key值”),此处的语言包key值是指上文中语言包内容文件中配置的key值。
2)、
html界面引入js并读取homecontroller返回到界面的语言包内容
H5的html一般引入到公共底部html中即可:
目录位置:域名/themes/default/appapi/footer.html
3)、云豹短视频app源码中,Html界面中多语言设置:
例如:{:lang('邀请奖励')},其中“邀请奖励”是对应的语言包中array数据中的键值对中的键。
4)、H5界面对应的controller文件多语言设置:
lang('邀请奖励');其中“邀请奖励”是对应的语言包中array数据中的键值对中的
带参数的设置:
lang("你购买的“{name}”,自动关闭",array("name"=>$v['goods_name']))
以上就是关于云豹短视频app源码的开发框架——thinkcmf语言包前端的简单介绍,如有其他问题,欢迎联系云豹客服,云豹科技竭诚为您服务。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com