bambamboole/laravel-lokalise

一个用于轻松同步 Lokalise 翻译的 Laravel 扩展包

0.5.1 2024-09-21 12:55 UTC

This package is auto-updated.

Last update: 2024-09-21 12:56:45 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

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)。请参阅 许可证文件 了解更多信息。