config = getConfig('/common/utils/translation/config/trans.php'); // $this->config = getConfig('/queue/translation/config/trans.php'); } /** * 异步排队所有语种的翻译任务 * * @param string $entityType 实体名,如 'vehicle' * @param int $entityId 主表 ID * @param string $sourceLocale 源语种,如 'zh' * @param array $sourceFields 源语种字段 ['name'=>…,'condition_desc'=>…] * @param array $clientFields 前端已传翻译 ['en'=>[...], …] * @param array $intactFields 不需要翻译的字段 */ public function queueTranslations(string $entityType, int $entityId, string $sourceLocale, array $sourceFields, array $clientFields = [], array $intactFields = []): void { foreach ($this->config['locales'] as $locale) { $payload = [ 'entityType' => $entityType, 'entityId' => $entityId, 'locale' => $locale, 'sourceLocale' => $sourceLocale, 'sourceFields' => $sourceFields, 'clientFields' => $clientFields[$locale] ?? [], ]; Redis::send('transTask', $payload); } } }