stevenbraham/laravel-blade-translations-extractor
Composer 安装命令:
composer require stevenbraham/laravel-blade-translations-extractor
包简介
Laravel package for auto extracting strings from __ and @lang tags in Blade to JSON.
README 文档
README
A Laravel package that automatically scans Blade template files and PHP files for translatable strings and exports them to JSON translation files.
I could not find a suitable existing Laravel i18n package that could both scan Blade template files and export them to JSON with a null key. All existing solutions only supported __, did not capture all strings correctly, or could not add new strings as null to the JSON files etc.
So I made this package with the help of Cursor and ChatGPT.
With a JSON file containing all strings as null values, you can easily translate them using a tool like POEdit.
Overview
This package helps you maintain your Laravel translation files by automatically extracting translatable strings from your Blade templates and PHP files. It scans for strings used with the __() helper function and @lang() Blade directive, then merges them into JSON translation files.
Features
- 🔍 Automatically scans Blade templates (
.blade.php) and PHP files (.php) - 📝 Extracts translatable strings from
__()and@lang()calls - 🔄 Merges new strings into existing translation files without overwriting existing translations
- 🎯 Configurable regex pattern for custom translation function detection
- 📦 Zero configuration required - works out of the box
Installation
Install the package via Composer:
composer require stevenbraham/laravel-blade-translations-extractor
The package will automatically register its service provider if you're using Laravel's package auto-discovery.
Usage
Basic Usage
Run the extraction command with your desired locale:
php artisan extract:translations en
This will:
- Scan all
.blade.phpfiles inresources/views/ - Scan all
.phpfiles inapp/ - Extract all translatable strings found in
__()and@lang()calls - Merge new strings (with
nullvalues) intolang/en.json - Preserve existing translations in the JSON file
Example
If you have a Blade template like this:
<h1>{{ __('Welcome to our website') }}</h1> <p>@lang('Please sign in to continue')</p>
Running php artisan extract:translations en will create or update lang/en.json:
{
"Please sign in to continue": null,
"Welcome to our website": null
}
You can then fill in the translations manually or use a translation management tool.
Configuration
Publishing the Config File
To customize the extraction pattern, publish the configuration file:
php artisan vendor:publish --tag=extract-translations-config
This will create config/laravel-blade-translations-extractor.php.
Customizing the Pattern
The default pattern matches __() and @lang() helper functions. You can customize it in the config file:
return [ 'pattern' => '/(?:__|@lang)\(\s*(["\'])(.*?)\1\s*[\),]/m', ];
stevenbraham/laravel-blade-translations-extractor 适用场景与选型建议
stevenbraham/laravel-blade-translations-extractor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 148 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 stevenbraham/laravel-blade-translations-extractor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 stevenbraham/laravel-blade-translations-extractor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 148
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-15