为 Lunr.js 提供多语言分词、词干提取和停用词支持,可在浏览器或 Node.js 中做全文搜索。
mcamara/laravel-localization
Laravel 多语言包,提供带语言前缀的路由、浏览器语言识别、可翻译路由及语言切换辅助方法。
- Star
- 3,558
- Fork
- 505
- 未关闭 Issue
- 11
- 最近提交
- 3个月前
这是什么?
Laravel Localization 为 Laravel 应用增加多语言 URL 处理能力。路由只需在语言前缀分组中定义一次,包会根据 URL 中的语言段设置应用语言,因此 /en/about 与 /es/acerca 可指向同一个控制器,App::getLocale() 也随之变化。
包支持根据浏览器的 Accept-Language 请求头识别访问者语言,将选定的语言保存到 session 或 cookie 中,并把请求重定向到带语言的 URL。此外还可以隐藏默认语言前缀、通过语言文件翻译路由片段,并提供 localizeUrl、getSupportedLocales、getCurrentLocaleDirection 等辅助方法,便于构建语言切换器和本地化链接。
由于路由是按请求动态生成的,默认不兼容 php artisan route:cache,需要通过 LoadsTranslatedCachedRoutes trait 与 route:trans:cache 命令来缓存路由。对于需要原生路由缓存的新项目,项目文档推荐改用 niels-numbers/laravel-localizer。
核心功能
- 01带语言前缀的路由分组,所有语言只需定义一次路由。
- 02通过 Accept-Language 请求头识别浏览器语言。
- 03基于 session 和 cookie 的语言重定向中间件。
- 04可在 lang/**/routes.php 中翻译路由片段。
- 05提供本地化 URL、语言名称、本地名称、文字方向和书写系统等辅助方法。
- 06支持隐藏 URL 中的默认语言,并可自定义语言 URL 映射。
适用场景
- 为 Laravel 网站搭建多语言版本,并使用不同的 URL 语言前缀。
- 实现语言切换器,让每个页面链接到其他语言的对应地址。
- 为多语言站点提供翻译后的路由片段,如 /en/article/... 与 /es/articulo/...,以利于 SEO。
快速上手
- 1
使用 Composer 安装该包
composer require mcamara/laravel-localization - 2
发布配置文件
php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" - 3
在 routes/web.php 中将本地化路由放入 LaravelLocalization::setLocale() 路由组
使用前须知
- 路由是按请求动态生成的,因此开箱即用不支持 php artisan route:cache。
- Laravel 和 PHP 版本支持取决于兼容性表中对应的包版本。
标签
常见问题
- laravel-localization 是什么?
- Laravel 多语言包,提供带语言前缀的路由、浏览器语言识别、可翻译路由及语言切换辅助方法。 Laravel Localization 为 Laravel 应用增加多语言 URL 处理能力。路由只需在语言前缀分组中定义一次,包会根据 URL 中的语言段设置应用语言,因此 /en/about 与 /es/acerca 可指向同一个控制器,App::getLocale() 也随之变化。
- laravel-localization 可以免费使用吗?用的什么许可证?
- laravel-localization 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- laravel-localization 还在维护吗?
- 半年内有更新。laravel-localization 最近一次提交是在 2026年8月24日。
- laravel-localization 适合用来做什么?
- 为 Laravel 网站搭建多语言版本,并使用不同的 URL 语言前缀。 实现语言切换器,让每个页面链接到其他语言的对应地址。 为多语言站点提供翻译后的路由片段,如 /en/article/... 与 /es/articulo/...,以利于 SEO。
- laravel-localization 怎么安装和运行?
- 使用 Composer 安装该包: composer require mcamara/laravel-localization 发布配置文件: php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" 在 routes/web.php 中将本地化路由放入 LaravelLocalization::setLocale() 路由组
- 在哪里获取 laravel-localization?
- 源代码和安装说明在 GitHub 上:https://github.com/mcamara/laravel-localization
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
社区维护的 WordPress 多语言插件,将多种语言内容存放在同一篇文章中。
基于 PhpSpreadsheet 的 Laravel 封装,用于将数据导出为 Excel/CSV 或把表格导入 Eloquent 模型。
基于 Telegram Bot API 的 PHP 开发工具包,内置 Laravel 支持,便于构建 Telegram 机器人。
为 Laravel 应用添加实时聊天功能的扩展包,内置私聊、群聊和messenger界面。
为 Laravel Scout 提供 TNTSearch 驱动,无需外部搜索服务即可为 Eloquent 模型添加全文搜索。