一.配置
1.开启语言包功能
'lang_switch_on' => true,2.支持的语言列表'lang_list' => ['zh-cn','en-us'],
二.语言定义
3.语言定义框架或模块目录\lang\zh-cn.phpreturn ['zhongwen'=>'中文',//表示模板内使用{:lang('zhongwen')}获得的字符在中文状态下显示为'中文''yingwen' =>'英文',]框架或模块目录\lang\en-us.phpreturn ['zhongwen'=>'chinese',//表示模板内使用{:lang('zhongwen')}获得的字符在英文状态下显示为'chinese''yingwen' =>'english',]
三.自动侦测语言
路径:thinkphp\library\think\Lang.php修改函数detect()如下:public static function detect() {// 自动侦测设置获取语言选择$langSet = Config::get('default_lang');if (isset($_GET[self::$langDetectVar])) {// url中设置了语言变量$langSet = strtolower($_GET[self::$langDetectVar]);Cookie::set(self::$langCookieVar, $langSet, 3600);} elseif (Cookie::get(self::$langCookieVar)) {// 获取上次用户的选择$langSet = strtolower(Cookie::get(self::$langCookieVar));} elseif ($langSet) {// 获取默认语言Cookie::set(self::$langCookieVar, $langSet, 3600);} elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {// 自动侦测浏览器语言preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);$langSet = strtolower($matches[1]);Cookie::set(self::$langCookieVar, $langSet, 3600);}if (empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)) {// 合法的语言self::$range = $langSet;}}
四.控制器方法编写:
public function changelang() {$lang=input('lang');switch ($lang) {case 'en':cookie('think_var', 'en-us');break;case 'zn':cookie('think_var', 'zh-cn');break;default:cookie('think_var','zh-cn');break;}}
五.html代码部分:
<button class='n layui-btn' type="button" lang='en'>{:lang('yingwen')}</button><button class='n layui-btn layui-btn-danger' lang='zn' type="button">{:lang('zhongwen')}</button><script src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script><script>$('.n').click(function(){var data={'lang':$(this).attr('lang')};$.get("{:url('Index/changelang')}",data,function(){location.reload();})})</script>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号