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

  <if expr="is_android or is_ios">
    <message name="IDS_NTP_TITLE_NO_SUGGESTIONS" desc="On the New Tab Page, title text explaining there is no content." formatter_data="android_java">
      That’s all for now
    </message>
  </if>

  <message name="IDS_NTP_ARTICLE_SUGGESTIONS_NOT_AVAILABLE" desc="On the New Tab Page, text of a toast transiently shown to the user to indicate that no article could be fetched.">
    Articles aren't available right now
  </message>

  <if expr="use_titlecase">
    <message name="IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_HEADER" desc="Header of the articles section, which is a list of news articles displayed as cards on the New Tab Page.">
      Articles for You
    </message>
  </if>

  <if expr="not use_titlecase">
    <message name="IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_HEADER" desc="Header of the articles section, which is a list of news articles displayed as cards on the New Tab Page.">
      Articles for you
    </message>
  </if>

  <message name="IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_EMPTY" desc="On the New Tab Page, text of the card explaining to the user that they can expect to see suggested articles in this area in the future.">
    Your suggested articles appear here
  </message>

  <message name="IDS_NTP_BOOKMARK_SUGGESTIONS_SECTION_HEADER" desc="Header of the bookmarks section. The bookmarks section shows a list of recently *visited* bookmarks, irrespective of their creation date. It is *not* a list of recently *created* bookmarks">
    Recent bookmarks
  </message>

  <message name="IDS_NTP_BOOKMARK_SUGGESTIONS_SECTION_EMPTY" desc="On the New Tab Page, text of the card explaining to the user that they can expect to see bookmarks in this area in the future.">
    Your recently visited bookmarks appear here
  </message>

  <message name="IDS_NTP_FOREIGN_SESSIONS_SUGGESTIONS_SECTION_HEADER" desc="Header of the foreign sessions, which is a list of the user's most recently visited tabs on other devices displayed as cards on the New Tab Page.">
    Tabs from other devices
  </message>

  <message name="IDS_NTP_FOREIGN_SESSIONS_SUGGESTIONS_SECTION_EMPTY" desc="On the New Tab Page, text of the card explaining to the user that they can expect to see tabs from other devices in this area in the future.">
    Your recent tabs from other devices appear here
  </message>

  <!-- When you change this string, please change IDS_NTP_PHYSICAL_WEB_PAGE_SUGGESTIONS_SECTION_EMPTY description accordingly. -->
  <message name="IDS_NTP_PHYSICAL_WEB_PAGE_SUGGESTIONS_SECTION_HEADER" desc="Header of the physical web section. The physical web section shows a list of physical web pages available near the user. A physical web page is a URL transmitted over bluetooth by a low power device (a beacon). The user must be at most 100 meters (generally even closer) away from the beacon to receive the URL. This allows the URL to be context based (e.g. one is at a train station and the schedule is available as a physical web page).">
    Nearby
  </message>

  <message name="IDS_NTP_PHYSICAL_WEB_PAGE_SUGGESTIONS_SECTION_EMPTY" desc="On the New Tab Page, text of the card explaining to the user that they can expect to see physical web page suggestions in this area in the future, but currently this area is empty. Connection to the physical web section header (which is currently 'Nearby') must be clear, but the words (i.e. translation of 'nearby') may differ. The physical web section shows a list of physical web pages available near the user. A physical web page is a URL transmitted over bluetooth by a low power device (a beacon). The user must be at most 100 meters (generally even closer) away from the beacon to receive the URL. This allows the URL to be context based (e.g. one is at a train station and the schedule is available as a physical web page).">
    Your nearby suggestions appear here
  </message>

  <if expr="use_titlecase">
    <message name="IDS_NTP_READING_LIST_SUGGESTIONS_SECTION_HEADER" desc="Header of the Reading List section. The Reading List section shows a list of unread pages from the Reading List.">
      Reading List
    </message>
  </if>

  <if expr="not use_titlecase">
    <message name="IDS_NTP_READING_LIST_SUGGESTIONS_SECTION_HEADER" desc="Header of the Reading List section. The Reading List section shows a list of unread pages from the Reading List.">
      Reading list
    </message>
  </if>

  <message name="IDS_NTP_READING_LIST_SUGGESTIONS_SECTION_EMPTY" desc="On the New Tab Page, text of the card explaining to the user that they can expect to see Reading List articles in this area in the future.">
    Pages from your reading list appear here
  </message>

  <message name="IDS_NTP_RECENT_TAB_SUGGESTIONS_SECTION_HEADER" desc="Header of the recent tabs section, which is a list of recent open tabs, which are currently opened and were automatically saved for offline consumption. This list is displayed as cards on the New Tab Page. The saved version is opened only if there are problems with the data connection (e.g. slow or absent).">
    Open tabs
  </message>

  <message name="IDS_NTP_RECENT_TAB_SUGGESTIONS_SECTION_EMPTY" desc="On the New Tab Page, text of the card explaining to the user that they can expect to see recent open tabs in this area in the future, but currently this area is empty. Recent open tabs - the tabs which are currently opened and were automatically saved for offline consumption.">
    Your open tabs appear here
  </message>

  <message name="IDS_NTP_NOTIFICATIONS_READ_THIS_STORY_AND_MORE" desc="Used in notifications about news articles. The notification first gives the title of a headline article, then uses this string to identify the publisher of that article and the number of additional articles available to read. Articles come in batches of 10, from a variety of publishers, so usually the number of additional articles is 9 (headline article + 9 others = 10 articles).">
    From <ph name="ARTICLE_PUBLISHER">$1<ex>World News Corporation</ex></ph>. Read this and <ph name="OTHER_ARTICLE_COUNT">$2<ex>9</ex></ph> other stories.
  </message>

</grit-part>
