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 调用。