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

      <message name="IDS_DEFAULT_TAB_TITLE" desc="The default title in a tab.">
        Untitled
      </message>
      <message name="IDS_DOWNLOAD_TAB_TITLE" desc="The title for an empty Tab, which displays Download Manager.">
        Download
      </message>

      <!-- Sad Tab Strings -->
      <message name="IDS_SAD_TAB_TITLE" desc="The title of the sad tab page that is shown when a tab crashes. This is intended to be a humorous exclamation of dismay." formatter_data="android_java">
        Aw, Snap!
      </message>
      <message name="IDS_SAD_TAB_MESSAGE" desc="The message displayed on the sad tab page." formatter_data="android_java">
        Something went wrong while displaying this webpage.
      </message>
      <message name="IDS_SAD_TAB_HELP_MESSAGE" desc="The help message displayed on the sad tab page, with IDS_SAD_TAB_HELP_LINK embedded as a link to help.">
        If you're seeing this frequently, try these <ph name="HELP_LINK">$1<ex>suggestions</ex></ph>.
      </message>
      <message name="IDS_SAD_TAB_HELP_LINK" desc="The link text displayed on the sad tab page linking the user to a help article.">
        suggestions
      </message>
      <message name="IDS_SAD_TAB_RELOAD_LABEL" desc="Button label in the sad tab page for reloading a page." formatter_data="android_java">
        Reload
      </message>
      <if expr="is_android or is_ios">
        <message name="IDS_SAD_TAB_SEND_FEEDBACK_LABEL" desc="Button label in the sad tab page for sending feedback. This label replaces the reload button after a crash happens twice in a row." formatter_data="android_java">
          Send Feedback
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_SAD_TAB_OOM_TITLE" desc="The title of the web page displayed if content in Chrome browser does not load due to the browser being out of memory, and a reload failed to fix the issue.">
          Not enough memory to open this page
        </message>
      </if>
      <message name="IDS_SAD_TAB_RELOAD_TITLE" desc="The title of the web page displayed if content in Chrome browser does not load for an unknown reason, and a reload failed to fix the issue." formatter_data="android_java">
        Can't open this page
      </message>
      <message name="IDS_SAD_TAB_OOM_MESSAGE_TABS" desc="The message displayed on the web page if content in Chrome browser does not load due to the browser being out of memory, a reload failed to fix the issue and other tabs are open.">
        Try closing other tabs or programs to free up memory.
      </message>
      <message name="IDS_SAD_TAB_OOM_MESSAGE_NOTABS" desc="The message displayed on the web page if content in Chrome browser does not load due to the browser being out of memory, a reload failed to fix the issue and no other tabs are open.">
        Try exiting other programs to free up memory.
      </message>
      <message name="IDS_SAD_TAB_RELOAD_TRY" desc="The message displayed on the web page if content in Chrome browser does not load and a reload failed to fix the issue. Introduces a bulleted list of solutions/tips for the user to try." formatter_data="android_java">
        Try the following tips:
      </message>
      <if expr="is_macosx">
        <message name="IDS_SAD_TAB_RELOAD_INCOGNITO" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to open the web page in Chrome's Incognito mode.">
          Open page in a new Incognito window (⇧⌘N)
        </message>
      </if>
      <if expr="is_win or is_linux or is_fuchsia or chromeos">
        <message name="IDS_SAD_TAB_RELOAD_INCOGNITO" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to open the web page in Chrome's Incognito mode.">
          Open page in a new Incognito window (Ctrl-Shift-N)
        </message>
      </if>
      <if expr="is_android or is_ios">
        <message name="IDS_SAD_TAB_RELOAD_INCOGNITO" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to open the web page in Chrome's Incognito mode." formatter_data="android_java">
          Open page in a new Incognito tab
        </message>
      </if>
      <if expr="is_macosx or chromeos">
        <message name="IDS_SAD_TAB_RELOAD_CLOSE_TABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other Chrome tabs or apps running on their computer (Mac, Chrome OS).">
          Close other tabs or apps
        </message>
      </if>
      <if expr="is_linux and not chromeos">
        <message name="IDS_SAD_TAB_RELOAD_CLOSE_TABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other Chrome tabs or programs running on their computer.">
          Close other tabs or programs
        </message>
      </if>
      <if expr="is_macosx or chromeos or is_ios">
        <message name="IDS_SAD_TAB_RELOAD_CLOSE_NOTABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other apps running on their computer or device.">
          Close other apps
        </message>
      </if>
      <if expr="is_linux and not chromeos">
        <message name="IDS_SAD_TAB_RELOAD_CLOSE_NOTABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other programs running on their computer (Linux).">
          Close other programs
        </message>
      </if>
      <if expr="_google_chrome">
        <message name="IDS_SAD_TAB_RELOAD_RESTART_BROWSER" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart Chrome." formatter_data="android_java">
          Restart Chrome
        </message>
      </if>
      <if expr="not _google_chrome">
        <message name="IDS_SAD_TAB_RELOAD_RESTART_BROWSER" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart Chromium." formatter_data="android_java">
          Restart Chromium
        </message>
      </if>
      <if expr="is_win or is_linux or is_macosx or is_fuchsia or chromeos">
        <message name="IDS_SAD_TAB_RELOAD_RESTART_DEVICE" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart their computer.">
          Restart your computer
        </message>
      </if>
      <if expr="is_android or is_ios">
        <message name="IDS_SAD_TAB_RELOAD_RESTART_DEVICE" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart their device (i.e. phone or tablet)." formatter_data="android_java">
          Restart your device
        </message>
      </if>
      <if expr="is_android or is_ios">
        <message name="IDS_SAD_TAB_RELOAD_LEARN_MORE" desc="The link text displayed on the sad tab page pointing the users to a help article if a reload failed to fix the issue." meaning="Learn more about web pages that fail to load" formatter_data="android_java">
          Learn more
        </message>
      </if>
      <if expr="is_win or is_linux or is_macosx or is_fuchsia or chromeos">
        <message name="IDS_SAD_TAB_ERROR_CODE" desc="The message displayed on the crashed web page indicating the type of the crash.">
          Error code: <ph name="ERROR_CODE">$1<ex>STATUS_ACCESS_VIOLATION</ex></ph>
        </message>
</if>

      <!-- New Tab -->
      <message name="IDS_NEW_TAB_TITLE"
               desc="Title of the new tab page, not to be confused with the action of opening a new tab.">
        New Tab
      </message>
      <message name="IDS_NEW_INCOGNITO_TAB_TITLE"
               desc="Title of the new incognito tab page, not to be confused with the action of opening a new incognito tab.">
        New Incognito Tab
      </message>
      <if expr="not is_android">
        <message name="IDS_NEW_TAB_OTR_HEADING"
                 desc="Heading used when a person opens an OTR window">
          You’ve gone Incognito
        </message>
        <message name="IDS_NEW_TAB_OTR_DESCRIPTION"
                 desc="Used when a person opens an OTR window">
          Pages you view in Incognito tabs won’t stick around in your browser’s history, cookie store, or search history after you’ve closed all of your Incognito tabs. Any files you download or bookmarks you create will be kept.
        </message>
        <message name="IDS_NEW_TAB_OTR_LEARN_MORE_LINK"
                 desc="OTR window link text to learn more">
          Learn more
        </message>
        <message name="IDS_NEW_TAB_OTR_MESSAGE_WARNING"
                 desc="OTR window warning message. This follows the IDS_NEW_TAB_OTR_DESCRIPTION paragraph">
          However, you aren’t invisible. Going Incognito doesn’t hide your browsing from your employer, your internet service provider, or the websites you visit.
        </message>
      </if>
      <message name="IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE"
         desc="Action link text to undo removing a thumbnail from the most visited section.">
        Undo
      </message>

      <!-- Incognito Tab redesign strings -->
      <!-- TODO(msramek): Merge with the above section once this is fully launched. -->

      <message name="IDS_NEW_TAB_OTR_TITLE" desc="Title of the Incognito new tab page. The Incognito mode provides private browsing experience by hiding browsing activity from other people using the same device. However, it does not make the user completely invisible or anonymous; please don't translate it as such." formatter_data="android_java">
        You’ve gone Incognito
      </message>
      <message name="IDS_NEW_TAB_OTR_SUBTITLE" desc="Subtitle of the Incognito new tab page, explaining to the user that the Incognito mode hides their browsing activity from other people using the same device. The second sentence clarifies that there are two important exceptions from this rule - downloaded files and added bookmarks will be persisted even after the Incognito session is closed." formatter_data="android_java">
        Now you can browse privately, and other people who use this device won’t see your activity. However, downloads and bookmarks will be saved.
      </message>
      <message name="IDS_NEW_TAB_OTR_SUBTITLE_WITH_READING_LIST" desc="Subtitle of the Incognito new tab page, explaining to the user that the Incognito mode hides their browsing activity from other people using the same device. The second sentence clarifies that there are two important exceptions from this rule - downloaded files and added bookmarks will be persisted even after the Incognito session is closed." formatter_data="android_java">
        Now you can browse privately, and other people who use this device won’t see your activity. However, downloads, bookmarks and reading list items will be saved.
      </message>
       <if expr="_google_chrome">
        <message name="IDS_NEW_TAB_OTR_NOT_SAVED" desc="Bullet points listing data that are not saved in the Incognito mode. 'Browsing history' means a history of visited websites. 'Cookies and site data' refers to data saved by websites on the user's device (e.g. sign-in state, preferences, etc.). 'Information entered in forms' refers to names, addresses, passwords etc. that users enter into forms on the web." formatter_data="android_java">
          Chrome <ph name="BEGIN_EMPHASIS">&lt;em&gt;</ph>won’t save<ph name="END_EMPHASIS">&lt;/em&gt;</ph> the following information:
          <ph name="BEGIN_LIST">&lt;ul&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Your browsing history
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Cookies and site data
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Information entered in forms
          <ph name="END_LIST">&lt;/ul&gt;</ph>
        </message>
      </if>
      <if expr="not _google_chrome">
        <message name="IDS_NEW_TAB_OTR_NOT_SAVED" desc="Bullet points listing data that are not saved in the Incognito mode. 'Browsing history' means a history of visited websites. 'Cookies and site data' refers to data saved by websites on the user's device (e.g. sign-in state, preferences, etc.). 'Information entered in forms' refers to names, addresses, passwords etc. that users enter into forms on the web." formatter_data="android_java">
          Chromium <ph name="BEGIN_EMPHASIS">&lt;em&gt;</ph>won’t save<ph name="END_EMPHASIS">&lt;/em&gt;</ph> the following information:
          <ph name="BEGIN_LIST">&lt;ul&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Your browsing history
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Cookies and site data
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Information entered in forms
          <ph name="END_LIST">&lt;/ul&gt;</ph>
        </message>
      </if>
      <message name="IDS_NEW_TAB_OTR_VISIBLE" desc="Bullet points listing entities that might be able to see the user's Incognito activity. The bullet points elaborate on the fact that Incognito only provides privacy with respect to other users on the same device. Websites you visit still know that you visited them. Your employer, school, and/or internet service provider can still monitor network traffic, even if it comes from the Incognito mode." formatter_data="android_java">
        Your activity <ph name="BEGIN_EMPHASIS">&lt;em&gt;</ph>might still be visible<ph name="END_EMPHASIS">&lt;/em&gt;</ph> to:
        <ph name="BEGIN_LIST">&lt;ul&gt;</ph>
          <ph name="LIST_ITEM">&lt;li&gt;</ph>Websites you visit
          <ph name="LIST_ITEM">&lt;li&gt;</ph>Your employer or school
          <ph name="LIST_ITEM">&lt;li&gt;</ph>Your internet service provider
        <ph name="END_LIST">&lt;/ul&gt;</ph>
      </message>
      <message name="IDS_NEW_TAB_OTR_COOKIE_CONTROLS_CONTROLLED_TOOLTIP_TEXT"
               desc="Text displayed in the settings tooltip when third-party cookie blocking is managed or turned on by the user."
               formatter_data="android_java">
        This setting is controlled in Cookies settings.
      </message>
      <message name="IDS_NEW_TAB_OTR_THIRD_PARTY_COOKIE" desc="Label for the Block 3rd-party cookie checkbox on the Cookies category." formatter_data="android_java">
        Block third-party cookies
      </message>
      <message name="IDS_NEW_TAB_OTR_THIRD_PARTY_COOKIE_SUBLABEL" desc="A sub-label below the Block 3rd-party cookie checkbox." formatter_data="android_java">
        When on, sites can't use cookies that track you across the web. Features on some sites may break.
      </message>

      <!-- Revamped Incognito New Tab Page strings -->

      <if expr="_google_chrome">
        <message name="IDS_REVAMPED_INCOGNITO_NTP_TITLE" desc="Title of the Incognito new tab page." formatter_data="android_java">
          Incognito in Chrome
        </message>
      </if>
      <if expr="not _google_chrome">
        <message name="IDS_REVAMPED_INCOGNITO_NTP_TITLE" desc="Title of the Incognito new tab page." formatter_data="android_java">
          Incognito in Chromium
        </message>
      </if>
      <message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_HEADER" desc="Header for the 'Incognito does' section that informs users about what happens while browsing Incognito: browsing activity, search history and information entered in forms are not saved locally." formatter_data="android_java">
        What Incognito does
      </message>
      <if expr="_google_chrome">
        <message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_DESCRIPTION" desc="Paragraph that informs users about Incognito's functionalities: browsing activity, search history and information entered in forms are not saved locally, they are cleared after closing all Incognito tabs. 'Browsing activity' refers to the browsing history (list of visited websites) and the cookies (data saved by websites on the user's device such as: sign-in state, preferences, etc.). 'Search history from this device' means that searches will not be saved locally or used as search suggestions in the future. 'Information entered in forms' refers to names, addresses, passwords etc. that users enter into forms on the web." formatter_data="android_java">
          When you close all Chrome Incognito tabs, your activity in those tabs is cleared from this device:
          <ph name="BEGIN_LIST">&lt;ul&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Browsing activity<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Search history<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Information entered in forms<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
          <ph name="END_LIST">&lt;/ul&gt;</ph>
        </message>
      </if>
      <if expr="not _google_chrome">
        <message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_DESCRIPTION" desc="Paragraph that informs users about Incognito's functionalities: browsing activity, search history and information entered in forms are not saved locally, they are cleared after closing all Incognito tabs. 'Browsing activity' refers to the browsing history (list of visited websites) and the cookies (data saved by websites on the user's device such as: sign-in state, preferences, etc.). 'Search history from this device' means that searches will not be saved locally or used as search suggestions in the future. 'Information entered in forms' refers to names, addresses, passwords etc. that users enter into forms on the web." formatter_data="android_java">
          When you close all Chromium Incognito tabs, your activity in those tabs is cleared from this device:
          <ph name="BEGIN_LIST">&lt;ul&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Browsing activity<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Search history<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
            <ph name="LIST_ITEM">&lt;li&gt;</ph>Information entered in forms<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
          <ph name="END_LIST">&lt;/ul&gt;</ph>
        </message>
      </if>
      <message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_NOT_HEADER" desc="Header for the 'Incognito doesn’t do' section that informs users that they are not invisible online." formatter_data="android_java">
        What Incognito doesn’t do
      </message>
      <message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_NOT_DESCRIPTION" desc="Paragraph that informs users that their online activity is still visible while using Incognito. The bullet points list some examples of entities to which users are not invisible in Incognito and what they can observe. The bullet points elaborate on the fact that Incognito only provides privacy with respect to other users on the same device. Websites you visit still know that you visited them. Employers and schools can still track users' browsing activity and internet service providers can still monitor web traffic, even if it comes from the Incognito mode." formatter_data="android_java">
        Incognito does not make you invisible online:
        <ph name="BEGIN_LIST">&lt;ul&gt;</ph>
          <ph name="LIST_ITEM">&lt;li&gt;</ph>Sites and the services they use can see visits<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
          <ph name="LIST_ITEM">&lt;li&gt;</ph>Employers or schools can track browsing activity<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
          <ph name="LIST_ITEM">&lt;li&gt;</ph>Internet service providers can monitor web traffic<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
        <ph name="END_LIST">&lt;/ul&gt;</ph>
      </message>
      <if expr="_google_chrome">
        <message name="IDS_REVAMPED_INCOGNITO_NTP_LEARN_MORE" desc="The link text displayed on the Incognito new tab page pointing users to the Incognito learn more page." formatter_data="android_java">
          <ph name="BEGIN_LINK">&lt;a&gt;</ph>Learn more about Incognito in Chrome<ph name="END_LINK">&lt;/a&gt;</ph>
        </message>
      </if>
      <if expr="not _google_chrome">
        <message name="IDS_REVAMPED_INCOGNITO_NTP_LEARN_MORE" desc="The link text displayed on the Incognito new tab page pointing users to the Incognito learn more page." formatter_data="android_java">
          <ph name="BEGIN_LINK">&lt;a&gt;</ph>Learn more about Incognito in Chromium<ph name="END_LINK">&lt;/a&gt;</ph>
        </message>
      </if>
      <message name="IDS_REVAMPED_INCOGNITO_NTP_OTR_THIRD_PARTY_COOKIE" desc="Label for the Block 3rd-party cookie checkbox on the Cookies category." formatter_data="android_java">
        Block third party cookies in Incognito
      </message>
      <message name="IDS_REVAMPED_INCOGNITO_NTP_OTR_THIRD_PARTY_COOKIE_SUBLABEL" desc="A sub-label below the Block 3rd-party cookie checkbox." formatter_data="android_java">
        Sites can't use cookies that track you across the web. Features on some sites may break.
      </message>

</grit-part>
