Laravel怎样实现多语言本地化_Laravel实现多语言本地化方法【国际化】

大磊吖_9165

大磊吖_9165

2026-04-11

315人浏览

原创

laravel多语言本地化需配置locale与fallback_locale、组织lang目录下按语言分组的php/json翻译文件、使用__()/@lang()等函数调用、通过中间件动态设语言、并支持带locale前缀的路由。

laravel怎样实现多语言本地化_laravel实现多语言本地化方法【国际化】

如果您在Laravel项目中需要为不同地区用户提供对应语言的界面内容,则需通过框架内置的本地化机制组织语言资源、动态设置语言上下文,并在视图与逻辑中统一调用翻译键。以下是实现多语言本地化的多种方法:

一、配置默认语言与回退语言

应用的语言行为由config/app.php中的locale和fallback_locale决定。前者指定当前生效的主语言,后者在某条翻译缺失时提供兜底保障,确保用户始终看到可用文本而非空值或原始键名。

1、打开config/app.php文件,定位到'locale'和'fallback_locale'配置项

2、将'locale' => 'en'修改为所需默认语言代码,例如'locale' => 'zh'

3、设置'fallback_locale' => 'en',保证中文缺失时自动降级至英文

4、同步更新.env文件中的APP_LOCALE变量,如APP_LOCALE=zh,使部署环境保持一致

二、组织语言文件结构

所有翻译内容必须按语言代码存放在resources/lang目录下的对应子目录中,支持PHP数组与JSON两种格式。PHP文件适合模块化管理(如auth.php、validation.php),JSON文件便于前后端共享且利于CI/CD流程处理。

1、在resources/lang目录下创建语言子目录,例如zh、en、ja

2、在每个子目录中新建messages.php文件,返回关联数组:return ['welcome' => '欢迎'];

3、也可使用JSON格式,在resources/lang/en.json中写入{"welcome": "Welcome", "hello": "Hello, :name"}

4、按功能拆分文件,如创建resources/lang/zh/auth.php用于认证相关文案,避免单文件膨胀

三、使用翻译辅助函数输出内容

Laravel提供__(), trans(), @lang等开箱即用的翻译调用方式,它们会自动读取当前App::getLocale()所设语言环境,并从对应目录加载匹配键值。占位符支持变量注入,复数规则可通过trans_choice()处理。

1、在控制器中使用__('messages.welcome')获取翻译字符串并传入视图

2、在Blade模板中使用@lang('messages.welcome')或{{ __('messages.hello', ['name' => '李四']) }}

laravel-specialist
laravel-specialist

精通 Laravel 10+,遵循现代 PHP 实践的 Laravel 专家。擅长优雅语法、Eloquent ORM、队列系统及企业级特性...

下载

3、对带复数的语句,在语言文件中定义'comment' => '没有评论|有一条评论|[2,*]有 :count 条评论'

4、在代码中调用trans_choice('messages.comment', $count, ['count' => $count])实现智能复数选择

四、通过中间件动态设置请求语言

为实现用户级语言偏好持久化,需在每次HTTP请求生命周期早期识别并设定语言环境。中间件是最佳切入点,可统一检查Session、Cookie、URL参数或Accept-Language头,避免各处重复逻辑。

1、执行php artisan make:middleware SetLocale生成中间件类

2、在handle方法中依次检查:$locale = $request->session()->get('locale') ?: $request->cookie('locale') ?: substr($request->server('HTTP_ACCEPT_LANGUAGE', 'en'), 0, 2)

3、验证$locale是否在白名单内(如in_array($locale, ['zh', 'en', 'ja']))

4、确认后调用\Illuminate\Support\Facades\App::setLocale($locale)

5、将该中间件注册至app/Http/Kernel.php的$middlewareGroups['web']中

五、实现带语言前缀的多语言路由

URL路径显式携带语言标识(如/zh/login)有助于SEO、缓存策略制定及用户直观识别当前语言版本。配合路由参数约束与中间件,可将语言切换无缝集成至导航体系中。

1、定义带locale参数的路由组:Route::prefix('{locale}')->where('locale', 'zh|en|ja')->middleware('set.locale')

2、在该组内注册所有Web路由,例如Route::get('/login', [LoginController::class, 'showLoginForm'])

3、在布局模板中为语言切换链接生成对应前缀URL:url($locale . '/login')

4、添加跳转路由供前端调用:Route::get('/switch-lang/{locale}', function ($locale) {session(['locale' => $locale]); return redirect()->back();})

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

laravel 多语言 本地化

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2024.04.09

857

10

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

2024.04.09

835

9

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2024.04.09

2488

10

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.10

4261

7

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

2025.08.05

6130

22

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

2025.08.05

4056

13

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

2025.08.05

7629

7

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

2026.03.04

1476

29

Laravel 框架安装指南
Laravel 框架安装指南

本指南详解 Laravel 框架安装全流程,涵盖 PHP 8.1+ 环境配置、Composer 依赖管理工具安装及国内镜像源优化。重点演示使用 composer create-project 命令创建 Laravel 10/11 项目,解决常见安装错误与依赖冲突。从环境搭建到项目初始化,助您快速完成 Laravel 开发环境部署,为后续 Web 应用开发奠定基础。适合 PHP 初学者与框架迁移开发者参考。

2026.04.09

215

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 210人学习

Composer手册
Composer手册

共0课时 | 0人学习