fix(translation): Translate error messages on translations API

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2023-04-13 08:53:15 +02:00
parent f95c76d82e
commit e9cb759c97
No known key found for this signature in database
GPG key ID: 74434EFE0D2E2205

View file

@ -29,6 +29,7 @@ namespace OC\Core\Controller;
use InvalidArgumentException;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\IL10N;
use OCP\IRequest;
use OCP\PreConditionNotMetException;
use OCP\Translation\ITranslationManager;
@ -36,11 +37,18 @@ use RuntimeException;
class TranslationApiController extends \OCP\AppFramework\OCSController {
private ITranslationManager $translationManager;
private IL10N $l;
public function __construct($appName, IRequest $request, ITranslationManager $translationManager) {
public function __construct(
string $appName,
IRequest $request,
ITranslationManager $translationManager,
IL10N $l,
) {
parent::__construct($appName, $request);
$this->translationManager = $translationManager;
$this->l = $l;
}
/**
@ -62,11 +70,11 @@ class TranslationApiController extends \OCP\AppFramework\OCSController {
'text' => $this->translationManager->translate($text, $fromLanguage, $toLanguage)
]);
} catch (PreConditionNotMetException) {
return new DataResponse(['message' => 'No translation provider available'], Http::STATUS_PRECONDITION_FAILED);
return new DataResponse(['message' => $this->l->t('No translation provider available')], Http::STATUS_PRECONDITION_FAILED);
} catch (InvalidArgumentException) {
return new DataResponse(['message' => 'Could not detect language', Http::STATUS_NOT_FOUND]);
return new DataResponse(['message' => $this->l->t('Could not detect language'), Http::STATUS_NOT_FOUND]);
} catch (RuntimeException) {
return new DataResponse(['message' => 'Unable to translate', Http::STATUS_INTERNAL_SERVER_ERROR]);
return new DataResponse(['message' => $this->l->t('Unable to translate'), Http::STATUS_INTERNAL_SERVER_ERROR]);
}
}
}