lukasss93 / laravel-larex
使用单个CSV文件将您的Laravel应用程序翻译!
Requires
- php: ^8.0
- ext-dom: *
- ext-json: *
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- loilo/fuse: ^6.4.6
- spatie/laravel-collection-macros: ^7.12
- spatie/simple-excel: ^3.0.1
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- pestphp/pest: ^v1.0|^v2.0
- psalm/plugin-laravel: ^2.0
- vimeo/psalm: ^5.0
README
Laravel Larex
Laravel Larex 允许您使用单个CSV文件翻译整个Laravel应用程序。
您可以从lang文件夹中导入翻译条目到结构化的CSV中,编辑翻译并将它们导回到Laravel PHP文件。
Laravel Larex 还支持排序条目和查找尚未本地化的字符串的功能。
请参阅 插件 部分,了解其他功能。
🚀 安装
您可以使用composer安装此包。
composer require lukasss93/laravel-larex --dev
然后将服务提供者添加到 config/app.php
。
如果启用了包自动发现,此步骤 可以跳过。
'providers' => [ Lukasss93\Larex\LarexServiceProvider::class ];
⚙ 发布配置文件
发布配置文件是可选的
php artisan vendor:publish --provider="Lukasss93\Larex\LarexServiceProvider" --tag="larex-config"
👓 使用方法
-
首先,您必须使用
php artisan larex:init
创建初始CSV文件。
或者您可以使用php artisan larex:import
从lang文件夹导入条目。
CSV文件有以下列- 组(基本上是文件名)
- 键(数组键)
- en(语言代码)
- 其他语言代码...
-
打开 project-root/lang/localization.csv 文件并按需编辑。
-
最后,您可以使用
php artisan larex:export
将CSV文件中的条目翻译到Laravel PHP文件。
✨ 小贴士
- 您可以使用
php artisan larex:import
导入现有的Laravel PHP文件。 - 您可以使用
php artisan larex:init --base
使用默认的Laravel条目初始化CSV文件。 - CSV文件中的 键 列支持 点表示法 用于嵌套数组。
- 您可以使用
php artisan larex:export --watch
监视您的CSV文件。 - 您可以使用
php artisan larex:sort
根据组名和键对CSV文件进行排序。 - 使用
php artisan larex:export
命令时要小心!它将覆盖CSV中包含的组名命名的所有文件。 - 使用 点表示法时要小心!只有 最后 的条目会覆盖值。
- 您也可以使用
php artisan larex:insert
通过CLI添加新条目! - 您可以使用
php artisan larex:import --include=en,it
仅导入 "en" 和 "it" 条目。 - 您可以使用
php artisan larex:import --exclude=it
导入除 "it" 条目之外的所有条目。 - 您可以使用
php artisan larex:export --include=en,it
仅导出 "en" 和 "it" 列。 - 您可以使用
php artisan larex:export --exclude=it
导出除 "it" 列之外的所有列。 - 您可以使用
php artisan larex:localize
查找未本地化的字符串(使用--import
选项将字符串添加到您的CSV中)。 - 您可以使用
php artisan larex:find
在您的CSV文件中搜索现有的组或键。 - 您可以使用
php artisan larex:remove
从您的CSV文件中删除现有的字符串。 - 您可以使用
php artisan larex:lang:add
将新的语言列添加到您的CSV文件中。 - 您可以使用
php artisan larex:lang:remove
从您的CSV文件中删除语言列。 - 您可以使用
php artisan larex:lang:order
命令来重新排序您的 CSV 文件中的语言列。
📝 示例
-
运行
php artisan larex:init
命令 -
编辑 project-root/lang/localization.csv 文件
-
运行
php artisan larex:export
命令 -
您将获得以下文件
//project-root/lang/en/app.php <?php return [ 'hello' => 'Hello', 'list' => [ 'developers' => 'Developers', 'teachers' => 'Teachers', ] ];
//project-root/lang/it/app.php <?php return [ 'hello' => 'Ciao', 'list' => [ 'developers' => 'Sviluppatori', 'teachers' => 'Insegnanti', ] ];
⏫ 导出器
larex:export <exporter>
命令根据所选导出器将 CSV 字符串导出到特定位置。
如何创建导出器
- 创建一个实现
Lukasss93\Larex\Contracts\Exporter
接口的类 - 将您的导出器添加到 larex 配置中
⏬ 导入器
larex:import <importer>
命令将所选导入器的字符串导入到 CSV 中。
如何创建导入器
- 创建一个实现
Lukasss93\Larex\Contracts\Importer
接口的类 - 将您的导入器添加到 larex 配置中
🔍 检查器
Larex 通过 php artisan larex:lint
命令提供了一个检查系统,用于验证您的 CSV 文件。
可用的检查器
您可以通过在 larex 配置中注释/取消注释来启用/禁用任何检查器。
如何创建检查器
- 创建一个实现
Lukasss93\Larex\Contracts\Linter
接口的类 - 将您的检查器添加到 larex 配置中
🧩 插件
- Crowdin 插件
Crowdin 的 Laravel Larex 插件,用于从/到 Crowdin 导入/导出本地化字符串。
⚗️ 测试
composer test
🔰 版本支持
📃 变更日志
有关最近更改的更多信息,请参阅 CHANGELOG.md。
🏅 致谢
📖 许可证
有关更多信息,请参阅 LICENSE.md 文件。