Translation text's meaning

I’m translating the Blender’s UI into Vietnamese, and I stumbled over this text line:

#: source/blender/modifiers/intern/MOD_nodes.cc:1487
msgid “No group output attributes connected”

searched in the source code and it comes from this portion of code:

static void output_attribute_panel_draw(const bContext *C, Panel *panel)
{
  uiLayout *layout = panel->layout;

  PointerRNA *ptr = modifier_panel_get_property_pointers(panel, nullptr);
  NodesModifierData *nmd = static_cast<NodesModifierData *>(ptr->data);

  uiLayoutSetPropSep(layout, true);
  uiLayoutSetPropDecorate(layout, true);

  bool has_output_attribute = false;
  if (nmd->node_group != nullptr && nmd->settings.properties != nullptr) {
    LISTBASE_FOREACH (bNodeSocket *, socket, &nmd->node_group->outputs) {
      if (socket_type_has_attribute_toggle(*socket)) {
        has_output_attribute = true;
        draw_property_for_output_socket(*C, layout, *nmd, ptr, *socket);
      }
    }
  }
  if (!has_output_attribute) {
    uiItemL(layout, TIP_("No group output attributes connected"), ICON_INFO);
  }
}

Looked like the code is searching to see if the output is connected to an attribute, or expecting it is. If it doesn’t find any connected attribute then it will display the tip text listed above, but I’m not sure. It appeared that Hans Goudey submit this change 2 months ago. If anybody knows what this mean exactly please give me some feedback. Working as a translator with no connection to developers it’s so hard trying to read someone’s mind, even though speaking the same language.

Best regards,
Hoang Tran

Hmm, on first glance: if a node group has no outputs then it makes no sense… ? So maybe the text should be just: No node group outputs.

Looking at the code:

bool has_output_attribute = false;

Then some code which doesn’t seem to change this value …??? And then checking if this is false.

if (!has_output_attribute) { …

I’m not sure if this is wrong code !?!?

No the value of ‘has_output_attribute’ is changed within the FOR loop (LISTBASE_FOREACH). Looks like a for each in a set/list/collection etc… loop type. I’m not developing Blender so I’m not familiar (never found out) exactly what the MACRO is doing under the hood. The code make sense, but I’m not sure if it was expecting an output in a NODE-GROUP of attributes or the output from the first element here is expecting to be connected to a group of attributes next.