Bug #93033
closed
Language switch missing for file metadata records
Added by Sebastian Michaelsen over 4 years ago.
Updated over 3 years ago.
Description
When editing file metadata records (sys_file_metadata
), the language switch is missing.
From my observations the switch was there in v8 and is gone in v10.
According to xdebug the EditDocumentController->getLanguages()
always determines English is the only available language for sys_file_metadata
on pid 0.
The file list however has a different logic. From there metadata can be translated into any system language (FileList->getAvailableSystemLanguages()
).
Files
- Description updated (diff)
In fact translation of records on pid=0
is not possible anymore, e.g. sys_category
.
When trying to translate file metadata through the file list module, an error occurs:


Sorry, my fault: I actually forgot to add the sys_language
record in this instance.
Still, there is no language selector anymore as mentioned here.
In any case translation of files is still possible through the File list module. This also makes it necessary to go back when editing multiple file metadata translations.
- Related to Task #85930: Add API for Site resolving added
- Category set to Localization
- Status changed from New to Under Review
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
- Status changed from Resolved to Closed
Hi,
we have a multidomain TYPO3 project currently running with TYPO3 10.4.20.
The language switch for file metadata records is displayed, but the option for "Deutsch" is filled with all german site configuration entries, e.g. "Deutsch [Site: site-1]", "Deutsch [Site: site-2]", ... entries.
I think the problem is that $allLanguages is fetched in sysext/backend/Classes/Controller/EditDocumentController.php with $pageId = 0. In the returned array the field title has all german entries from site configuration (see allLanguages.png)
$allLanguages = array_filter(
GeneralUtility::makeInstance(TranslationConfigurationProvider::class)->getSystemLanguages($pageId),
static function (array $language): bool {
return (int)$language['uid'] !== -1;
}
);
Also available in: Atom
PDF