diff --git a/templates/content/view_locales.html.twig b/templates/content/view_locales.html.twig
index ef1dc12a7..1784b98a7 100644
--- a/templates/content/view_locales.html.twig
+++ b/templates/content/view_locales.html.twig
@@ -43,27 +43,8 @@
{% else %}
{% set field = field_factory(key, fielddefinition) %}
{% endif %}
-
-
- {{ field|label }}
- Type: {{ field|type }}
- |
- {% set localizedValues = find_translations(field) %}
- {% for locale in locales %}
- {% set translated = field|translated(locale) %}
-
- {% if not field.definition.localize %}
- {{ 'view_locales.badge_default'|trans }}
- {% elseif localizedValues[locale] is not defined %}
- {{ 'view_locales.badge_missing'|trans }}
- {% elseif localizedValues[locale] is defined and translated.twigvalue is empty %}
- {{ 'view_locales.badge_empty'|trans }}
- {% else %}
- {{ 'view_locales.badge_ok'|trans }}
- {% endif %}
- |
- {% endfor %}
-
+
+ {{ _self.renderfield(field, locales) }}
{% endfor %}
{% endfor %}
@@ -90,3 +71,40 @@
{% block aside %}
{% endblock aside %}
+
+{# Shows one or many rows, based on field and subfields. #}
+{% macro renderfield(field, locales) %}
+ {% if field|type in ['set', 'collection'] %}
+ {% for subfield in field.value %}
+ {% do subfield.definition.put('label', field|label ~ ' ⇒ ' ~ subfield|label) %}
+ {{ _self.renderfield(subfield, locales) }}
+ {% endfor %}
+ {% else %}
+ {{ _self.renderrow(field, locales) }}
+ {% endif %}
+{% endmacro %}
+
+{# Shows a single row for a field without subfields. #}
+{% macro renderrow(field, locales) %}
+
+
+ {{ field|label }}
+ Type: {{ field|type }}
+ |
+ {% set localizedValues = find_translations(field) %}
+ {% for locale in locales %}
+ {% set translated = field|translate(locale) %}
+
+ {% if not field.definition.localize %}
+ {{ 'view_locales.badge_default'|trans }}
+ {% elseif localizedValues[locale] is not defined %}
+ {{ 'view_locales.badge_missing'|trans }}
+ {% elseif localizedValues[locale] is defined and translated.twigvalue is empty %}
+ {{ 'view_locales.badge_empty'|trans }}
+ {% else %}
+ {{ 'view_locales.badge_ok'|trans }}
+ {% endif %}
+ |
+ {% endfor %}
+
+{% endmacro %}