Displaying Only Selected Language Content from Multi-Translation Collection in Table View

We created a custom collection called translations, where we store multiple language variants such as de-CH, de-DE, etc.

This collection is used as a multi-translation relation with other collections.

When we add data with multiple languages, the field returns an array of objects containing all translation entries.

:backhand_index_pointing_right: Problem:
In the data table, all translations are displayed as an array.

:backhand_index_pointing_right: Requirement:
We want to display only the content based on the selected global (application) language, instead of showing all translation entries in the table view.

It would be great if you could provide some guidance on how to achieve this.

This might not fit your requirements 100% but you can use the ‘translations’ display setting on the translations field itself. In here, you can set a template and which language should be displayed. Then you add in the translations field and it will display the correct content. The downside here is that you cannot bring in individual fields from the translation collection.

We’re experiencing a similar issue with translated fields in relational interfaces.

We have a collection destination_cluster that contains translated fields (e.g., name). This collection is related to another collection destination using relational interfaces such as M2O, O2M, and M2M.

In the relation selector, the dropdown correctly displays the name value based on the current user UI language. However, after selecting an item, the interface shows all translations for all locales instead of only the current UI language. This happens because the field is rendered inside a relation interface rather than the translations interface.

Is there a way to restrict the relation display so that only the current user’s UI language value is shown?
We want relation fields referencing translated name values to always display only the active UI language, not all locale translations.

@alexv-directus need help with above.

The built-in translations display does support this pattern for the translations field itself; it lets you set a template, a defaultLanguage, and a userLanguage toggle. If you enable userLanguage, the display picks the translation whose language key matches the current language used in the app by the user, otherwise it’ll use the default language set in project settings, and ultimately default to en-US if nothing is set. If userLanguage is turned off, it’ll match the defaultLanguage against the related languages collection’s primary key value. That setting needs the language pk/code, not the translated label.

The display will fallback to the first translation entry if no matching language is found. To use it in the table here, add the translations field itself as the column and assign the translations display to that field. The display renders one translation via the configured template, not the whole array inline.

This will indeed show the translations field as a single displayed value in a single column instead of exposing individual translated child fields as separate table columns.