eko / googletranslatebundle
用于处理 Google 翻译 API 的 Symfony 扩展包
1.1.3
2016-10-26 21:18 UTC
Requires
- php: ^5.3|^7.0
- guzzlehttp/guzzle: ~5.0
- symfony/framework-bundle: ^2.0|^3.0
README
特性
- 检测字符串所使用的语言
- 将字符串从源语言翻译为目标语言
- 通过使用语言自动检测将字符串翻译为目标语言(额外消耗 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 调用。