*/ public function middleware(): array { return [ new RateLimited('kor-elf-translate'), ]; } public function getLimited(): ProcessTranslateLimit { $driver = $this->param->getDriver(); if ($driver === null) { $driver = Translate::getDefaultDriver(); } $limit = Translate::getLimit($driver); return new ProcessTranslateLimit( maxRequest: $limit['max_request'] ?? 1000000000, rateSeconds: $limit['rate_seconds'] ?? 1, driver: $driver, ); } /** * Execute the job. */ public function handle(): void { $param = $this->param; $groupName = $param->getGroupName(); $translated = Cache::get($groupName, []); if (!isset($translated[$param->getKey()])) { $translated[$param->getKey()] = []; } $translate = Translate::service($param->getDriver()); $function = $param->getTextType()->functionName(); $key = $param->getKey(); $part = $param->getPart(); $translated[$key][$part] = $param->getText(); if (\trim($param->getText()) !== '') { $translated[$key][$part] = $translate->{$function}( $param->getText(), $param->getTargetLanguageCode(), $param->getSourceLanguageCode() ); } Cache::put($groupName, $translated, 86400); } }