云豹短视频app源码中关于php--thinkcmf配置语言包的说明

发布来源:云豹科技
发布人:云豹科技
2021-05-28 10:21:09

云豹科技经常接到国外客户的单子,因此在语言模式设置上,需要实现灵活切换,以便不同语言的人员使用。云豹短视频app源码采用PHP做后台,Thinkcmf做框架,Thinkcmf本身是具有多语言模式的,默认的两种语言:中文与英文。

一、 语言包切换设置

在云豹短视频app源码项目中,后台、前端、H5、接口四大模块需要配置语言包。本文就thinkcmf的前端进行简单介绍:

1、打开项目框架中前端的父类文件Homebasecontroller.php,更改初始化语言包设置

目录位置:域名//vendor/thinkcmf/cmf/src/controller/HomeController.php

1)、更改初始化语言包设置:把原有的获取语言包的代码:$lang = request()->langset();注释掉。

2)、添加获取语言类型的参数language,该参数有页面传递过来,下文语言包使用会介绍到。这里初始化配置代码如下:


图片1.png


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/


图片2.png


语言包文件内容编写格式如下:

<?php
return array(
'语言包key值' => '翻译语言',
)


4、云豹短视频app源码中的语言包生效,需要开启app.php文件中的多语言设置,如下图:


图片3.png


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


图片4.png


3)、云豹短视频app源码中,Html界面中多语言设置:

例如:{:lang('邀请奖励')},其中“邀请奖励”是对应的语言包中array数据中的键值对中的键。

4)H5界面对应的controller文件多语言设置:

lang('邀请奖励');其中“邀请奖励”是对应的语言包中array数据中的键值对中的

带参数的设置:

lang("你购买的“{name}”,自动关闭",array("name"=>$v['goods_name']))

以上就是关于云豹短视频app源码的开发框架——thinkcmf语言包前端的简单介绍,如有其他问题,欢迎联系云豹客服,云豹科技竭诚为您服务。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任