Home > Article > Backend Development > How to switch multi-language settings in thinkPHP
This article mainly introduces the multi-language switching setting method of thinkPHP, and analyzes in detail the specific steps and related implementation techniques of thinkPHP to implement multi-language switching function in the form of examples. Friends in need can refer to the following
The example in this article describes the thinkPHP multi-language switching setting method. Share it with everyone for your reference, the details are as follows:
thinkphp multi-language setting is a bit "high-end", why is it said to be a bit "high-end"? Because it took me a long time to set it up, and the reason why it took me a long time to do it was because 'to enable language settings, you must first enable the behavior class of the initialization system'. Therefore, here, because of my limited experience, I think The multi-language setting of tp must first initialize the CheckLangBehavior.class.php of tp
How to initialize CheckLangBehavior.class.php? Explained below.
Under the tp framework, all modules initialize CheckLangBehavior.class.php, screenshot below:
You should be able to understand the path, it is in your public Just create a new tags.php in the module configuration file config.php. The content of tags.php is as follows:
<?php return array( //app_begin这个行为标签,其实就是tp的内置标签,作用是在tp初始化的时候,触发某个行为,在这里设置当然是触发多语言的功能了 'app_begin' => array('Behavior\CheckLangBehavior'),//开启语言功能 );
The above checkLangBehavior.class.php is in tp Under the built-in behavior class folder, take a screenshot to prove it:
Is this class exactly the same as the one above? You can go into the Library/Behavior folder of the TP framework to see if this class exists. What is the content in it? I will not analyze it here.
After configuring the above tags.php, we must configure the tp configuration file config.php
This config.php is in the first screenshot above, you just need to Add the following code there:
'LANG_SWITCH_ON' => true, //开启多语言支持开关 'DEFAULT_LANG' => 'zh-cn', // 默认语言 'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔 'LANG_AUTO_DETECT' => true, // 自动侦测语言
After configuring this, it is time to configure the multi-language file. Not much to say, screenshot:
The following is the code in the configuration en-us.php file:
<?php return array( /* 核心语言变量 */ '_WEB_NAME_' => 'TRAVEL', '_WELLCOME_' => 'Wellcome here!', );
The code in the zh-cn.php file :
<?php return array( /* 核心语言变量 */ '_WEB_NAME_' => '来往', '_WELLCOME_' => '欢迎来往!', );
The following is the code of the lang method of my IndexController.class.php:
public function lang(){ $wellcome = L('_WELLCOME_'); $this->assign('wellcome', $wellcome); $this->display(); }
This is the default template lang.html under the lang method in my IndexController.class.php controller. You can test it below,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>Tp语言设置测试</title> <meta name="keywords" content="关键字列表" /> <meta name="description" content="网页描述" /> <link rel="stylesheet" type="text/css" href="" /> <style type="text/css"></style> <script type="text/javascript"></script> </head> <body> <p>{$wellcome}</p> <p>切换到:<a href="?l=zh-cn">简体中文</a> | <a href="?l=en-us">English</a></p> </body> </html>
The test results are as follows:
You can click to switch the language. If there is a conversion between Chinese and English, it is correct.
The above is the entire content of this article. I hope it will be helpful to you. Everyone’s learning is helpful. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
thinkphp implements multi-language functions (language pack)
##
The above is the detailed content of How to switch multi-language settings in thinkPHP. For more information, please follow other related articles on the PHP Chinese website!