多语言切换

 config/app.php   中 locale 中默认为‘en’  

'locale' => 'zh_CN', 

建立LanguageController

namespace App\Http\Controllers;

class LanguageController extends Controller
{
    public function setlocale()
    {
        $lang = session('language');
        if ($lang == 'zh_CN') {
            session(['language' => 'en']);
        } else {
            session(['language' => 'zh_CN']);
        }
        return view('lang');
    }
}

添加路由

 Route::get('lang', 'LanguageController@setlocale')->name('lang'); 

建立Language中间件

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;

class Language
{
    public function handle($request, Closure $next)
    {
        if (session()->has('language')) {
            App::setLocale(session('language'));
        } else {
            session(['language' => App::getLocale()]);
        }
        return $next($request);
    }
}

将Language中间件添加到中间件组中

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $middleware = [
            ....
    ];

    protected $middlewareGroups = [
        'web' => [
            ...
            \App\Http\Middleware\Language::class
        ],

        'api' => [
           ...
        ],
    ];

    protected $routeMiddleware = [
       ....
    ];
}

这样访问任何路由都会执行Language中间件中handle()的内容

resources/lang目录下比照en文件夹建立对应的语言包,blade页面访问使用  {{__(‘en文件夹下文件名.key名称’)}}

 

原文地址:http://www.cnblogs.com/caroline2016/p/16905647.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性