55 lines
1.7 KiB
PHP
55 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace app\service;
|
|
|
|
use app\util\Xunfei;
|
|
use support\Log;
|
|
use Webman\RedisQueue\Redis;
|
|
|
|
class TranslatorService
|
|
{
|
|
private Xunfei $xunfei;
|
|
|
|
private $lang = ['zh'=>'cn', 'en'=>'en','ru'=>'ru','ar'=>'ar'];
|
|
|
|
public function __construct() {
|
|
$this->xunfei = new Xunfei();
|
|
}
|
|
|
|
public function vehicle($vehicle, string $targetLang = 'en', string $fromLang = 'cn') {
|
|
$fields = ['brand', 'model', 'purchase_location', 'procedure_location', 'fbo_destination'];
|
|
foreach ($vehicle as $k => $var) {
|
|
if (in_array($k, $fields)) {
|
|
$rst_dst = $this->xunfei->fanyi($var, $fromLang, $targetLang);
|
|
if ($rst_dst) {
|
|
$vehicle[$k] = $rst_dst["trans_result"]["dst"];
|
|
}
|
|
}
|
|
}
|
|
log::info('fanyi',$vehicle);
|
|
return $vehicle;
|
|
}
|
|
|
|
public function location($location, string $targetLang = 'en', string $fromLang = 'cn') {
|
|
$fields = ['name'];
|
|
foreach ($location as $k => $var) {
|
|
if (in_array($k, $fields)) {
|
|
$rst_dst = $this->xunfei->fanyi($var, $fromLang, $targetLang);
|
|
if ($rst_dst) {
|
|
$location[$k] = $rst_dst["trans_result"]["dst"];
|
|
}
|
|
}
|
|
}
|
|
return $location;
|
|
}
|
|
|
|
public function queue($field,$sourceLang,$type,$id) {
|
|
// 队列名
|
|
$queue = 'translator';
|
|
// 数据,可以直接传数组,无需序列化
|
|
$data = ['entityType' => $type, 'sourceFields' => $field, 'sourceLang' => $sourceLang, 'locale' => 'hello', 'id' => $id];
|
|
// 投递消息
|
|
Redis::send($queue, $data);
|
|
return true;
|
|
}
|
|
} |