Laravel 5.8 全局设置区域设置

2023-11-22

我有一条路线:

    Route::get('/setlocale/{locale}', function($locale) {
            App::setLocale($locale);

            return back();
    })->name('setlocale');

当我去:example.com/setlocale/ro我返回页面。但语言并没有改变。为什么?我总是得到语言en。我检查语言:

    app()->getLocale();

但我需要在全球范围内设置应用程序语言。


试试这个方法

1. 当用户选择一种语言时,我们将所选的语言环境(语言)放入会话中 [例如 en, fr, hi ]


Route::get('setlocale/{locale}',function($lang){
       \Session::put('locale',$lang);
       return redirect()->back();   
});

2. 我们使用中间件根据我们的会话区域设置(用户选择)翻译页面

<?php

namespace App\Http\Middleware;

use Closure;
use Session;
use App;
use Config;
class LanguageSwitcher
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!Session::has('locale'))
         {
           Session::put('locale', Config::get('app.locale'));
        }
        App::setLocale(Session::get('locale'));
        return $next($request);
    }
}

3.我们把这个中间件放在kernel.php中routeMiddleware(app/Http/kernel.php)

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'language' => \App\Http\Middleware\LanguageSwitcher::class,        
    ];
'language' => \App\Http\Middleware\LanguageSwitcher::class,

4. 为了服务这个中间件,我们需要路由组。所以每个请求都会经过这个中间件

Route::group(['middleware'=>'language'],function ()
{
    //your translation routes
});

中间件中的逻辑

在每个请求的中间件中,我们检查当前会话中是否设置了区域设置。 如果会话没有区域设置,那么对于当前请求,我们将区域设置设置为配置区域设置意味着您的应用程序配置区域设置

'locale' => 'en',  // config/app.php
 Session::put('locale',Config::get('app.locale')); // in middleware code we use Config method to get app configuration locale
App::setLocale(Session::get('locale')); // finally set this to App locale

否则,如果我们在当前会话中有区域设置,那么我们将其设置为应用程序区域设置

App::setLocale(Session::get('locale')); // set this to App locale

完整的文章和源代码 -www.ultimateakash.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5.8 全局设置区域设置 的相关文章

  • 获取今天的科普特日期

    我正在寻找获取今天的科普特日期与任何代码类型类似php or javascript在我的网站标题中显示科普特日期 我需要阿拉伯语或英语版本 我试图找到它 但没有找到类似的英文内容 参考 http www copticchurch net e
  • 如何在 CakePHP 中“验证”人名?

    我有一个 PHP 脚本 应该检查 有效 的人名 但最近破解了带有空格的名称 因此我们向验证器添加了空格 除了这样做之外 有没有办法向 CakePHP 的验证器添加黑名单以阻止所有 无效 字符 而不是允许 有效 字符 注意 我 通常 知道如何
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • php中的$$是什么意思? [复制]

    这个问题在这里已经有答案了 变量后面的两个背对背 是什么意思 像这样 id 我在哪里可以找到更多相关信息 谢谢 In PHP 意味着您将给至少一名维护程序员带来多年的痛苦和折磨 请注意 您最终可能会成为维护程序员 它是一个可变变量 想象一下
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • 无法在jspdf中加载多个图像

    我正在尝试加载动态生成的多个图像 我想将这些图像转换为 PDF 格式 HTML 代码如下
  • 这个巨大的正则表达式是如何工作的?

    我最近在我的一个目录中的一个名为的文件中找到了下面的代码doc php 文件功能或链接到文件管理器 做得非常好 基本上 它列出了当前目录中的所有文件 并且允许您更改目录 它可以访问我的所有文件 添加 重命名 信息 删除 我不记得安装过它 我
  • 自定义帖子类型的 WordPress 自定义字段

    过去有几个人出现过这个问题 但他们的问题的解决方案对我来说不起作用 我已经尝试了很多 在 WordPress 中 我创建了 3 种自定义帖子类型 1 代表 视频 新闻 和 音乐 每个内容都发布到自己的页面 我想添加自定义字段 这样我就可以为
  • Zend Framework 中的动态默认模块

    有谁知道在 Zend Framework 中动态设置默认模块并且不会遇到命名空间问题的方法 例如 我想要做的是有一个允许加载的模块表 其中一个设置为默认模块 例如 我可能有 admin blog calendar 作为可以加载的模块 如果我
  • PHP DOM - 剥离 span 标签,保留其内容

    我希望采用如下标记 span class test Some text that is strong bolded strong and contains a a href link a span 并在 PHP 中找到剥离跨度的最佳方法 剩
  • 切换到 mysqli 是个好主意吗?

    我正在考虑为我的所有 php 项目切换到 mysqli 我的代码编写方式 我运行非常简单的网站并构建了自己的基本框架 我在所有网站上使用该框架 我在修改函数和类时不应该遇到太多问题 然而 我只听说过关于准备好的语句的积极的事情 除了一些关于
  • Laravel/00webhost 错误 404。在此服务器上找不到请求的 URL

    1 将我的文件上传到 000webhost 我将公用文件夹中的所有文件放置到公共 html然后我创建了一个名为laravel我在那里上传了所有其他文件 这是我的目录结构 laravel app 引导程序 config 公共 html 索引
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • php oracle客户端oci8安装出现什么问题

    我尝试了安装 PHP Oracle 客户端的所有过程 1 我安装了客户端版本8和32位 2 我在php ini中取消了oci的注释 3 重新启动Wamp 4 不确定是否真的安装 但我在 php ini 中得到了引用 5 但仍然无法连接 泰汉
  • PHP switch case 在 case 中存在多个值

    我有一个变量保存值 每周 每月 季度 和 年度 还有另一个变量保存值从 1 到 10 switch var2 case 1 var3 Weekly break case 2 var3 Weekly break case 3 var3 Mon
  • PHP 中的encodeURI() ?

    PHP 中是否有一些不编码的encodeURI 函数 我现在用这个 function encodeURI url http php net manual en function rawurlencode php https develope
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子

随机推荐

  • 提取 keras 模型的最后一层作为子模型

    假设我们有一个卷积神经网络 M 我可以使用以下方法从图像中提取特征 extractor Model M inputs M get layer last conv output features extractor predict X 我怎样
  • 使用 net tcp 的 WCF 双工服务:“需要流安全性...”

    我正在编写一项服务 允许用户注册并在事件发生时接收通知 我正在尝试使用 netTcpBinding 来执行此操作 但即使在本地计算机上运行 也会不断出现错误 当我尝试发送通知时 我超时并收到此错误 需要流安全性http www w3 org
  • SCRIPT5022:已达到 10 次 $digest() 迭代。流产!并重定向到index.html

    Problem 我正在尝试在引导模式窗格中加载 Angular JS 应用程序 但它在 Internet Explorer 上显示奇怪的行为 我们已在 IE9 和 8 上对其进行了测试 我们发现出现以下错误 JSON 未定义 对象错误未定义
  • 如何将网络中的图形加载到 PyTorch 几何图形并设置节点特征和标签?

    Goal 我正在尝试导入图表FROMnetworkx 到 PyTorch 几何和设置标签和节点特征 这是Python中的 问题 我该如何做到这一点 从networkx到PyTorch几何的转换 大概通过使用from networkx功能 如
  • 访问类别中的私有变量会导致链接器错误

    编辑 我不会这样做 我现在意识到这有多么危险 但是 这个问题仍然纯粹出于学术目的 我正在尝试在 NSCollectionView 上实现一个类别 该类别将允许我访问私有变量 displayedItems 我需要能够在我的子类中访问它 因此
  • 未捕获的引用错误:$未定义(ajax)

    我在一个简单的 jsp 上遇到此错误 未捕获的引用错误 未定义 我只是试图回忆一下 Eclipse 上另一个项目的服务休息 但它似乎不起作用 代码在这里
  • HttpUrlConnection 带进度条的分段文件上传

    我想通过以下方式检查上传文件的进度HttpUrlConnection 我怎样才能做到这一点 我尝试在写入数据时计算字节OutputStream但这是错误的 因为只有当我打电话时才会真正上传conn getInputStream 所以我需要以
  • 用悬停而不是点击触发 fancybox?

    我试图在鼠标悬停在链接上时触发 fancybox 但没有运气 有什么建议吗 document ready function This is basic uses default settings a inline fancybox hide
  • 使用 alpha 透明度从 0 到 1 绘制透明渐变

    我在 Android 中有一个动态生成的位图 我想从顶部边缘开始羽化 这样边界区域在顶部完全透明 并逐渐在下面稍微变为完全不透明 创建均匀的完全透明的顶部边缘 transparentPaint new Paint Paint ANTI AL
  • 自定义 Bootstrap 4 的网格系统断点

    我有一个应用程序 其中设计需要分别从台式机到平板电脑或 xl 到 lg 的 1280 个断点 然而 Bootstrap 本身在 1200 处有 xl 断点 我需要全局更改 xl 断点以进行引导 我必须从源文件重新编译 Bootstrap 4
  • 如何从 git diff --no-index 中排除文件和目录

    如何排除文件和目录git diff no index 例如 我想显示两个目录之间的差异project1 project2而忽略了他们的高层 git目录 project1 git project2 git 和他们所有的 DS Store fi
  • 使用 BoneCP:处理来自池的连接

    我刚刚开始使用 BoneCP 这是我第一次使用连接池 我对应该如何使用它有点困惑 目前我将 BoneCP 对象保存为静态变量 因此我可以在不同的连接之间使用它 当我完成连接后 我将其关闭connection close 我应该这样做 还是不
  • 为什么每个公共类都在单独的文件中?

    我最近开始学习Java 发现很奇怪 每个Java公共类都必须在单独的文件中声明 我是一名 C 程序员 C 不强制执行任何此类限制 Java为什么要这样做呢 有没有什么设计考虑 编辑 基于一些答案 为什么 Java 在 IDE 时代还不取消这
  • urllib2 python(传输编码:分块)

    我使用以下 python 代码来下载 html 页面 response urllib2 urlopen current URL msg response read print msg 对于诸如以下的页面this one 它打开 url 时没
  • 类和数据类型有什么区别

    当我通读 UML 规范时发现 class has a set of attributes operations and data type has a set of attributes operations 1 关于数据类型的属性 操作
  • 如何在触摸屏幕(搜索栏)时隐藏键盘

    当我单击 搜索 或单击 取消 时 键盘会隐藏 但我还希望当我单击屏幕上的某个位置时键盘会隐藏 我找到了几个关于文本字段的教程 但我们正在使用搜索栏 有人可以告诉我该怎么做吗 Thanks Try This 在你的 h 文件中添加 UISea
  • 单击选择框上的触发器在 jQuery 中不起作用

    如何使用触发器打开下拉列表 这是不起作用的代码 select trigger click 请注意 mousedown 和 mouseup 也不起作用 select children option each function if this
  • 禁用 firefox 另存为dialog-selenium

    我正在使用 selenium 进行网页抓取 每当我尝试下载文件时 即使我申请 也会弹出 Firefox 下载 另存为文件的情况profile set preference browser helperApps neverAsk saveTo
  • 如何在Android中启用USB调试?

    如何在 Nexus 7 第一代 中启用 USB 调试 编辑 接受的答案也适用于隐藏开发人员选项的其他 Android 设备 在 设置 的 开发者选项 区域中打开 USB 调试 如果您没有看到 开发人员选项 请进入 设置 中的 关于设备 然后
  • Laravel 5.8 全局设置区域设置

    我有一条路线 Route get setlocale locale function locale App setLocale locale return back gt name setlocale 当我去 example com set