eko/googletranslatebundle

一个用于处理Google翻译API的Symfony扩展包

1.1.3 2016-10-26 21:18 UTC

This package is auto-updated.

Last update: 2024-09-15 09:56:29 UTC


README

SensioLabsInsight

Build Status Latest Stable Version Total Downloads

特性

  • 检测字符串使用的语言
  • 将字符串从源语言翻译为目标语言
  • 使用语言自动检测将字符串翻译为目标语言(消耗1次额外的API调用)
  • 检索API上所有可用的语言并获取给定语言的语言名称
  • 在Symfony分析器中配置检测器/翻译/语言列表API调用!

安装

将扩展包添加到您的 composer.json 文件中

{
    "require" :  {
        "eko/googletranslatebundle": "dev-master"
    }
}

在 app/AppKernel.php 中添加以下内容

<?php
    public function registerBundles()
    {
        $bundles = array(
            ...
            new Eko\GoogleTranslateBundle\EkoGoogleTranslateBundle(),
        );

        ...

        return $bundles;
    }

配置

编辑 app/config.yml

以下配置行是必需的

eko_google_translate:
    api_key: <your key api string>

用法

检测字符串语言

检索检测器服务并调用 detect() 方法

$detector = $this->get('eko.google_translate.detector');
$value = $detector->detect('Hi, this is my string to detect!');
// This will return 'en'

翻译字符串

检索翻译器服务并调用 translate() 方法

$translator = $this->get('eko.google_translate.translator');
$value = $translator->translate('Hi, this is my text to detect!', 'fr', 'en');
// This will return 'Salut, ceci est mon texte à détecter!'

从未知语言翻译字符串(使用检测器)

检索翻译器服务并调用 translate() 方法,不使用源(第三个)参数

$translator = $this->get('eko.google_translate.translator');
$value = $translator->translate('Hi, this is my text to detect!', 'fr');
// This will return 'Salut, ceci est mon texte à détecter!'

翻译多个字符串

检索翻译器服务并调用 translate() 方法,传入一个字符串数组

$translator = $this->get('eko.google_translate.translator');
$value = $translator->translate(array('Hi', 'This is my second text to detect!'), 'fr', 'en');
// This will return the following array:
// array(
//     0 => 'Salut',
//     1 => 'Ceci est mon second texte à détecter !',
// )

注意,您还可以使用“经济模式”在单个请求中翻译多个字符串,这有助于提高应用程序的性能。

您的翻译将连接成一个单独的Google请求。要使用它,只需将 true 添加到最后一个参数中即可。

$translator = $this->get('eko.google_translate.translator');
$value = $translator->translate(array('Hi', 'This is my second text to detect!'), 'fr', 'en', true);
// This will return the following array:
// array(
//     0 => 'Salut',
//     1 => 'Ceci est mon second texte à détecter !',
// )

获取所有可用语言代码

检索语言服务并调用 get() 方法,不传递任何参数

$languages = $this->get('eko.google_translate.languages')->get();
// This will return:
// array(
//     array('language' => 'en'),
//     array('language' => 'fr'),
//     ...
// )

获取所有语言代码及其名称的翻译

检索语言服务并调用 get() 方法,传递一个目标语言参数

$languages = $this->get('eko.google_translate.languages')->get('fr');
// This will return:
// array(
//     array('language' => 'en', 'name' => 'Anglais'),
//     array('language' => 'fr', 'name' => 'Français'),
//     ...
// )

注意:这将消耗一个检测器API调用。