fei/translate-client

闪应用翻译 - 客户端组件


README

GitHub release

目录

目的

此客户端允许使用 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类中有几个方法,所有方法列在以下表中