Files
car_info/app/service/TranslatorService.php
T
2025-05-28 16:18:28 +08:00

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;
}
}