thinkphp5.0实现网站英文切换 --- 2020-08-26
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp5.0实现网站英文切换 --- 2020-08-26相关的知识,希望对你有一定的参考价值。
参考技术A 首先来看下它的配置:// 是否开启多语言
'lang_switch_on' => true,
//语音列表
'lang_list' => ['zh-cn','en-us'],
// 获取当前选择语言的方法类
GetLang.php
<?php
namespace app\index\controller;
use think\Cookie;
use think\Lang;
use think\Request;
class GetLang
public function get_lang()
lang = input('lang');
if( lang = Cookie::get('think_var');
else
lang = Lang::range( lang.EXT, lang);
return $lang;
?>
// 显示效果的控制器类
Index.php
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
public function index()
now_lang = now_lang=='zh-cn')
now_lang=='en-us')
this->assign('set_lang', this->fetch();
?>
// 视图页
index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>:lang('TITLE')</title>
</head>
<body>
<a href="?lang=$set_lang">:lang('NOW_LANG')</a>
</body>
</html>
//语言包文件
zh-cn.php
<?php
return [
'TITLE'=>'语言切换',
'NOW_LANG'=>'切换',
]
?>
en-us.php
<?php
return [
'TITLE'=>'Language switching',
'NOW_LANG'=>'Switch',
];
?>
Thinkphp5 实现动态模板主题多个模板切换
在项目开发过程中会遇到一个网站有不同风格,本文详细介绍Thinkphp5 实现模板主题多个模板切换
一、在Config中配置view_path模板路径代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
‘template‘ => [ // 模板引擎类型 支持 php think 支持扩展 ‘type‘ => ‘Think‘ , // 模板路径 ‘view_path‘ => ‘/template/‘ , // 模板后缀 ‘view_suffix‘ => ‘html‘ , // 模板文件名分隔符 ‘view_depr‘ => DS, // 模板引擎普通标签开始标记 ‘tpl_begin‘ => ‘{‘ , // 模板引擎普通标签结束标记 ‘tpl_end‘ => ‘}‘ , // 标签库标签开始标记 ‘taglib_begin‘ => ‘{‘ , // 标签库标签结束标记 ‘taglib_end‘ => ‘}‘ , ], |
二、所有控制器继承 Base控制器,Base 控制器代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class Base extends Controller { public function __construct(Request $request ) { if ( $request ->isMobile()) { config( ‘template.view_path‘ , ‘template/default/mobile/‘ . $request ->module(). "/" ); } else { config( ‘template.view_path‘ , ‘template/default/web/‘ . $request ->module(). "/" ); } parent::__construct( $request ); } } |
PS:必须在构造函数里用config,构造函数过后调用就没用了
====================================
以上是全局切换,下面 是自定义切换
====================================
1.无参数调用
return $view->fetch();
2.指定操作调用
return $view->fetch("index");
3.带控制器
return $view->fetch("demo/index");
4.跨模块调用
return $view->fetch("admin@demo/index");
5.全路径模板调用
return $view->fetch(APP_PATH.request()->module().‘/view/demo/index.html‘);
采用5,全路径模板调用可解决
以上是关于thinkphp5.0实现网站英文切换 --- 2020-08-26的主要内容,如果未能解决你的问题,请参考以下文章