diff --git a/ProcessMaker/Http/Controllers/Api/OpenAIController.php b/ProcessMaker/Http/Controllers/Api/OpenAIController.php index a8d5e0420b..fd9aa53e5b 100644 --- a/ProcessMaker/Http/Controllers/Api/OpenAIController.php +++ b/ProcessMaker/Http/Controllers/Api/OpenAIController.php @@ -123,7 +123,12 @@ public function languageTranslation(Request $request) $processTranslationToken->save(); $translateProcess = new BatchesJobHandler($process, $screensTranslations, $request->input('language'), $code, Auth::id(), $option); - $translateProcess->handle(); + $haveStringsToTranslate = $translateProcess->handle(); + if (!$haveStringsToTranslate) { + return response()->json([ + 'error' => __('No strings found to translate'), + ]); + } } else { return response()->json([ 'error' => 'Already running a translation for this language in background', diff --git a/ProcessMaker/ProcessTranslations/BatchesJobHandler.php b/ProcessMaker/ProcessTranslations/BatchesJobHandler.php index b7a90d875b..3d046b2159 100644 --- a/ProcessMaker/ProcessTranslations/BatchesJobHandler.php +++ b/ProcessMaker/ProcessTranslations/BatchesJobHandler.php @@ -55,7 +55,6 @@ public function handle() [$screensWithChunks, $chunksCount] = $this->prepareData($this->screens, $languageTranslationHandler); // Execute requests for each regular chunk - $batch = Bus::batch([]) ->then(function (Batch $batch) { \Log::info('All jobs in batch completed'); @@ -79,6 +78,12 @@ public function handle() // Update with real batch token ... ProcessTranslationToken::where('token', $this->code)->update(['token' => $batch->id]); + if (!count($screensWithChunks)) { + $this->notifyProgress($batch); + + return false; + } + foreach ($screensWithChunks as $screenId => $screenWithChunks) { foreach ($screenWithChunks as $chunk) { $batch->add( @@ -93,6 +98,8 @@ public function handle() ); } } + + return true; } private function notifyProgress($batch) diff --git a/resources/lang/en.json b/resources/lang/en.json index 28b273ddc7..483698b7cf 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -1279,6 +1279,7 @@ "Validate that an attribute has a valid URL format.": "Validate that an attribute has a valid URL format.", "Add Rule": "Add Rule", "No validation rule(s)": "No validation rule(s)", + "No strings found to translate": "No strings found to translate", "New Select List": "New Select List", "New Array of Objects": "New Array of Objects", "Existing Array": "Existing Array",