code: def add_string_pairs_from_button_element(xib_file, results, button, special_ui_components_prefix):
      
      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)
docs: 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)