Home Backend Development PHP Tutorial thinkphp implements multi-language functions (language pack)_PHP tutorial

thinkphp implements multi-language functions (language pack)_PHP tutorial

Jul 13, 2016 am 10:37 AM
thinkphp Language pack

1. Add the following configuration in config.php of Home (the project name you chose)

Copy code The code is as follows:

return array(
//'Configuration items '=>'Configuration value'
'LANG_SWITCH_ON' => FAULT_LANG' => ; 'zh-cn', //Default language
'LANG_LIST' => 'en-us,zh-cn,zh-tw', //Must write a list of allowed languages ​​
'VAR_LANGUAGE' = > 'l', //Default language switching variable
);
?>


2. Add a php file (tag.php) to the conf folder of Home and add the following code:

Copy code The code is as follows:
return array(
// Just add the following line of definition
' app_begin' => array('CheckLang')
);


3. Copy the Extend/Behavior/CheckLangBehavior.class.php file to Home/lib/Behavior/ (only the full version of thinkphp package is available, if not, please create it yourself)

CheckLangBehavior.class.php code:

Copy code The code is as follows:

defined('THINK_PATH') or exit();
/**
* 语言检测 并自动加载语言包
* @category Extend
* @package Extend
* @subpackage Behavior
*/
class CheckLangBehavior extends Behavior {
// 行为参数定义(默认值) 可在项目配置中覆盖
protected $options = array(
'LANG_SWITCH_ON' => false,   // 默认关闭语言包功能
            'LANG_AUTO_DETECT'      => true,   // 自动侦测语言 开启多语言功能后有效
            'LANG_LIST'             => 'zh-cn', // 允许切换的语言列表 用逗号分隔
            'VAR_LANGUAGE'          => 'l',        // 默认语言切换变量
        );

    // 行为扩展的执行入口必须是run
    public function run(&$params){
        // 开启静态缓存
        $this->checkLanguage();
    }

    /**
     * 语言检查
     * 检查浏览器支持语言,并自动加载语言包
     * @access private
     * @return void
     */
    private function checkLanguage() {
        // 不开启语言包功能,仅仅加载框架语言文件直接返回
        if (!C('LANG_SWITCH_ON')){
            return;
        }
        $langSet = C('DEFAULT_LANG');
        // 启用了语言包功能
        // 根据是否启用自动侦测设置获取语言选择
        if (C('LANG_AUTO_DETECT')){
            if(isset($_GET[C('VAR_LANGUAGE')])){
                $langSet = $_GET[C('VAR_LANGUAGE')];// url中设置了语言变量
                cookie('think_language',$langSet,3600);
            }elseif(cookie('think_language')){// 获取上次用户的选择
                $langSet = cookie('think_language');
            }elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){// 自动侦测浏览器语言
                preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
                $langSet = $matches[1];
                cookie('think_language',$langSet,3600);
            }
            if(false === stripos(C('LANG_LIST'),$langSet)) { // 非法语言参数
                $langSet = C('DEFAULT_LANG');
            }
        }
        // 定义当前语言
        define('LANG_SET',strtolower($langSet));

$group = '';
$path = (defined('GROUP_NAME') && C('APP_GROUP_MODE')==1) ? BASE_LIB_PATH.'Lang/'.LANG_SET.'/' : LANG_PATH.LANG_SET .'/';
// Read the project common language package
if(is_file(LANG_PATH.LANG_SET.'/common.php'))
L(include LANG_PATH.LANG_SET.'/common.php ');
// Read grouped common language package
if(defined('GROUP_NAME')){
if(C('APP_GROUP_MODE')==1){ // Independent group
$file = $path.'common.php';
             }else{ // Common grouping                                                         ' ); If (is_file( $path.$group.strtolower(MODULE_NAME).'.php'))
                   L(include $path.$group.strtolower(MODULE_NAME).'.php');
                                   >


4. Create 3 language folders under the lang folder in Home. They are zh-cn en-us zh-tw,

Create a common.php file in each of these three folders, as shown in the figure:

In common.php write


Copy the code

The code is as follows:

return array(
      'welcome'=>'Welcome to use thinkphp',
);?>

Copy code

The code is as follows:


return array(
'welcome'=>'Welcome to ThinkPHP',
);?>

Copy code

The code is as follows:


return array(
'welcome'=>'Welcome to ThinkPHP',
);?>
5. Create the view index.html
in the tpl/Index/ folder



Copy code

The code is as follows:

ThinkPHP Example: Multi-language
Simplified Chinese | Traditional Chinese | English
{$Think.lang.welcome}






Done!

If you want to switch the background language, add L before each sentence, such as:




Copy code
The code is as follows:

public function index(){

print L('add_user_error'); /add_user_error is just a language variable. The specific language must be written in the language package

$this->display();

}

I think cakephp does this better. There is no need to give a variable to every sentence.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/736806.htmlTechArticle1. Add the following configuration in config.php of Home (the project name you chose). Copy the code as follows: ?php return array( //'Configuration item'='Configuration value' 'LANG_SWITCH_ON' = true, //Enable language pack function...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Solution for Win11 unable to install Chinese language pack Solution for Win11 unable to install Chinese language pack Mar 09, 2024 am 09:15 AM

Win11 is the latest operating system launched by Microsoft. Compared with previous versions, Win11 has greatly improved the interface design and user experience. However, some users reported that they encountered the problem of being unable to install the Chinese language pack after installing Win11, which caused trouble for them to use Chinese in the system. This article will provide some solutions to the problem that Win11 cannot install the Chinese language pack to help users use Chinese smoothly. First, we need to understand why the Chinese language pack cannot be installed. Generally speaking, Win11

Strategies to solve Win11's inability to install the Chinese language pack Strategies to solve Win11's inability to install the Chinese language pack Mar 08, 2024 am 11:51 AM

Strategies to deal with Win11’s inability to install the Chinese language pack. With the launch of Windows 11, many users can’t wait to upgrade to this new operating system. However, some users have encountered difficulties when trying to install the Chinese language pack, preventing them from using the Chinese interface properly. In this article, we will discuss the problem that Win11 cannot install the Chinese language pack and propose some countermeasures. First, let’s explore why there are problems installing Chinese language packs on Win11. This may be due to the system's

How to run thinkphp project How to run thinkphp project Apr 09, 2024 pm 05:33 PM

To run the ThinkPHP project, you need to: install Composer; use Composer to create the project; enter the project directory and execute php bin/console serve; visit http://localhost:8000 to view the welcome page.

There are several versions of thinkphp There are several versions of thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP has multiple versions designed for different PHP versions. Major versions include 3.2, 5.0, 5.1, and 6.0, while minor versions are used to fix bugs and provide new features. The latest stable version is ThinkPHP 6.0.16. When choosing a version, consider the PHP version, feature requirements, and community support. It is recommended to use the latest stable version for best performance and support.

How to delete installed language pack in win10 system How to delete installed language pack in win10 system Jan 06, 2024 pm 10:37 PM

When we use the win10 operating system, in some cases we may need to delete the language pack in the system. At this time, just find the language option first, then choose to add a language pack. During this process, uncheck the language pack to be deleted and then delete it. How to delete the installed language pack in win10 system: 1. Use win+i to open settings and find the time and language options. 2. Select the "Language" option in the time and language options. 3. Select "Add Language" and go to the next step. 4. Uncheck the language pack when adding a language. After the addition is completed, you can download the language pack and voice pack separately;

How to run thinkphp How to run thinkphp Apr 09, 2024 pm 05:39 PM

Steps to run ThinkPHP Framework locally: Download and unzip ThinkPHP Framework to a local directory. Create a virtual host (optional) pointing to the ThinkPHP root directory. Configure database connection parameters. Start the web server. Initialize the ThinkPHP application. Access the ThinkPHP application URL and run it.

Which one is better, laravel or thinkphp? Which one is better, laravel or thinkphp? Apr 09, 2024 pm 03:18 PM

Performance comparison of Laravel and ThinkPHP frameworks: ThinkPHP generally performs better than Laravel, focusing on optimization and caching. Laravel performs well, but for complex applications, ThinkPHP may be a better fit.

Where is the win7 language pack stored? Where is the win7 language pack stored? Jan 16, 2024 pm 03:06 PM

If our computer is installed with the win7 operating system and we want to change our language pack or make relevant modifications to it, we first need to find the location of the folder of the computer language bar. But many people still don’t know where the language bar folder is. As far as the editor knows, we can make relevant modifications in the fonts folder of the system. Let’s take a look at how the editor did it for detailed steps~Which folder is the win7 language pack in? 1. Open the start menu, find the control panel, and click to enter. 2. In the jumped control panel interface, find the clock, language and regional options and click to enter. 3. In the jump interface, click Install or Uninstall Display Language Options. 4. In the jump interface, click Install to display the language selection

See all articles