akeneo / crowdin-api
Crowdin PHP API客户端
Requires
- php: ^8.1
- symfony/http-client: ^6.3.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.23.0
- phpspec/phpspec: ^7.4.0
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2024-09-22 11:14:30 UTC
README
一个简单的PHP Crowdin API客户端 http://crowdin.net/page/api.
Crowdin是一个翻译和本地化管理平台: http://crowdin.net/
请注意,这里有一个官方的更完整的Ruby客户端: https://github.com/crowdin/crowdin-api
特性
PSR-2约定和编码标准
包装以下API方法
- 添加文件,删除文件
- 添加目录,删除目录,更改目录
- 更新文件,上传翻译,上传本地化文件的最新版本
- 导出翻译,构建包含最新翻译的新包。
- 下载翻译,下载最后一次导出的翻译包(单个语言或所有语言作为一个zip文件)。
- 支持的语言,获取支持的语言列表,Crowdin代码映射到区域名称和标准代码。
- 翻译状态,跟踪每种目标语言的总体翻译和校对进度。
- 项目信息,显示项目详细信息和元信息。
缺少API方法 https://github.com/akeneo/php-crowdin-api/issues?q=is%3Aopen+is%3Aissue+label%3Aapi-method
要求
- PHP >= 8.1
- 使用Docker以获得更好的开发体验
如何使用?
在您的项目composer.json中添加以下行
{ "require": { "akeneo/crowdin-api": "^2.0.0" }, "minimum-stability": "stable" }
然后,实例化客户端并使用可用的API方法
<?php require 'vendor/autoload.php'; use Akeneo\Crowdin\Client; $project = 'akeneo'; $key = 'my-api-key'; $client = new Client($project, $key); // download last build package from Crowdin $api = $client->api('download'); $api->setCopyDestination('/tmp/download-crowdin'); $api->setPackage('fr.zip'); $result = $api->execute(); // update a Crowdin file from local filesystem $api = $client->api('update-file'); $localPath = '/home/nico/git/pim/src/Pim/Bundle/CatalogBundle/Resources/translations/messages.en.yml'; $crowdinPath = 'PimCommunity/CatalogBundle/Resources/translations/messages.en.yml'; $api->addTranslation($localPath, $crowdinPath); $result = $api->execute();
运行测试
docker-compose run --rm php vendor/bin/php-cs-fixer fix --config=.php_cs.php --diff docker-compose run --rm php vendor/bin/phpstan analyze src --level 5 docker-compose run --rm php vendor/bin/phpspec run
用例
您可以通过查看以下用例来查看更多真实世界的示例。
Akeneo核心团队在Nelson中使用此库,它是一个基于命令的翻译工作流程,在Crowdin和GitHub之间(cf https://github.com/akeneo/nelson)。
Sylius核心团队在SyliusBot中使用此库来管理社区翻译 https://github.com/SyliusBot/SyliusBot。
如果您使用此库,请毫不犹豫地在此处打开PR以说明您的用例:)
许可证
MIT许可证(MIT)
贡献
请随意fork并提交PR以补充缺失的API方法 https://github.com/akeneo/php-crowdin-api/issues?q=is%3Aopen+is%3Aissue+label%3Aapi-method
任何贡献都受到欢迎!