Laravel 多语言项目开发

配置

Laravel 已经内置了对多语言的支持,可以使用 Laravel 的本地化(localization)功能轻松实现多语言。

首先,你需要创建一个语言文件存储你的翻译内容。在 resources/lang 目录下,创建一个你需要的语言文件夹,例如 zh,再创建一个 messages.php 文件:

// resources/lang/zh/messages.phpreturn ['welcome' => '欢迎','logout' => '退出','login' => '登录','register' => '注册'
];

你可以在其他语言创建对应的文件夹和语言文件,例如创建 en 文件夹和 messages.php 文件:

// resources/lang/en/messages.phpreturn ['welcome' => 'Welcome','logout' => 'Logout','login' => 'Login','register' => 'Register'
];

然后,你需要在 config/app.php 文件中配置你需要支持的语言:

// config/app.phpreturn [// ...'locales' => ['zh', 'en'],'fallback_locale' => 'zh',// ...
];

在你的视图文件中,你可以使用 trans 函数获取对应的翻译:

<!-- 使用中文 -->
<h1>{{ trans('messages.welcome') }}</h1><!-- 使用英文 -->
<h1>{{ trans('messages.welcome', [], 'en') }}</h1>

也可以在控制器内使用

$language = [['title' => trans('messages.language.chines'),]
];

语言切换

你可以在 session 中缓存用户选择的语言

public function language(){session::put('locale','zh');
}

然后我们可以在中间件判断用户的语言并设置语言

public function handle(Request $request, Closure $next){#获取语言配置$locale = session('locale', 'zh');#设置语言App::setLocale($locale);return $next($request);
}

在 app/Http/Kernel.php 文件中注册中间件:

// app/Http/Kernel.phpprotected $middlewareGroups = ['web' => [// ...\App\Http\Middleware\SetLocale::class,],// ...
];

这样,你就可以在应用中使用多语言了。如果你需要在控制器中切换语言,可以使用 App::setLocale 函数:

// 切换到英文
App::setLocale('en');

视图中判断

如果你有需求在视图中按照语言显示或隐藏元素可以这样做

@if (App::getLocale() == 'zh')<div>中文的时候显示</div>
@endif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis学习周报总结

学习Mybatis的周报 在过去的一周里&#xff0c;我们在飞思学习和掌握Mybatis这一优秀的持久层框架。通过谭老师的两周课程&#xff0c;我也有很大的收获。以下是本周的学习总结和收获&#xff1a; 一&#xff1a;Mybatis概述&#xff1a; MyBatis&#xff0c;全称为My Batis …

【Flutter 面试题】 Dart 当中的 .. 表示什么?

【Flutter 面试题】 Dart 当中的 … 表示什么? 文章目录 写在前面口述回答补充说明写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。 👏🏻 正在学 Flutter 的同学,你好! 😊 Flutter…

mysql锁表的原因及mysql行锁

mysql锁表的原因 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中&#xff0c;除传统的计算资源&#xff08;如CPU、RAM、I/O等&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。 如何保证数据并发访问的一致性、有效性是所有数据库…

FA-128晶振用于医疗设备

血糖仪已成为家庭常用的医疗设备,日本爱普生晶振公司生产的2016封装,32MHz贴片晶振可完美应用于医疗器械血糖仪,此款晶振订货型号为X1E000251005900晶振,型号为FA-128,负载电容分8PF,精度10PPM,其尺寸参数为2.0x1.6x0.5mm,符合ROHS标准且无铅,具有封装尺寸超小,高精度,频率范围…

C++ | Leetcode C++题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; class Solution { public:bool canJump(vector<int>& nums) {int n nums.size();int rightmost 0;for (int i 0; i < n; i) {if (i < rightmost) {rightmost max(rightmost, i nums[i]);if (rightmost > n - 1) {r…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(一)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 1 - 2节&#xff09; P1《课程介绍》 开场白&#xff0c;HarmonyOS 的一个简介&#xff0c;话不多说&#xff0c;直接看图吧&…

第十五届蓝桥杯省赛第二场C/C++B组C题【传送阵】题解(AC)

解题思路 由于 a a a 数组是一个 1 1 1 到 n n n 的一个排列&#xff0c;那么形成的一定是如下形式&#xff1a; 一定会构成几个点的循环&#xff0c;或者是几个单独的点。 从任意点开始&#xff0c;如果能进入一个循环&#xff0c;一定可以将整个循环的宝藏都拿走&#x…

QSqlTableModel的canFetchMore、fetchMore效率太低,需替换

问题描述&#xff1a;SQLITE数据库&#xff0c;使用QSqlTableModel获取行数&#xff0c;调用函数rowCount()&#xff0c;仅能获取256行&#xff0c;故使用下面代码获取实际行数&#xff1a; while(m_model->canFetchMore()){m_model->fetchMore();} 但实际使用发现效率…

[vant] 图片预览关闭按钮显示不正常

如果这里显示不正常, 那就应该是按照文档引入了 显示有问题, 直接不引入, 声明一下就行

每日论文推荐:我们距离GPT-4V有多远,最接近GPT-4V的开源多模态大模型

&#x1f4cc; 元数据概览&#xff1a; 标题&#xff1a;How Far Are We to GPT-4V? Closing the Gap to Commercial Multimodal Models with Open-Source Suites作者&#xff1a;Zhe Chen, Weiyun Wang, Hao Tian, Shenglong Ye, Zhangwei Gao, Erfei Cui, Wenwen Tong, Kon…

富格林:可信操作提升做单盈利

富格林指出&#xff0c;黄金市场有涨有跌&#xff0c;有赚有赔&#xff0c;投资黄金并非有机会天天盈利&#xff0c;能够盈利出金最重要的原因还是投资者有正规精妙的技术。在黄金交易中&#xff0c;投资者一定要掌握可信的交易方法&#xff0c;提前布局好策略&#xff0c;这样…

java输入输出流

文件的输入输出流&#xff1a; import java.io.*;public class Stream {//文件输出流public static void SerializableOblect(String path, Object o) throws IOException {FileOutputStream fos null;ObjectOutputStream oos null;fos new FileOutputStream(path);oos ne…

mysql统计数据库或数据表记录总数

目录 1.Information_schema表简介 2.统计数据库或数据表记录总数方法 1.Information_schema表简介 Information_schema数据库是MySQL自带的&#xff0c;它提供了访问数据库元数据的方式。 把Information_schema 看作是一个数据库&#xff0c;确切说是信息数据库。其中保存着…

企业计算机服务器中了helper勒索病毒怎么办?Helper勒索病毒解密处理流程

网络技术的不断发展与成熟&#xff0c;为企业的生产运营提供了极大便利&#xff0c;让企业的发展速度大大提升&#xff0c;但网络毕竟是虚拟服务系统&#xff0c;虽然可以为企业提供便利&#xff0c;但也会给企业数据安全带来严重威胁。近日&#xff0c;云天数据恢复中心接到山…

【Qt踩坑】Qt项目嵌入Web踩坑记录--加载QtWebEngine模块的程序会出现崩溃

1. Ubuntu20.04环境中设置自启动应用程序后&#xff0c;加载QtWebEngine模块的程序会出现崩溃 解决方法一&#xff1a; 使用root用户会报错1.自启动脚本使用 sudo -S /opt/run.sh 方式启动脚本会出现问题2.手动启动或者修改自启动脚本启动方式 run.sh 就能正常运行解决方法二…

subject may not be empty | type may not be empty报错解决

目录 1、今天在提交前端代码时突然发现这个包错&#xff0c;尝试了下面方法&#xff0c;已解决。 2、解决方式一&#xff1a;修改提交信息&#xff0c; 使其符合规范 3、解决方式二&#xff1a;直接卸载工具 1、今天在提交前端代码时突然发现这个包错&#xff0c;尝试了下面方…

c++中的链表list的模拟实现

拖更了半个月&#xff0c;我终于来填c的坑啦。上次我们说的vetcor不知道小伙伴还记得多少呢&#xff1f;今天我们要讲list的模拟实现。 目录 架构结点list表的结构 构造函数尾插push_back()尾删pop_back()计算个数&#xff1a;size()判断空empty()※迭代器问题普通迭代器迭代器…

CSS高级选择器

一、属性选择器 以value开头的att属性的E元素&#xff1a;E[att^"value"]{ ;} a[href^http]{background-color"red";} css a[href^http]{background-color"red"; } html <!DOCTYPE html> <html lang"en"> <head&…

数据线出口所需要的认证。数据线、电源适配器出口需要做什么认证?

数据线出口所需要的认证。数据线、电源适配器出口需要做什么认证&#xff1f; 数据线出口所需要的认证。数据线、电源适配器出口需要做什么认证&#xff1f; 欧洲:CE认证&#xff08;CE-EMC检测电压&#xff09;、ROHS认证&#xff08;检测有害物质&#xff09; 美国&#xff…

你的手机月租可能比我的高,不信咱们比一比!

​  你办理的套餐可能月租都比我的高&#xff0c;不信咱们比一比&#xff01; 为什么这么说呢&#xff0c;因为很多朋友看到月租低的流量卡&#xff0c;总是担心里面会不会有套路&#xff0c;不敢办理&#xff0c;甚至看到这种信息时也会一滑而过。 在这里&#xff0c;我要说…