Translate (nested) paragraphs upon adding node translation, not only when clicking the paragraphs respective edit button

Created on 5 March 2025, about 1 month ago

Problem/Motivation

When adding translations to a node, "direct" fields, i.e. no paragraphs, get their translation added instantly, whereas paragraphs only get their translations added upon clicking "edit" for the respective paragraph.

Proposed resolution

If automated translations become perfect one day, it would be nice to only have to view the whole node in its translated version without having to click "edit" for every single paragraph (and their nested paragraphs, etc.) first.

Feature request
Status

Active

Version

1.3

Component

Code

Created by

🇦🇹Austria tgoeg

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @tgoeg
  • 🇮🇹Italy bigbabert Milano, Italy

    Hi @tgoeg,

    this could be related to paragrpahs edit form settings, could you share more detail about the configuration of the collapsed paragraph form view?

    Best regards

  • 🇦🇹Austria tgoeg

    This is a config I took over, so I don't know the exact details of why it is configured like this. "Legacy" sounds ... outdated :-)
    Maybe it's just that the "stable" mode has not been available back then?

    This is how it looks like:

    Title: Paragraph
    Plural title: Paragraphs
    Edit mode: Open
    Add mode: Dropdown button
    Form display mode: default

    If I change the widget to "Paragraphs (stable)" and/or the "Edit mode: Closed, show nested", I see the same problem.
    Would I have to create a specific "Form display mode" ?

  • 🇮🇹Italy bigbabert Milano, Italy

    Hi @tgoeg,

    have you also tried latest version? in my tests with both configurations, stable and legacy, when i open the add translation form all the paragraphs come opened (uncollapsed) with all the fields translated, and i've tested with like 20 paragraphs with nested paragraphs inside (eg. carousel with slides etc.).

    Best regards

  • 🇦🇹Austria tgoeg

    Just tried with 1.3.7, no change.

    By uncollapsed, do you mean they are already editable? I have an "edit" button next to each paragraph:

    If I click it, the translation gets triggered and works as it should.

    I use the "seven" admin theme, tried claro now as well, that didn't seem to make a difference.
    I searched quite a bit now, but I seems you always have to click edit to start editing a paragraph, this does not seem to be configurable?

    Do you already see translations *before* clicking the edit button?

  • 🇮🇹Italy bigbabert Milano, Italy

    Hi @ tgoeg,

    yes i see translations before clicking on edit, below screesnhot of my child paragraphs form settings inside the parent paragraph.

    BR

  • 🇦🇹Austria tgoeg

    That does not seems to differ from my setup here, strange.

    I see another effect, maybe this is related as well?
    When I click edit on one paragraph and trigger the translation but not on another one and save the article, I cannot make auto translation work anymore, i.e. the next time I edit the article. Paragraphs just stay in their original language.
    But that's probably expected as that should not happen in the first place as your setup would never leave you with untranslated paragraphs.
    I just thought I'd note this down as it might ring a bell for you.

    I'm still on Drupal 10.3.x, but just tried with an updated instance on 10.4.x, same story.
    Are you on 11 already?

    I'm somehow running out of ideas where to debug further.
    We might need deepl.com translations so I am considering to take a look at tmgmt but find the problem here would have been nice, still.

  • 🇮🇹Italy bigbabert Milano, Italy

    Hi @tgoeg,

    added new features like bulk translations, block content, taconomy and media translations and also DeepL API translation support.
    Also minor fixes to prevent unwanted fields settings translation, check it out!

    Best regards

  • 🇮🇹Italy bigbabert Milano, Italy
  • 🇮🇹Italy bigbabert Milano, Italy
  • 🇦🇹Austria tgoeg

    Tested the newest 1.4.21, did a drush updb and drush cr, but I still don't have translations for nested paragraphs.

    I'll try to debug this, but bear with me, I am not a proper developer!
    If I change the following in ./src/Utility.php:

    1059   private function processParagraphTranslation($paragraphEntity, &$form, $d_lang, $t_lang, $excludedFields) {
    1060     if (!$paragraphEntity instanceof \Drupal\paragraphs\ParagraphInterface) {
    1061       return;
    1062     }
    1063
    1064     // Iterate over each field of the paragraph.
    1065     foreach ($paragraphEntity->getFields() as $field_name => $field) {
    1066       // If the field is translatable and not among the excluded ones, proceed.
    1067       if ($field->getFieldDefinition()->isTranslatable() && !in_array($field_name, $excludedFields)) {
    1068         if (isset($form[$field_name]['widget'])) {
    1069             \Drupal::logger('autotranslate')->debug("$field_name is a widget");
    1070           $this->translateField($paragraphEntity, $form[$field_name]['widget'], $field_name, $field->getFieldDefinition()->getType(), $d_lang, $t_lang);
    1071         }
    1072       }
    1073       // If the field is a reference to paragraphs, handle it recursively.
    1074       if ($this->isParagraphReference($field)) {
    1075             \Drupal::logger('autotranslate')->debug("$field_name is a reference to paragraphs");
    1076         $nestedItems = $paragraphEntity->get($field_name);
    1077         foreach ($nestedItems as $idx => $nestedItem) {
    1078           if ($nestedItem->entity instanceof \Drupal\paragraphs\ParagraphInterface) {
    1079             var_dump($form);
    1080             if (isset($form[$field_name]['widget'][$idx]['subform'])) {
    1081               $this->processParagraphTranslation($nestedItem->entity, $form[$field_name]['widget'][$idx]['subform'], $d_lang, $t_lang, $excludedFields);
    1082             }
    1083           }
    1084         }
    1085       }
    1086     }
    1087   }

    The log states:
    field_accordion_list_content is a reference to paragraphs
    which is expected.

    However, the var_dump($form) gives me:

    array(2) {
    
    ["#attributes"]=>
      array(1) {
        ["class"]=>
        array(1) {
          [0]=>
          string(18) "paragraphs-subform"
        }
      }
      ["#access"]=>
      bool(true)
    }

    $form[$field_name] is therefore not set.

    Does this ring a bell for you?

  • 🇦🇹Austria tgoeg

    Added more logging, the function now looks like this:

    private function processParagraphTranslation($paragraphEntity, &$form, $d_lang, $t_lang, $excludedFields) {
      if (!$paragraphEntity instanceof \Drupal\paragraphs\ParagraphInterface) {
        return;
      }
    
      \Drupal::logger('autotranslate')->debug('Processing paragraph translation for entity: @entity', ['@entity' => $paragraphEntity->id()]);
    
      foreach ($paragraphEntity->getFields() as $field_name => $field) {
        \Drupal::logger('autotranslate')->debug('Field: @field_name', ['@field_name' => $field_name]);
    
        if ($field->getFieldDefinition()->isTranslatable() && !in_array($field_name, $excludedFields)) {
          if (isset($form[$field_name]['widget'])) {
            \Drupal::logger('autotranslate')->debug("$field_name is a widget");
            $this->translateField($paragraphEntity, $form[$field_name]['widget'], $field_name, $field->getFieldDefinition()->getType(), $d_lang, $t_lang);
          } else {
            \Drupal::logger('autotranslate')->debug("$field_name widget is not set");
          }
        }
    
        if ($this->isParagraphReference($field)) {
          \Drupal::logger('autotranslate')->debug("$field_name is a reference to paragraphs");
          $nestedItems = $paragraphEntity->get($field_name);
          foreach ($nestedItems as $idx => $nestedItem) {
            if ($nestedItem->entity instanceof \Drupal\paragraphs\ParagraphInterface) {
              \Drupal::logger('autotranslate')->debug('Processing nested paragraph: @nested_entity', ['@nested_entity' => $nestedItem->entity->id()]);
              if (isset($form[$field_name]['widget'][$idx]['subform'])) {
                \Drupal::logger('autotranslate')->debug('Subform is set for nested paragraph');
                $this->processParagraphTranslation($nestedItem->entity, $form[$field_name]['widget'][$idx]['subform'], $d_lang, $t_lang, $excludedFields);
              } else {
                \Drupal::logger('autotranslate')->debug('Subform is not set for nested paragraph');
              }
            }
          }
        }
      }
    }

    And the output, if I click "Add translation":

    481565	31/Mar 14:54	autotranslate	Debuggen	field_sign_lang_link is a widget
    481564	31/Mar 14:54	autotranslate	Debuggen	Field: field_sign_lang_link
    481563	31/Mar 14:54	autotranslate	Debuggen	field_reading_link is a widget
    481562	31/Mar 14:54	autotranslate	Debuggen	Field: field_reading_link
    481561	31/Mar 14:54	autotranslate	Debuggen	content_translation_changed widget is not set
    481560	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_changed
    481559	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_outdated
    481558	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_source
    481557	31/Mar 14:54	autotranslate	Debuggen	revision_translation_affected widget is not set
    481556	31/Mar 14:54	autotranslate	Debuggen	Field: revision_translation_affected
    481555	31/Mar 14:54	autotranslate	Debuggen	Field: revision_default
    481554	31/Mar 14:54	autotranslate	Debuggen	Field: default_langcode
    481553	31/Mar 14:54	autotranslate	Debuggen	Field: behavior_settings
    481552	31/Mar 14:54	autotranslate	Debuggen	Field: parent_field_name
    481551	31/Mar 14:54	autotranslate	Debuggen	Field: parent_type
    481550	31/Mar 14:54	autotranslate	Debuggen	Field: parent_id
    481549	31/Mar 14:54	autotranslate	Debuggen	Field: created
    481548	31/Mar 14:54	autotranslate	Debuggen	Field: status
    481547	31/Mar 14:54	autotranslate	Debuggen	Field: type
    481546	31/Mar 14:54	autotranslate	Debuggen	Field: langcode
    481545	31/Mar 14:54	autotranslate	Debuggen	Field: revision_id
    481544	31/Mar 14:54	autotranslate	Debuggen	Field: uuid
    481543	31/Mar 14:54	autotranslate	Debuggen	Field: id
    481542	31/Mar 14:54	autotranslate	Debuggen	Processing paragraph translation for entity: 681
    481541	31/Mar 14:54	autotranslate	Debuggen	field_text_editor_field widget is not set
    481540	31/Mar 14:54	autotranslate	Debuggen	Field: field_text_editor_field
    481539	31/Mar 14:54	autotranslate	Debuggen	content_translation_changed widget is not set
    481538	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_changed
    481537	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_outdated
    481536	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_source
    481535	31/Mar 14:54	autotranslate	Debuggen	revision_translation_affected widget is not set
    481534	31/Mar 14:54	autotranslate	Debuggen	Field: revision_translation_affected
    481533	31/Mar 14:54	autotranslate	Debuggen	Field: revision_default
    481532	31/Mar 14:54	autotranslate	Debuggen	Field: default_langcode
    481531	31/Mar 14:54	autotranslate	Debuggen	Field: behavior_settings
    481530	31/Mar 14:54	autotranslate	Debuggen	Field: parent_field_name
    481529	31/Mar 14:54	autotranslate	Debuggen	Field: parent_type
    481528	31/Mar 14:54	autotranslate	Debuggen	Field: parent_id
    481527	31/Mar 14:54	autotranslate	Debuggen	Field: created
    481526	31/Mar 14:54	autotranslate	Debuggen	Field: status
    481525	31/Mar 14:54	autotranslate	Debuggen	Field: type
    481524	31/Mar 14:54	autotranslate	Debuggen	Field: langcode
    481523	31/Mar 14:54	autotranslate	Debuggen	Field: revision_id
    481522	31/Mar 14:54	autotranslate	Debuggen	Field: uuid
    481521	31/Mar 14:54	autotranslate	Debuggen	Field: id
    481520	31/Mar 14:54	autotranslate	Debuggen	Processing paragraph translation for entity: 1921
    481519	31/Mar 14:54	autotranslate	Debuggen	Subform is not set for nested paragraph
    481518	31/Mar 14:54	autotranslate	Debuggen	Processing nested paragraph: 2114
    481517	31/Mar 14:54	autotranslate	Debuggen	Subform is not set for nested paragraph
    481516	31/Mar 14:54	autotranslate	Debuggen	Processing nested paragraph: 2111
    481515	31/Mar 14:54	autotranslate	Debuggen	Subform is not set for nested paragraph
    481514	31/Mar 14:54	autotranslate	Debuggen	Processing nested paragraph: 2113
    481513	31/Mar 14:54	autotranslate	Debuggen	Subform is not set for nested paragraph
    481512	31/Mar 14:54	autotranslate	Debuggen	Processing nested paragraph: 2119
    481511	31/Mar 14:54	autotranslate	Debuggen	field_accordion_list_content is a reference to paragraphs
    481510	31/Mar 14:54	autotranslate	Debuggen	Field: field_accordion_list_content
    481509	31/Mar 14:54	autotranslate	Debuggen	content_translation_changed widget is not set
    481508	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_changed
    481507	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_outdated
    481506	31/Mar 14:54	autotranslate	Debuggen	Field: content_translation_source
    481505	31/Mar 14:54	autotranslate	Debuggen	revision_translation_affected widget is not set
    481504	31/Mar 14:54	autotranslate	Debuggen	Field: revision_translation_affected
    481503	31/Mar 14:54	autotranslate	Debuggen	Field: revision_default
    481502	31/Mar 14:54	autotranslate	Debuggen	Field: default_langcode
    481501	31/Mar 14:54	autotranslate	Debuggen	Field: behavior_settings
    481500	31/Mar 14:54	autotranslate	Debuggen	Field: parent_field_name
    481499	31/Mar 14:54	autotranslate	Debuggen	Field: parent_type
    481498	31/Mar 14:54	autotranslate	Debuggen	Field: parent_id
    481497	31/Mar 14:54	autotranslate	Debuggen	Field: created
    481496	31/Mar 14:54	autotranslate	Debuggen	Field: status
    481495	31/Mar 14:54	autotranslate	Debuggen	Field: type
    481494	31/Mar 14:54	autotranslate	Debuggen	Field: langcode
    481493	31/Mar 14:54	autotranslate	Debuggen	Field: revision_id
    481492	31/Mar 14:54	autotranslate	Debuggen	Field: uuid
    481491	31/Mar 14:54	autotranslate	Debuggen	Field: id
    481490	31/Mar 14:54	autotranslate	Debuggen	Processing paragraph translation for entity: 2115

    Note how "subform is not set for nested paragraph".

    If I click the edit button of a paragraph in the node edit form that's now open:

    481575	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481574	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481573	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481572	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481571	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481570	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481569	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481568	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481567	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481566	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2115
    481865	31/Mar 14:56	autotranslate	Debuggen	field_sign_lang_link is a widget
    481864	31/Mar 14:56	autotranslate	Debuggen	Field: field_sign_lang_link
    481863	31/Mar 14:56	autotranslate	Debuggen	field_reading_link is a widget
    481862	31/Mar 14:56	autotranslate	Debuggen	Field: field_reading_link
    481861	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481860	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481859	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481858	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481857	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481856	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481855	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481854	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481853	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481852	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481851	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481850	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481849	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481848	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481847	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481846	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481845	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481844	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481843	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481842	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 681
    481841	31/Mar 14:56	autotranslate	Debuggen	field_text_editor_field is a widget
    481840	31/Mar 14:56	autotranslate	Debuggen	Field: field_text_editor_field
    481839	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481838	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481837	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481836	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481835	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481834	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481833	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481832	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481831	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481830	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481829	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481828	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481827	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481826	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481825	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481824	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481823	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481822	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481821	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481820	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 1921
    481819	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_title is a widget
    481818	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_title
    481817	31/Mar 14:56	autotranslate	Debuggen	field_one_link is a widget
    481816	31/Mar 14:56	autotranslate	Debuggen	Field: field_one_link
    481815	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481814	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481813	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481812	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481811	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481810	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481809	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481808	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481807	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481806	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481805	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481804	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481803	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481802	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481801	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481800	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481799	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481798	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481797	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481796	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2117
    481795	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481794	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2117
    481793	31/Mar 14:56	autotranslate	Debuggen	field_text_editor_field is a widget
    481792	31/Mar 14:56	autotranslate	Debuggen	Field: field_text_editor_field
    481791	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481790	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481789	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481788	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481787	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481786	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481785	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481784	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481783	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481782	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481781	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481780	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481779	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481778	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481777	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481776	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481775	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481774	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481773	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481772	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2116
    481771	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481770	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2116
    481769	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_conte is a reference to paragraphs
    481768	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_conte
    481767	31/Mar 14:56	autotranslate	Debuggen	field_accordion_flag is a widget
    481766	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_flag
    481765	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481764	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481763	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481762	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481761	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481760	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481759	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481758	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481757	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481756	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481755	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481754	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481753	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481752	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481751	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481750	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481749	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481748	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481747	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481746	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2114
    481745	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481744	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2114
    481743	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_title is a widget
    481742	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_title
    481741	31/Mar 14:56	autotranslate	Debuggen	field_text_editor_field is a widget
    481740	31/Mar 14:56	autotranslate	Debuggen	Field: field_text_editor_field
    481739	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481738	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481737	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481736	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481735	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481734	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481733	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481732	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481731	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481730	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481729	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481728	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481727	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481726	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481725	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481724	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481723	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481722	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481721	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481720	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2110
    481719	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481718	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2110
    481717	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_conte is a reference to paragraphs
    481716	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_conte
    481715	31/Mar 14:56	autotranslate	Debuggen	field_accordion_flag is a widget
    481714	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_flag
    481713	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481712	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481711	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481710	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481709	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481708	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481707	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481706	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481705	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481704	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481703	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481702	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481701	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481700	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481699	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481698	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481697	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481696	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481695	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481694	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2111
    481693	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481692	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2111
    481691	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_title is a widget
    481690	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_title
    481689	31/Mar 14:56	autotranslate	Debuggen	field_text_editor_field is a widget
    481688	31/Mar 14:56	autotranslate	Debuggen	Field: field_text_editor_field
    481687	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481686	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481685	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481684	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481683	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481682	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481681	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481680	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481679	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481678	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481677	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481676	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481675	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481674	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481673	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481672	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481671	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481670	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481669	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481668	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2112
    481667	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481666	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2112
    481665	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_conte is a reference to paragraphs
    481664	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_conte
    481663	31/Mar 14:56	autotranslate	Debuggen	field_accordion_flag is a widget
    481662	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_flag
    481661	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481660	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481659	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481658	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481657	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481656	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481655	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481654	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481653	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481652	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481651	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481650	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481649	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481648	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481647	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481646	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481645	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481644	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481643	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481642	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2113
    481641	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481640	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2113
    481639	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_title is a widget
    481638	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_title
    481637	31/Mar 14:56	autotranslate	Debuggen	field_text_editor_field is a widget
    481636	31/Mar 14:56	autotranslate	Debuggen	Field: field_text_editor_field
    481635	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481634	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481633	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481632	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481631	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481630	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481629	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481628	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481627	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481626	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481625	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481624	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481623	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481622	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481621	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481620	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481619	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481618	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481617	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481616	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2118
    481615	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481614	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2118
    481613	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_entry_conte is a reference to paragraphs
    481612	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_entry_conte
    481611	31/Mar 14:56	autotranslate	Debuggen	field_accordion_flag is a widget
    481610	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_flag
    481609	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481608	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481607	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481606	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481605	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481604	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481603	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481602	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481601	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481600	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name
    481599	31/Mar 14:56	autotranslate	Debuggen	Field: parent_type
    481598	31/Mar 14:56	autotranslate	Debuggen	Field: parent_id
    481597	31/Mar 14:56	autotranslate	Debuggen	Field: created
    481596	31/Mar 14:56	autotranslate	Debuggen	Field: status
    481595	31/Mar 14:56	autotranslate	Debuggen	Field: type
    481594	31/Mar 14:56	autotranslate	Debuggen	Field: langcode
    481593	31/Mar 14:56	autotranslate	Debuggen	Field: revision_id
    481592	31/Mar 14:56	autotranslate	Debuggen	Field: uuid
    481591	31/Mar 14:56	autotranslate	Debuggen	Field: id
    481590	31/Mar 14:56	autotranslate	Debuggen	Processing paragraph translation for entity: 2119
    481589	31/Mar 14:56	autotranslate	Debuggen	Subform is set for nested paragraph
    481588	31/Mar 14:56	autotranslate	Debuggen	Processing nested paragraph: 2119
    481587	31/Mar 14:56	autotranslate	Debuggen	field_accordion_list_content is a reference to paragraphs
    481586	31/Mar 14:56	autotranslate	Debuggen	Field: field_accordion_list_content
    481585	31/Mar 14:56	autotranslate	Debuggen	content_translation_changed widget is not set
    481584	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_changed
    481583	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_outdated
    481582	31/Mar 14:56	autotranslate	Debuggen	Field: content_translation_source
    481581	31/Mar 14:56	autotranslate	Debuggen	revision_translation_affected widget is not set
    481580	31/Mar 14:56	autotranslate	Debuggen	Field: revision_translation_affected
    481579	31/Mar 14:56	autotranslate	Debuggen	Field: revision_default
    481578	31/Mar 14:56	autotranslate	Debuggen	Field: default_langcode
    481577	31/Mar 14:56	autotranslate	Debuggen	Field: behavior_settings
    481576	31/Mar 14:56	autotranslate	Debuggen	Field: parent_field_name

    Now the "Subform is set".

    I switched to the Bartik theme on the frontend now as well, to rule out possible hooks messing with the form, to no avail.
    Is it possible to force load this form somehow? It does not seem to be populated the moment I need it, only later.

    Apart from that, I think there should be an else-branch (with the reference-to-a-paragraph code) when detecting whether we have a widget. It can't be both, I guess?

  • 🇮🇹Italy bigbabert Milano, Italy

    Hi @tgoeg,

    Thanks for the feedback, this looks as a really specific use case, if any other will report same issue i'll evaluate.

    The module is tested and work with Gin Admin Theme from Drupal 10 to drupal 11.

    Best regards

  • 🇦🇹Austria tgoeg

    If I use the bulk translation option, all nested paragraphs do get successfully translated, so this really seems to be very related to the way the form gets created when editing a node manually.
    This somehow seems to say that my configuration should not be too far off, right?

    I'll try to reduce the test case.

    Or could you maybe provide a working config export so I can see what differs to my setup?

Production build 0.71.5 2024