Skip to content

Commit

Permalink
[BUGFIX] Translation of existing language file-variants
Browse files Browse the repository at this point in the history
  • Loading branch information
Sascha Löffler committed Jul 16, 2024
1 parent e3d7b30 commit 9613bcf
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 9 deletions.
2 changes: 1 addition & 1 deletion Classes/Controller/Backend/ImageRecognizeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ public function ajaxMetaGenerateAction(ServerRequestInterface $request): Respons

$returnArray = [
'translations' => $translations,
'saved' => (bool)$saved,
'saved' => (bool)$saved,
];

return $this->responseFactory->createResponse()
Expand Down
27 changes: 27 additions & 0 deletions Classes/Domain/Repository/MetaDataRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,33 @@ public function updateMetaDataByFileUidAndLanguageUid(int $fileUid, int $languag
->executeStatement();
}

/**
* Update metadata
*
* @return int
* @throws Exception
* @throws InvalidUidException
*/
public function updateMetaDataByUidAndLanguageUid(int $metaUid, int $languageUid, string $fieldName = 'alternative', string $fieldValue = ''): int
{
if ($metaUid <= 0) {
throw new InvalidUidException('Metadata can only be updated for valid metadata. UID: "' . $metaUid . '"', 1721088386);
}

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($this->tableName);

$queryBuilder->getRestrictions()->add(GeneralUtility::makeInstance(RootLevelRestriction::class));

return $queryBuilder
->update($this->tableName)
->where(
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($metaUid, Connection::PARAM_INT)),
$queryBuilder->expr()->eq('sys_language_uid', $queryBuilder->createNamedParameter($languageUid, Connection::PARAM_INT))
)
->set($fieldName, $fieldValue)
->executeStatement();
}

/**
* find all translated file variants for a fileMetaDataUid and list of languageUids
*
Expand Down
8 changes: 1 addition & 7 deletions Classes/Service/ImageMetaDataService.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public function saveMetaData(string $target, string $altText = null, int $langua
if (!empty($translatedFiles)) {
$metaDataUid = (int)$translatedFiles[0]['uid'];
// Otherwise update file variant meta data
$this->metaDataRepository->updateMetaDataByFileUidAndLanguageUid(
$this->metaDataRepository->updateMetaDataByUidAndLanguageUid(
$metaDataUid,
languageUid: $language,
fieldName: 'alternative',
Expand All @@ -121,12 +121,6 @@ public function saveMetaData(string $target, string $altText = null, int $langua
'alternative' => $altText,
'l10n_diffsource' => $diffSourceJson,
]);
$folder = $resourcesService->prepareFileStorageEnvironment();
$resourcesService->copyOriginalFileAndUpdateAllConsumingReferencesToUseTheCopy(
sys_language_uid: $language,
metaDataRecord: $translatedMetaDataRecord,
folder: $folder,
);
$metaDataUid = (int)$translatedMetaDataRecord['uid'];
}

Expand Down
2 changes: 1 addition & 1 deletion rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@
RenameClassConstFetchRector::class => [
__DIR__ . '/packages/**/ExternalImport/*', // Skip invalid AbstractMessage::* migration
],
MigrateMagicRepositoryMethodsRector::class,// ignore for now to support TYPO3 v11
MigrateMagicRepositoryMethodsRector::class, // ignore for now to support TYPO3 v11
]);

0 comments on commit 9613bcf

Please sign in to comment.