首页 > 其他分享 >laravel构建多语言系统

laravel构建多语言系统

时间:2022-11-19 11:00:28浏览次数:40  
标签:laravel lang Http 语言 language App session 构建 Language

多语言切换

 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名称')}}

 

标签:laravel,lang,Http,语言,language,App,session,构建,Language
From: https://www.cnblogs.com/caroline2016/p/16905647.html

相关文章

  • laravel 查询构建器
    $query=DB::connection($conn)->table($table)->select('*',DB::raw("CONCAT(date,'',time)ASdttm"))->where('P',$p)->whereIn('status',$status)->whereRa......
  • 使用马尔可夫链构建文本生成器
    本文中将介绍一个流行的机器学习项目——文本生成器,你将了解如何构建文本生成器,并了解如何实现马尔可夫链以实现更快的预测模型。文本生成器简介文本生成在各个行业都很......
  • C语言随笔4
    结构体(自己创造出来的一种类型)structBook                                   struct结构体......
  • laravel导出excel文件
    导出多个sheet//ExportMulSheets.phpnamespaceApp\Exports;useMaatwebsite\Excel\Concerns\Exportable;useMaatwebsite\Excel\Concerns\WithMultipleSheets;cl......
  • 计算机等级考试二级C语言程序设计专项训练题——程序设计题(六)
    41、编写函数void fun(inta[],intb[],int*n),其功能是:找出数组a保存的100个四位数中的全部素数,将这些素数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行......
  • 云原生之旅 - 12)使用 Kaniko 在 Kubernetes上构建 Docker 容器镜像
    前言前一篇文章【云原生之旅-11)基于Kubernetes动态伸缩JenkinsBuildAgents】有讲到在 KubernetesPod(Jenkinsbuildagent)里面构建docker容器镜像,当时我们......
  • go 编译dll 易语言调用
    //编译命令gobuild-ldflags"-s-w"-buildmode=c-shared-omain.dllmain.go导出函数编写packagemain/*#include<stdlib.h>*/import"C"import( "un......
  • 计算机等级考试二级C语言程序设计专项训练题——程序设计题(五)
    36、编写函数void fun(int*a,int*n),其功能是:求出100~999之间所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293),并将其放在a所指的数组中,通过n返回这......
  • C语言字符串漫谈
    在C语言中写字符串,我们一般这样定义变量constchar*str="hello";乍看这样的赋值方式有点费解,前面是一个char*指针,str指向一个char字符的指针,而后面是一个字符串,怎么都......
  • Go 使用 Cobra 构建 CLI 程序
    使用cobra-cli搭建手脚架#安装cobra-cligoinstallgithub.com/spf13/cobra-cli@latest#创建一个应用mkdirmyapp&&cdmyapp#初始化gomodgomodinitmyap......