def normalize_names(self):
        """
        It is internally used to normalize the name of the widgets.
        It means a widget named foo:vbox-dialog in glade
        is refered self.vbox_dialog in the code.

        It also sets a data "prefixes" with the list of
        prefixes a widget has for each widget.
        """
        for widget in self.get_widgets():
            if isinstance(widget, Gtk.Buildable):
                widget_name = Gtk.Buildable.get_name(widget)
                prefixes_name_l = widget_name.split(":")
                prefixes = prefixes_name_l[:-1]
                widget_api_name = prefixes_name_l[-1]
                widget_api_name = "_".join(re.findall(tokenize.Name, widget_api_name))
                widget_name = Gtk.Buildable.set_name(widget, widget_api_name)
                if hasattr(self, widget_api_name):
                    raise AttributeError(
                        "instance %s already has an attribute %s" % (self, widget_api_name)
                    )
                else:
                    setattr(self, widget_api_name, widget)
                    if prefixes:
                        # TODO is is a guess
                        Gtk.Buildable.set_data(widget, "prefixes", prefixes)