To fully get the intended approach of Anja I just started to write some stuff down that came to my mind. And during this process I came to the conclusion that the basic approach makes sense but there are only a few small implementation details that need some adjustment IMHO
So here my write-up:
The idea behind the FileAbstractionLayer "currently" implemented in TYPO3 is that of every fycical file present in the storage a sys_file record is present and that record basically only holds a small set of data to indentify a file and have these info the same regardless of the storage type the file is in. So basically for every file in your fileadmin folder a record is present in the sys_file table.
The sys_file_metadata record is there to add/keep some extra info about the file. And as these a mostly text values these can be multiple versions of the metadata, one for each available language (sys_language_uid). But this sys_language_uid doesn't say anything about the file itself. It just tells us in what language the metadata is.
So IMO we shouldn't touch the metadata translations. It's just some extra descriptions of a file where these descriptions can be available in every sys_language_uid available.
So now we have to find a way to bind a sys_file record to a certain language saying this file is in language x (because some title is in the picture or because it is really a text document in that language) so basically some extra property of sys_file_metadata. Let's call it
contents_language. This is a value that shouldn't be translatable just like the file dimensions etc.
Next we need a way to group files together.
You can not use the translated sys_file_metadata record for this as this is only a translation of the original metadata belonging to the real file (sys_file record). The file with a different
contents_language has again it's own metadata and translated metadata. Because who says that the metadata of both files are the same. Probably both have different authors etc. So both need to have there own metadata and translated metadata. Hiding these files in the filelist would just make it harder for the editors.
The UX part could work, having the option to upload a different file when editing the metadata but that should only be a entry point to easily upload a file and link them together. You should also be able to just select a file that's already present to link them.
To link them together the
file_source field could make sense here. But then again just like
contents_language only on sys_file_metadata and not on sys_file. Maybe we need to name
file_source a little different so we know it's a language variant relation.
- filelist and filepicker need to be adjusted so you can see in what language the file is (
- FE file selection needs to be adjusted so you get the correct file variant when present (this will be very hard in extbase..... but there it already doesn't work.....)
Indexing doesn't need to get changed for this.