ThinkPHP 5 框架实现多语言 实例讲解

ThinkPHP 5 框架实现多语言

今天给大家分享一篇tp5框架多语言的实例

第一步: 您需要在配置文件中开启网站多语言, 并添加语言允许列表:

    // 默认语言
    'default_lang'           => 'zh-cn',
    // 语言允许列表
    'lang_list' => ['zh-cn','en-us'],

第二步: 添加 zh-cn.php 与 en-us.php 这两个语言包, 它们定义在application下lang目录中:

语言包路径

这两个语言包的具体内容如下:
1. zh-cn.php
<?php

return [
    'lang' => '中文'
];
2. en-us.php
<?php

return [
    'lang' => 'English'

第三步: 在模板文件中定义内容:

<p>您当前的语言为: {:lang('lang')}</p>

已经大功告成啦! 我们打开首页去访问看看

在这里插入图片描述

我们可以发现访问首页返回的是中文, 因为在config.php中, 默认的语言是zh-cn

接下来又出现了一个问题, 我需要怎么切换语言呢? 别急, 看代码

首先, 我们在首页写一个a链接, 做语言切换, 然后链接到我们的Index控制器replaceLang方法中.

<a href="/replaceLang">切换语言</a>

路由文件:

// 切换语言
Route::get('/replaceLang$', 'index/Index/replaceLang');

接下来就是最后一步, 也就是控制器中的代码

/**
     * 语言切换
     */
    public function replaceLang()
    {
        $lang = \think\Lang::detect();
        switch ($lang) {
            case 'zh-cn':
                cookie('think_var', 'en-us');
                return $this->success('切换英文成功!');
                break;
            case 'en-us':
                cookie('think_var', 'zh-cn');
                return $this->success('切换中文成功!');
                break;
            //其它语言
        }
    }

ps: \think\Lang::detect(); 此方法用于获取当前语言.

大家都学会了吗? 是不是没有想象中的这么难. 本文自己原创内容, 转载请注明来处!

猜你喜欢

转载自blog.csdn.net/weixin_43843876/article/details/85000376