diff --git a/app/queue/jobs/TranslationJob.php b/app/queue/jobs/TranslationJob.php index 4539613..f3aca0a 100644 --- a/app/queue/jobs/TranslationJob.php +++ b/app/queue/jobs/TranslationJob.php @@ -27,6 +27,7 @@ class TranslationJob $sourceLang = $pt['sourceLang']; // $locale = $pt['locale']; $id = $pt['id']; + $toLang = $pt['toLang']; $translator = new TranslatorService(); if($entityType == 'location'){ @@ -47,14 +48,15 @@ class TranslationJob } $languages = ['cn' => 'cn', 'en' => 'en', 'ru' => 'ru', 'ar' => 'ar']; + $languages = array_merge(['to'=>$toLang],$languages); unset($languages[$sourceLang]); log::info('languages', [$languages]); foreach ($languages as $lang => $xflang) { if($entityType =='location'){ - $fields = $translator->location($sourceFields,$lang,$sourceLang); + $fields = $translator->location($sourceFields,$xflang,$sourceLang); }else{ - $fields = $translator->vehicle($sourceFields,$lang,$sourceLang); + $fields = $translator->vehicle($sourceFields,$xflang,$sourceLang); } $translationModel = $translationModels[$xflang]; @@ -66,7 +68,7 @@ class TranslationJob } $translation->fill($fields); $res = $translation->save(); - log::info('$languages save '.$lang, [$res,$fields]); + log::info('$languages save '.$xflang, [$res,$fields]); } } diff --git a/app/service/TranslatorService.php b/app/service/TranslatorService.php index 5d35aec..c9802f5 100644 --- a/app/service/TranslatorService.php +++ b/app/service/TranslatorService.php @@ -43,11 +43,11 @@ class TranslatorService return $location; } - public function queue($field,$sourceLang,$type,$id) { + public function queue($field,$sourceLang,$type,$id,$toLang) { // 队列名 $queue = 'translator'; // 数据,可以直接传数组,无需序列化 - $data = ['entityType' => $type, 'sourceFields' => $field, 'sourceLang' => $sourceLang, 'locale' => 'hello', 'id' => $id]; + $data = ['entityType' => $type, 'sourceFields' => $field, 'sourceLang' => $sourceLang, 'locale' => 'hello', 'id' => $id, 'toLang' => $toLang]; // 投递消息 Redis::send($queue, $data); return true; diff --git a/plugin/admin/app/controller/LocationController.php b/plugin/admin/app/controller/LocationController.php index 8899aa7..1b385b2 100644 --- a/plugin/admin/app/controller/LocationController.php +++ b/plugin/admin/app/controller/LocationController.php @@ -189,12 +189,15 @@ class LocationController extends Crud ]; //删除已保存的模型 unset($translationModels[$lang]); -// unset($languages[$lang]); + unset($languages[$lang]); // 创建翻译服务实例 $translatorService = new \app\service\TranslatorService(); - $translatorService->queue($data,$languages[$lang],'location',$data['id']?:null); + $sourceLang = $languages[$lang]; + foreach ($languages as $lang) { + $translatorService->queue($data,$sourceLang,'location',$data['id']?:null,$lang); + } } /** diff --git a/plugin/admin/app/controller/VehicleController.php b/plugin/admin/app/controller/VehicleController.php index a0b2daa..de779b3 100644 --- a/plugin/admin/app/controller/VehicleController.php +++ b/plugin/admin/app/controller/VehicleController.php @@ -277,12 +277,14 @@ class VehicleController extends Crud ]; //删除已保存的模型 unset($translationModels[$lang]); -// unset($languages[$lang]); + unset($languages[$lang]); // 创建翻译服务实例 $translatorService = new \app\service\TranslatorService(); - - $translatorService->queue($data,$languages[$lang],'vehicle',$data['id']?:null); + $sourceLang = $languages[$lang]; + foreach ($languages as $lang) { + $translatorService->queue($data,$sourceLang,'vehicle',$data['id']?:null,$lang); + } }