Multilingual files uploader
We need a widget that allows the upload of files in a multilingual scenario. Here we spec out only a multilingual uploader for image files, though it can be extended later to handle other file types.
We used grids and added a multilingual row to them.
The first image, at the top to the bottom, is the common grid with a file already uploaded.
The second one is the multilingual popover visible. This will happen when users mouse over the grid row or (if we are concerned about mobile devices) when they click on the multilingual icon. We can add a help text inside a notification and present to users after their first upload to tell them about those details. Note the multilingual popover action (delete all), so users can delete an item and it's localized versions with just one click.
The third one is the state of the grid if any localized data is missing. Note the exclamation icon at the side of the multilingual one. This is a suggestion that we can use or not. If we use we can use to all other multilingual widgets.
The grid add action will first add an item into the primary locale (the required one). This is a little different from the other multilingual controls, but it's necessary so we can avoid validating user actions after something it's done. I think that's important to keep the feeling that actions inside the grid are saved in real time, so anything that's not possible to be done should be forbidden. This will also avoid a lot of extra work, like deleting files already uploaded if user cancelled the action instead of saving, etc.
After adding an item for the primary locale, users can add multilingual versions by clicking the grid add action again and choosing to add a localized version of the existing item inside the grid. If they don't want to upload a localized version of an existing item, they can just do the normal upload.
Users can add localized versions of existing items also interacting directly with the localized rows, what I think it will be a lot easier. Once they upload an item for the primary locale, a multilingual row will be visible and they can mouse over and interact with the other localized rows.
If there is no item to show for the interface locale, then we can present the item for the primary locale but with a different background, so this and the flag of the primary locale will make it clear to users that the data for the current locale is missing.