<?xml version="1.0" encoding="utf-8"?>
<grit-part>

  <!-- History UI -->
  <message name="IDS_HISTORY_ACTION_MENU_DESCRIPTION" desc="Text used to identify the history entry drop-down menu for screen readers">
    Actions
  </message>
  <message name="IDS_HISTORY_CANCEL_EDITING_BUTTON" desc="Text for the button to exit editing mode [Length: 7em].">
    Cancel
  </message>
  <message name="IDS_HISTORY_DATE_WITH_RELATIVE_TIME" desc="In the history view, some dates are formatted as 'Today - Wednesday, Nov 7, 2007">
    <ph name="RELATIVE_DATE">$1<ex>Today</ex></ph> - <ph name="FULL_DATE">$2<ex>Wednesday, Nov 7, 2007</ex></ph>
  </message>
  <message name="IDS_HISTORY_DELETE_PRIOR_VISITS_CONFIRM_BUTTON" desc="Text for the button used to confirm the dialog asking if they would like to proceed with deletion.">
    Remove
  </message>
  <message name="IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING" desc="Warning shown before deleting from the history page">
    Are you sure you want to delete these pages from your history?
  </message>
  <message name="IDS_HISTORY_DELETE_SELECTED_ENTRIES_BUTTON" desc="Text for the button to delete selected history entries [Length: 16em].">
    Delete
  </message>
  <message name="IDS_HISTORY_ENTRY_ACCESSIBILITY_DELETE" desc="Name for the accessibility action to delete a single history entry.">
    Delete
  </message>
  <message name="IDS_HISTORY_ENTRY_ACCESSIBILITY_LABEL" desc="Accessibility label for a history entry. Summarizes fields in the history entry (title, domain, and time).">
    <ph name="TITLE"><ex>PI: The Magical Number</ex>$1</ph>, <ph name="DOMAIN"><ex>pi.com</ex>$2</ph>, <ph name="TIME"><ex>3:14</ex>$3</ph>
  </message>
  <message name="IDS_HISTORY_ENTRY_BOOKMARKED" desc="Whether a history entry is bookmarked.">
    Bookmarked
  </message>
  <message name="IDS_HISTORY_ENTRY_SUMMARY" desc="Summary of all the fields in a history entry (time, whether the entry is bookmarked, title, and domain).">
    <ph name="TIME"><ex>3:14</ex>$1</ph> <ph name="BOOKMARKED"><ex>bookmarked</ex>$2</ph> <ph name="TITLE"><ex>PI: The Magical Number</ex>$3</ph> <ph name="DOMAIN"><ex>pi.com</ex>$4</ph>
  </message>
  <message name="IDS_HISTORY_FOUND_SEARCH_RESULTS" desc="Message shown when zero or multiple search results are found.">
    Found <ph name="NUMBER_OF_RESULTS">$1</ph> <ph name="SEARCH_RESULTS"><ex>search results</ex>$2</ph> for '<ph name="SEARCH_STRING">$3</ph>'
  </message>
  <message name="IDS_HISTORY_OTHER_FORMS_OF_HISTORY" desc="The notification at the top of the history page indicating that deleting Chrome browsing history will not delete other forms of history stored at Google My Activity.">
    Your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/a&gt;</ph>
  </message>
  <message name="IDS_HISTORY_LOADING" desc="Text shown when we're loading the user's history">
    Loading...
  </message>
  <message name="IDS_HISTORY_MORE_FROM_SITE" desc="Command in the history entry drop-down menu. Shows more history entries from the same site.">
    More from this site
  </message>
  <message name="IDS_HISTORY_NO_RESULTS" desc="Text shown when no history entries are found.">
    Your browsing history appears here
  </message>
  <message name="IDS_HISTORY_NO_SEARCH_RESULTS" desc="Text shown when no history search results have been found">
    No search results found
  </message>
  <if expr="not use_titlecase">
  <message name="IDS_HISTORY_OPEN_CLEAR_BROWSING_DATA_DIALOG" desc="Title of the button that will open the clear browsing data dialog [Length: 16em].">
    Clear browsing data...
  </message>
  </if>
  <if expr="use_titlecase">
    <message name="IDS_HISTORY_OPEN_CLEAR_BROWSING_DATA_DIALOG" desc="In Title Case: Title of the button that will open the clear browsing data dialog [Length: 16em].">
      Clear Browsing Data...
    </message>
  </if>
  <if expr="not is_android">
    <message name="IDS_HISTORY_OTHER_SESSIONS_COLLAPSE_SESSION" desc="In the 'Other Sessions' menu on the history page, the label for the command to collapse (hide) the list of windows and tabs in a session.">
      Collapse list
    </message>
    <message name="IDS_HISTORY_OTHER_SESSIONS_EXPAND_SESSION" desc="In the 'Other Sessions' menu on the history page, the label for the command to expand (uncollapse) the list of windows and tabs in a session.">
      Expand list
    </message>
    <message name="IDS_HISTORY_OTHER_SESSIONS_HIDE_FOR_NOW" desc="In the 'Other Sessions' menu on the history page, the label for the command to remove entry corresponding to a session.">
      Hide for now
    </message>
    <message name="IDS_HISTORY_OTHER_SESSIONS_OPEN_ALL" desc="In the 'Other Sessions' menu on the history page, the label for the command to open all tabs and windows from a session.">
      Open all
    </message>
  </if>
  <message name="IDS_HISTORY_REMOVE_BOOKMARK" desc="Tooltip shown when hovered over a history entry's bookmark star. When clicked, removes the bookmark.">
    Remove bookmark
  </message>
  <message name="IDS_HISTORY_REMOVE_PAGE" desc="Command in the history entry drop-down menu. Removes a page from the history.">
    Remove from history
  </message>
  <message name="IDS_HISTORY_REMOVE_SELECTED_ITEMS" desc="Title of the button that allows the user to remove the selected history items">
    Remove selected items
  </message>
  <message name="IDS_HISTORY_SEARCH_BUTTON" desc="Title of the button in the history page that triggers a search">
    Search history
  </message>
  <message name="IDS_HISTORY_SEARCH_RESULT" desc="Used when a single result is found.">
    search result
  </message>
  <message name="IDS_HISTORY_SEARCH_RESULTS" desc="Used when plural/multiple results are found.">
    search results
  </message>
  <if expr="not use_titlecase">
    <message name="IDS_HISTORY_SHOW_HISTORY" desc="The show history menu in the app menu">
      &amp;History
    </message>
  </if>
  <if expr="use_titlecase">
    <message name="IDS_HISTORY_SHOW_HISTORY" desc="In Title Case: The show history menu in the app menu">
      &amp;History
    </message>
  </if>
  <message name="IDS_HISTORY_SHOWFULLHISTORY_LINK" desc="The label of the Show Full History link at the bottom of the back/forward menu.">
    Show Full History
  </message>
  <message name="IDS_HISTORY_START_EDITING_BUTTON" desc="Text for the button to enter editing mode, which allows the user to delete one or more history entries [Length: 7em].">
    Edit
  </message>
  <message name="IDS_HISTORY_TITLE" desc="Title for the history tab.">
    History
  </message>
  <message name="IDS_HISTORY_UNKNOWN_DEVICE" desc="On the dropdown menu for a history entry, the text that is shown instead of a device name, when the device name is not known.">
    Unknown device
  </message>

</grit-part>
