jorisvanw / laravel-larex
使用单个CSV文件将您的Laravel应用程序进行翻译!
Requires
- php: ^8.0
- ext-dom: *
- ext-json: *
- illuminate/support: ^8.0|^9.0
- loilo/fuse: ^6.4.6
- spatie/simple-excel: ^1.13.1
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0
- pestphp/pest: ^1.21
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/resources/lang/localization.csv 文件并按需编辑它。
-
最后,您可以使用
php artisan larex:export
命令将CSV文件中的条目翻译到laravel PHP文件。
✨ 小贴士
- 您可以使用
php artisan larex:import
命令导入现有的laravel php文件。 - 您可以使用
php artisan larex:init --base
初始化CSV文件,包含默认的Laravel条目。 - 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:init
命令 -
编辑 project-root/resources/lang/localization.csv 文件
-
运行
php artisan larex:export
命令 -
您将获得以下文件
//project-root/resources/lang/en/app.php <?php return [ 'hello' => 'Hello', 'list' => [ 'developers' => 'Developers', 'teachers' => 'Teachers', ] ];
//project-root/resources/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 配置中添加您的导入器
🔍 Linters
Larex 通过使用 php artisan larex:lint
命令提供了一个代码检查系统,以验证您的 CSV 文件。
可用的 linters
您可以通过在 larex 配置中注释/取消注释来启用/禁用任何 linter。
如何创建 linter
- 创建一个实现
Lukasss93\Larex\Contracts\Linter
接口 的类 - 在 larex 配置中添加您的 linter
🧩 插件
- Crowdin 插件
Crowdin 的 Laravel Larex 插件,用于从/向 Crowdin 导入/导出本地化字符串
⚗️ 测试
composer test
🔰 版本支持
📃 变更日志
有关最近更改的更多信息,请参阅 CHANGELOG.md。
🏅 致谢
📖 许可证
有关更多信息,请参阅 LICENSE.md 文件。