def _on_entry_changed(self, entry):
        self.btn_add_term.props.sensitive = True
        self.eb_add_term_errors.hide()

        src_text = self.ent_source.get_text()
        tgt_text = self.ent_target.get_text()

        dup = self.term_model.get_duplicates(src_text, tgt_text)
        if dup:
            self.lbl_add_term_errors.set_text(_("Identical entry already exists."))
            self.eb_add_term_errors.modify_bg(gtk.STATE_NORMAL, gdk.color_parse(current_theme["warning_bg"]))
            self.eb_add_term_errors.show_all()
            self.btn_add_term.props.sensitive = False
            return

        same_src_units = self.term_model.get_units_with_source(src_text)
        if src_text and same_src_units:
            # We want to separate multiple terms with the correct list
            # separator for the UI language:
            separator = lang_factory.getlanguage(get_ui_lang()).listseperator

            # l10n: The variable is an existing term formatted for emphasis. The default is bold formatting, but you can remove/change the markup if needed. Leave it unchanged if you are unsure.
            translations = separator.join([_("<b>%s</b>") % (u.target) for u in same_src_units])
            errormsg = _("Existing translations: %(translations)s") % {"translations": translations}
            self.lbl_add_term_errors.set_markup(errormsg)
            self.eb_add_term_errors.modify_bg(gtk.STATE_NORMAL, gdk.color_parse(current_theme["warning_bg"]))
            self.eb_add_term_errors.show_all()
            return
    def __init__(self, controller):
        self.controller = controller
        main_controller = controller.main_controller

        self.popup_content = self._create_popup_content()
        self._create_checks_button(self.popup_content)
        self._create_menu_item()
        main_controller.store_controller.connect('store-closed', self._on_store_closed)

        self._listsep = lang_factory.getlanguage(get_ui_lang()).listseperator
        self._prev_failures = None