fei / translate-client
闪应用翻译 - 客户端组件
Requires
- php: >=5.5
- doctrine/common: ^2.6.1
- fei/api-client: ^1.1
- fei/logger-client: ^1.2
- fei/translate-common: ^1.0.0
- nikic/fast-route: ^1.2
- zendframework/zend-diactoros: ^1.3
Requires (Dev)
- codeception/codeception: ^2.2
- jakub-onderka/php-parallel-lint: ^0.9.2
- sebastian/phpcpd: ^2.0
- squizlabs/php_codesniffer: ^2.7
- dev-master
- v1.8.0
- v1.7.0
- v1.3.0
- v1.2.0
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-dependabot/composer/codeception/codeception-3.1.3
- dev-detached2
- dev-detached
- dev-develop
- dev-feature/create_dir_trans
- dev-feature/update_composer_api_client
This package is auto-updated.
Last update: 2024-09-20 08:46:10 UTC
README
目录
目的
此客户端允许使用 Translate Api
。多亏了它,您可以轻松请求API来
- 获取数据
- 创建数据
- 更新数据
- 删除数据
等
需求
运行时
- PHP 5.5
安装步骤
适用于所有目的(开发、贡献和生产)
初始化
- 克隆仓库
git clone https://github.com/flash-global/translate-client.git
- 运行Composer依赖安装
composer install
配置
翻译客户端需要一些选项才能正常工作。可以传递给 __construct()
或 setOptions()
方法的可用选项有
设置
别忘了设置正确的 baseUrl
<?php $translate = new Translate([Translate::OPTION_BASEURL => 'http://translate.dev']); $translate->setTransport(new BasicTransport());
Beanstalkd配置
运行Beanstalkd非常简单。然而,您必须注意设置最大作业(或消息)大小的字节大小的z
选项。因此,如果您想向翻译API发送多个翻译,应允许足够的字节,根据您翻译的长度。
启动单元测试
使用 docker-compose up -d
启动docker
然后 docker exec -ti translateclient_php_1 /var/html/vendor/bin/codecept run unit
运行 api-client-worker.php
下面是一个运行 api-client-worker.php
的示例
php /path/to/translate-client/vendor/bin/api-client-worker.php --host 127.0.0.1 --port 11300 --delay 3
您可以使用Supervisor控制api-client-worker.php进程。
配置
为了使客户端正常工作,您需要配置一些参数:
配置在 config/config.php
文件中进行。以下是一个完整的配置示例
<?php return [ 'lock_file' => dirname(__DIR__) . '/.translations.lock', 'data_path' => dirname(__DIR__) . '/data', 'translations_path' => dirname(__DIR__) . '/translations', 'servers' => [ 'http://10.5.0.1:8010' => [ 'namespaces' => ['/a/b/c/d'] ] ], 'url' => 'http://10.6.0.1:8040/examples/handleRequest.php/update' ];
lock_file
:此配置用于定位用于确定您是否已订阅API服务器的lock
data_path
:此配置用于设置一个目录,该目录将用于在更新客户端的翻译缓存时存储临时数据translations_path
:此配置用于设置一个目录,该目录将用于存储您的翻译缓存文件servers
:这是一个数组,定义了在调用Translate::subscribe
方法时,您想订阅的所有服务器(在方法的参数中没有任何$server
)url
:这是用于监听来自翻译API服务器的请求的URL,当发送新的翻译缓存文件时。别忘了这个参数,否则您将不会收到任何翻译
已知问题
目前没有已知的问题。
贡献
作为OpCoding设计和制造的FEI服务,贡献工作将涉及两个技术团队。请随时贡献,以提高功能和应用补丁,但请注意仔细处理拉取请求。合并必须是Flash和OpCoding团队之间完全讨论的结果:)
文档链接
示例
您可以通过文件夹 examples 轻松测试此客户端
以下是如何使用示例的示例: php /my/translate-client/folder/examples/translate.php
基本用法
为了使用Translate
方法,您需要定义一个新的Translate
实例并设置正确的传输方式(异步或同步)。
<?php use Fei\Service\Translate\Client\ Translate; use Fei\ApiClient\Transport\BasicTransport; use Fei\ApiClient\Transport\BeanstalkProxyTransport; use Pheanstalk\Pheanstalk; $translate = new Translate([Translate::OPTION_BASEURL => 'https://translate.api']); // Put your translate API base URL here $translate->setTransport(new BasicTransport()); $proxy = new BeanstalkProxyTransport(); $proxy->setPheanstalk(new Pheanstalk('127.0.0.1')); $translate->setAsyncTransport($proxy); // Use the translate client methods...
Translate客户端实例首先会尝试使用Beanstalkd传输消息,如果这个过程失败,客户端将尝试直接将I18nString负载发送到正确的API端点。
Translate类中有几个方法,所有方法列在以下表中