fei/translate-package

Objective PHP应用程序的翻译客户端包集成


README

本软件包为Objective PHP应用程序提供翻译客户端集成。

安装

Translate Package需要PHP 7.0或更高版本才能正确运行。

您需要使用以下命令将其集成到Objective PHP项目中:composer require fei/translate-package

集成

如下所示,Translate Package必须连接到应用程序的初始化方法。

Translate Package创建一个翻译客户端服务,该服务将由应用程序的中间件使用。

<?php

use ObjectivePHP\Application\AbstractApplication;
use Fei\Service\Translate\Package\TranslatePackage;

class Application extends AbstractApplication
{
    public function init()
    {
        // Define some application steps
        $this->addSteps('bootstrap', 'init', 'auth', 'route', 'rendering');

        // Initializations...

        // Plugging the Translate Package in the bootstrap step
        $this->getStep('bootstrap')
        ->plug(TranslatePackage::class);

        // Another initializations...
    }
}

应用程序配置

在您的配置目录中创建一个文件,并将以下Translate配置放入其中

<?php

use Fei\Service\Translate\Package\Config\TranslateParam;
use Fei\ApiClient\Transport\BasicTransport;

return [
    new TranslateParam('base_url', 'http://translate.api/'), // Translate API URL and port
    new TranslateParam('transport', new BasicTransport()), // Transport type
    new TranslateParam('translate_directory', '/app/translate/'), // Directory to store the translations
    new TranslateParam('translate_config', [
        'lock_file'         => '/app/translate/.translations.lock',
        'data_path'         => '/app/translate/data',
        'translations_path' => '/app/translate/translations',
        'localTranslationsFile' => dirname(__DIR__) . '/localTranslations.php',
        'skipSubscription' => false,
        'servers'           => [
            'http://translate.api/' => [
                'namespaces' => ['/mynamespace'],
                'host' => 'other-host'
            ]
        ],
        'url' => 'http://translate.domain.dev/handleRequest.php'
    ]),// Translate client config (Cf. Translate Client documentation)
    new TranslateParam('translate_namespace', '/mynamespace'), // Namespace defined in translate_config where to search the translations
    new TranslateParam('translate_lang', 'en_GB') // Language defined in which we want the translations
];

在之前的示例中,您需要设置此配置

  • base_url:表示可以联系以发送翻译的API的URL
  • transport:表示翻译传输类型
  • translate_directory:表示存储翻译的目录的路径
  • translate_config:表示翻译客户端配置(参见translate-client文档)
  • translate_namespace:表示默认的命名空间,其中搜索翻译
  • translate_lang:表示我们想要的默认翻译语言

注意,如果您希望您的应用程序使用本地翻译而不是订阅翻译服务器,则可以像这样配置您的应用程序

<?php

use Fei\Service\Translate\Package\Config\TranslateParam;

return [
    new TranslateParam('translate_config', [
        'localTranslationsFile' => dirname(__DIR__) . '/localTranslations.php',
        'skipSubscription' => true,
    ]),
];

请查看translate-client文档以获取有关如何使用此客户端的更多信息。