bambamboole / laravel-lokalise
一个用于轻松同步 Lokalise 翻译的 Laravel 扩展包
Requires
- php: ^8.1
- bambamboole/laravel-translation-dumper: ^1.0.0
- illuminate/console: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- lokalise/php-lokalise-api: ^4.2
Requires (Dev)
- laravel/pint: ^1.8
- phpunit/phpunit: ^10.1
This package is auto-updated.
Last update: 2024-09-21 12:56:45 UTC
README
Lokalise 声明支持 Laravel 翻译,但默认情况下并不如此。
它不支持 Laravel 的占位符和复数形式。在 Laravel 中,也通常使用两个翻译文件。每个语言环境多个 PHP 文件,包含嵌套键,以及每个语言环境一个使用基本语言环境作为键的 JSON 文件。
此扩展包提供了一种简单的方法来同步您的 Laravel 翻译与 Lokalise,无需更改您的翻译或 Lokalise 设置。只需使用即可!
它是如何工作的?
该扩展包执行了一些操作,以提供最佳的开箱体验。
它会单独检查您的 JSON 和 PHP 翻译。
点分隔的翻译键将被文件名前缀。
然后,翻译将在运行时进行处理,以将占位符和复数形式转换为 Lokalise 兼容的格式。
然后,将文件上传到 Lokalise。
下载翻译有所不同,因为 Lokalise 在下载整个文件时将占位符转换为不可逆的格式。因此,该扩展包使用翻译键 API 每个文件获取键文件。在将键导入各自的文件之前,它将占位符转换回 Laravel 格式。
安装
您可以通过 composer 安装此扩展包。
composer require bambamboole/laravel-lokalise
将以下环境变量添加到您的 .env
文件中
LOKALISE_API_TOKEN=your-lokalise-api-token LOKALISE_PROJECT_ID=your-lokalise-project-id
使用方法
该扩展包仍在早期开发阶段,因此比较主观,并且不够灵活。
要上传您的翻译到 Lokalise,您可以运行以下命令
php artisan lokalise:upload
要上传特定文件,您可以在命令后面直接添加相对文件路径
php artisan lokalise:upload lang/en.json lang/en/validation.php # or for CI git diff --name-only | grep lang/ | xargs php artisan lokalise:upload
您可以使用 --cleanup
标志删除 Lokalise 中不再存在于您的项目中的所有翻译。如果没有指定文件,它还将删除不再存在的文件的所有键
要下载您的翻译从 Lokalise,您可以运行以下命令
php artisan lokalise:download
测试
composer test
贡献
想法/路线图
- 添加更多测试
- 在 lokalise:download 上不要覆盖现有的 lokal 翻译:更新现有内容并保留新内容
- 支持多复数形式,如
'apples' => '{0} There are none|[1,19] There are some|[20,*] There are many'
- 您的想法在这里
请参阅 CONTRIBUTING 了解详情。
安全
如果您发现任何安全相关的问题,请通过电子邮件 manuel@christlieb.eu 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。