Would this also be useable in grids? if so: How would you solve filtering on this value? What is the performance impact of such implementation? The grid I would like to use it in has around 5000 records currently and is expected to grow by about 2000 per year.
I found this to be bad design. I chose to retrieve the user language instead and show a grid based on the user language with the correct fields in it. I can then use the field for this specific users language in the datagrid filters
I would opt for a structure like this
Each TranslatedEntity Object can be linked to a defined language in your App.
In your logic, you can compare the language linked to the user and fetch the correct TranslatedEntity/TranslatedText. If this cannot be found you could have the MainEntity as fallback (or you enforce to create an EN version and use that as fallback)
I implemented solutions for using translated text in emails (based on templates) or notification messages using the user specific language settings.