<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_string_pairs_from_button_element(xib_file, results, button, special_ui_components_prefix):
 """ Adds strings pairs from a button xib element. Args: xib_file (str):
 Path to the xib file. results (list):
 The list to add the results to. button(element):
 The button element from the xib, to extract the string pairs from. special_ui_components_prefix(str):
 A custom prefix for internationalize component to allow (default is only JT) """

    button_entry_comment = extract_element_internationalized_comment(button)
    if button_entry_comment is None:
        return

    for state in button.getElementsByTagName('state'):
        state_name = state.attributes['key'].value
        state_entry_comment = button_entry_comment + " - " + state_name + " state of button"
        if not add_string_pairs_from_attributed_ui_element(results, state, state_entry_comment):
            try:
                button_entry_key = state.attributes['title'].value
            except KeyError:
                try:
                    button_entry_key = state.getElementsByTagName('string')[0].firstChild.nodeValue
                except Exception:
                    continue

            results.append((button_entry_key, state_entry_comment))

    warn_if_element_not_of_class(button, 'Button', special_ui_components_prefix)