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

<!--
This file contains definitions of resources that will be translated for each
locale.  The variables is_win, is_macosx, is_linux, and is_posix are available
for making strings OS specific.  Other platform defines such as use_titlecase
are declared in build/common.gypi.
-->

<grit base_dir="." latest_public_release="0" current_release="1"
      source_lang_id="en" enc_check="möl">
  <outputs>
    <output filename="grit/generated_resources.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="generated_resources_am.pak" type="data_package" lang="am" />
    <output filename="generated_resources_ar.pak" type="data_package" lang="ar" />
    <output filename="generated_resources_bg.pak" type="data_package" lang="bg" />
    <output filename="generated_resources_bn.pak" type="data_package" lang="bn" />
    <output filename="generated_resources_ca.pak" type="data_package" lang="ca" />
    <output filename="generated_resources_cs.pak" type="data_package" lang="cs" />
    <output filename="generated_resources_da.pak" type="data_package" lang="da" />
    <output filename="generated_resources_de.pak" type="data_package" lang="de" />
    <output filename="generated_resources_el.pak" type="data_package" lang="el" />
    <output filename="generated_resources_en-GB.pak" type="data_package" lang="en-GB" />
    <output filename="generated_resources_en-US.pak" type="data_package" lang="en" />
    <output filename="generated_resources_es.pak" type="data_package" lang="es" />
    <if expr="is_ios">
      <!-- iOS uses es-MX for es-419 -->
      <output filename="generated_resources_es-MX.pak" type="data_package" lang="es-419" />
    </if>
    <if expr="not is_ios">
      <output filename="generated_resources_es-419.pak" type="data_package" lang="es-419" />
    </if>
    <output filename="generated_resources_et.pak" type="data_package" lang="et" />
    <output filename="generated_resources_fa.pak" type="data_package" lang="fa" />
    <output filename="generated_resources_fake-bidi.pak" type="data_package" lang="fake-bidi" />
    <output filename="generated_resources_fi.pak" type="data_package" lang="fi" />
    <output filename="generated_resources_fil.pak" type="data_package" lang="fil" />
    <output filename="generated_resources_fr.pak" type="data_package" lang="fr" />
    <output filename="generated_resources_gu.pak" type="data_package" lang="gu" />
    <output filename="generated_resources_he.pak" type="data_package" lang="he" />
    <output filename="generated_resources_hi.pak" type="data_package" lang="hi" />
    <output filename="generated_resources_hr.pak" type="data_package" lang="hr" />
    <output filename="generated_resources_hu.pak" type="data_package" lang="hu" />
    <output filename="generated_resources_id.pak" type="data_package" lang="id" />
    <output filename="generated_resources_it.pak" type="data_package" lang="it" />
    <output filename="generated_resources_ja.pak" type="data_package" lang="ja" />
    <output filename="generated_resources_kn.pak" type="data_package" lang="kn" />
    <output filename="generated_resources_ko.pak" type="data_package" lang="ko" />
    <output filename="generated_resources_lt.pak" type="data_package" lang="lt" />
    <output filename="generated_resources_lv.pak" type="data_package" lang="lv" />
    <output filename="generated_resources_ml.pak" type="data_package" lang="ml" />
    <output filename="generated_resources_mr.pak" type="data_package" lang="mr" />
    <output filename="generated_resources_ms.pak" type="data_package" lang="ms" />
    <output filename="generated_resources_nl.pak" type="data_package" lang="nl" />
    <!-- The translation console uses 'no' for Norwegian Bokmål. It should
         be 'nb'. -->
    <output filename="generated_resources_nb.pak" type="data_package" lang="no" />
    <output filename="generated_resources_pl.pak" type="data_package" lang="pl" />
    <if expr="is_ios">
      <!-- iOS uses pt for pt-BR -->
      <output filename="generated_resources_pt.pak" type="data_package" lang="pt-BR" />
    </if>
    <if expr="not is_ios">
      <output filename="generated_resources_pt-BR.pak" type="data_package" lang="pt-BR" />
    </if>
    <output filename="generated_resources_pt-PT.pak" type="data_package" lang="pt-PT" />
    <output filename="generated_resources_ro.pak" type="data_package" lang="ro" />
    <output filename="generated_resources_ru.pak" type="data_package" lang="ru" />
    <output filename="generated_resources_sk.pak" type="data_package" lang="sk" />
    <output filename="generated_resources_sl.pak" type="data_package" lang="sl" />
    <output filename="generated_resources_sr.pak" type="data_package" lang="sr" />
    <output filename="generated_resources_sv.pak" type="data_package" lang="sv" />
    <output filename="generated_resources_sw.pak" type="data_package" lang="sw" />
    <output filename="generated_resources_ta.pak" type="data_package" lang="ta" />
    <output filename="generated_resources_te.pak" type="data_package" lang="te" />
    <output filename="generated_resources_th.pak" type="data_package" lang="th" />
    <output filename="generated_resources_tr.pak" type="data_package" lang="tr" />
    <output filename="generated_resources_uk.pak" type="data_package" lang="uk" />
    <output filename="generated_resources_vi.pak" type="data_package" lang="vi" />
    <output filename="generated_resources_zh-CN.pak" type="data_package" lang="zh-CN" />
    <output filename="generated_resources_zh-TW.pak" type="data_package" lang="zh-TW" />

    <!-- On Android, output some strings into Android's xml string format.
         These strings are tagged with formatter_data="android_java" -->
    <if expr="is_android">
      <output filename="java/res/values-am/generated_resources.xml" lang="am" type="android" context="android_java" />
      <output filename="java/res/values-ar/generated_resources.xml" lang="ar" type="android" context="android_java" />
      <output filename="java/res/values-bg/generated_resources.xml" lang="bg" type="android" context="android_java" />
      <output filename="java/res/values-ca/generated_resources.xml" lang="ca" type="android" context="android_java" />
      <output filename="java/res/values-cs/generated_resources.xml" lang="cs" type="android" context="android_java" />
      <output filename="java/res/values-da/generated_resources.xml" lang="da" type="android" context="android_java" />
      <output filename="java/res/values-de/generated_resources.xml" lang="de" type="android" context="android_java" />
      <output filename="java/res/values-el/generated_resources.xml" lang="el" type="android" context="android_java" />
      <output filename="java/res/values/generated_resources.xml" lang="en" type="android" context="android_java" />
      <output filename="java/res/values-en-rGB/generated_resources.xml" lang="en-GB" type="android" context="android_java" />
      <output filename="java/res/values-es/generated_resources.xml" lang="es" type="android" context="android_java" />
      <output filename="java/res/values-es-rUS/generated_resources.xml" lang="es-419" type="android" context="android_java" />
      <output filename="java/res/values-fa/generated_resources.xml" lang="fa" type="android" context="android_java" />
      <output filename="java/res/values-fi/generated_resources.xml" lang="fi" type="android" context="android_java" />
      <output filename="java/res/values-tl/generated_resources.xml" lang="fil" type="android" context="android_java" />
      <output filename="java/res/values-fr/generated_resources.xml" lang="fr" type="android" context="android_java" />
      <output filename="java/res/values-hi/generated_resources.xml" lang="hi" type="android" context="android_java" />
      <output filename="java/res/values-hr/generated_resources.xml" lang="hr" type="android" context="android_java" />
      <output filename="java/res/values-hu/generated_resources.xml" lang="hu" type="android" context="android_java" />
      <output filename="java/res/values-in/generated_resources.xml" lang="id" type="android" context="android_java" />
      <output filename="java/res/values-it/generated_resources.xml" lang="it" type="android" context="android_java" />
      <output filename="java/res/values-iw/generated_resources.xml" lang="he" type="android" context="android_java" />
      <output filename="java/res/values-ja/generated_resources.xml" lang="ja" type="android" context="android_java" />
      <output filename="java/res/values-ko/generated_resources.xml" lang="ko" type="android" context="android_java" />
      <output filename="java/res/values-lt/generated_resources.xml" lang="lt" type="android" context="android_java" />
      <output filename="java/res/values-lv/generated_resources.xml" lang="lv" type="android" context="android_java" />
      <output filename="java/res/values-nl/generated_resources.xml" lang="nl" type="android" context="android_java" />
      <output filename="java/res/values-nb/generated_resources.xml" lang="no" type="android" context="android_java" />
      <output filename="java/res/values-pl/generated_resources.xml" lang="pl" type="android" context="android_java" />
      <output filename="java/res/values-pt-rBR/generated_resources.xml" lang="pt-BR" type="android" context="android_java" />
      <output filename="java/res/values-pt-rPT/generated_resources.xml" lang="pt-PT" type="android" context="android_java" />
      <output filename="java/res/values-ro/generated_resources.xml" lang="ro" type="android" context="android_java" />
      <output filename="java/res/values-ru/generated_resources.xml" lang="ru" type="android" context="android_java" />
      <output filename="java/res/values-sk/generated_resources.xml" lang="sk" type="android" context="android_java" />
      <output filename="java/res/values-sl/generated_resources.xml" lang="sl" type="android" context="android_java" />
      <output filename="java/res/values-sr/generated_resources.xml" lang="sr" type="android" context="android_java" />
      <output filename="java/res/values-sv/generated_resources.xml" lang="sv" type="android" context="android_java" />
      <output filename="java/res/values-sw/generated_resources.xml" lang="sw" type="android" context="android_java" />
      <output filename="java/res/values-th/generated_resources.xml" lang="th" type="android" context="android_java" />
      <output filename="java/res/values-tr/generated_resources.xml" lang="tr" type="android" context="android_java" />
      <output filename="java/res/values-uk/generated_resources.xml" lang="uk" type="android" context="android_java" />
      <output filename="java/res/values-vi/generated_resources.xml" lang="vi" type="android" context="android_java" />
      <output filename="java/res/values-zh-rCN/generated_resources.xml" lang="zh-CN" type="android" context="android_java" />
      <output filename="java/res/values-zh-rTW/generated_resources.xml" lang="zh-TW" type="android" context="android_java" />
    </if>
  </outputs>
  <translations>
    <file path="resources/generated_resources_am.xtb" lang="am" />
    <file path="resources/generated_resources_ar.xtb" lang="ar" />
    <file path="resources/generated_resources_bg.xtb" lang="bg" />
    <file path="resources/generated_resources_bn.xtb" lang="bn" />
    <file path="resources/generated_resources_ca.xtb" lang="ca" />
    <file path="resources/generated_resources_cs.xtb" lang="cs" />
    <file path="resources/generated_resources_da.xtb" lang="da" />
    <file path="resources/generated_resources_de.xtb" lang="de" />
    <file path="resources/generated_resources_el.xtb" lang="el" />
    <file path="resources/generated_resources_en-GB.xtb" lang="en-GB" />
    <file path="resources/generated_resources_es.xtb" lang="es" />
    <file path="resources/generated_resources_es-419.xtb" lang="es-419" />
    <file path="resources/generated_resources_et.xtb" lang="et" />
    <file path="resources/generated_resources_fa.xtb" lang="fa" />
    <file path="resources/generated_resources_fi.xtb" lang="fi" />
    <file path="resources/generated_resources_fil.xtb" lang="fil" />
    <file path="resources/generated_resources_fr.xtb" lang="fr" />
    <file path="resources/generated_resources_gu.xtb" lang="gu" />
    <file path="resources/generated_resources_hi.xtb" lang="hi" />
    <file path="resources/generated_resources_hr.xtb" lang="hr" />
    <file path="resources/generated_resources_hu.xtb" lang="hu" />
    <file path="resources/generated_resources_id.xtb" lang="id" />
    <file path="resources/generated_resources_it.xtb" lang="it" />
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file path="resources/generated_resources_iw.xtb" lang="he" />
    <file path="resources/generated_resources_ja.xtb" lang="ja" />
    <file path="resources/generated_resources_kn.xtb" lang="kn" />
    <file path="resources/generated_resources_ko.xtb" lang="ko" />
    <file path="resources/generated_resources_lt.xtb" lang="lt" />
    <file path="resources/generated_resources_lv.xtb" lang="lv" />
    <file path="resources/generated_resources_ml.xtb" lang="ml" />
    <file path="resources/generated_resources_mr.xtb" lang="mr" />
    <file path="resources/generated_resources_ms.xtb" lang="ms" />
    <file path="resources/generated_resources_nl.xtb" lang="nl" />
    <file path="resources/generated_resources_no.xtb" lang="no" />
    <file path="resources/generated_resources_pl.xtb" lang="pl" />
    <file path="resources/generated_resources_pt-BR.xtb" lang="pt-BR" />
    <file path="resources/generated_resources_pt-PT.xtb" lang="pt-PT" />
    <file path="resources/generated_resources_ro.xtb" lang="ro" />
    <file path="resources/generated_resources_ru.xtb" lang="ru" />
    <file path="resources/generated_resources_sk.xtb" lang="sk" />
    <file path="resources/generated_resources_sl.xtb" lang="sl" />
    <file path="resources/generated_resources_sr.xtb" lang="sr" />
    <file path="resources/generated_resources_sv.xtb" lang="sv" />
    <file path="resources/generated_resources_sw.xtb" lang="sw" />
    <file path="resources/generated_resources_ta.xtb" lang="ta" />
    <file path="resources/generated_resources_te.xtb" lang="te" />
    <file path="resources/generated_resources_th.xtb" lang="th" />
    <file path="resources/generated_resources_tr.xtb" lang="tr" />
    <file path="resources/generated_resources_uk.xtb" lang="uk" />
    <file path="resources/generated_resources_vi.xtb" lang="vi" />
    <file path="resources/generated_resources_zh-CN.xtb" lang="zh-CN" />
    <file path="resources/generated_resources_zh-TW.xtb" lang="zh-TW" />
  </translations>
  <release seq="1" allow_pseudo="false">
    <messages fallback_to_english="true">
      <!-- Bookmarks specific strings -->
      <part file="bookmarks_strings.grdp" />

      <!-- ChromeOS-specific strings -->
      <if expr="chromeos">
        <part file="chromeos_strings.grdp" />
      </if>

      <!-- Media Router specific strings -->
      <if expr="enable_media_router">
        <part file="media_router_strings.grdp" />
      </if>

      <!-- TODO add all of your "string table" messages here.  Remember to
      change nontranslateable parts of the messages into placeholders (using the
      <ph> element).  You can also use the 'grit add' tool to help you identify
      nontranslateable parts and create placeholders for them. -->
      <if expr="is_win">
        <message name="IDS_BACKGROUND_APP_INSTALLED_BALLOON_TITLE" desc="The title of the balloon that is displayed when a background app is installed">
          New background app added
        </message>
        <message name="IDS_BACKGROUND_APP_INSTALLED_BALLOON_BODY" desc="The contents of the balloon that is displayed when a background app is installed">
          <ph name="APP_NAME">$1<ex>Background App</ex></ph> will launch at system startup and continue to run in the background even once you've closed all other <ph name="PRODUCT_NAME">$2<ex>Google Chrome</ex></ph> windows.
        </message>
      </if>
      <message name="IDS_BACKGROUND_CRASHED_APP_BALLOON_MESSAGE" desc="The contents of the balloon that is displayed when a background app crashes">
        <ph name="APP_NAME">$1<ex>Background App</ex></ph> has crashed. Click this balloon to restart the app.
      </message>
      <message name="IDS_BACKGROUND_CRASHED_EXTENSION_BALLOON_MESSAGE" desc="The contents of the balloon that is displayed when an extension crashes">
        <ph name="APP_NAME">$1<ex>Extension</ex></ph> has crashed. Click this balloon to reload the extension.
      </message>
      <if expr="use_titlecase">
        <message name="IDS_BACKGROUND_APP_NOT_INSTALLED" desc="In Title Case: Label displayed in the status icon context menu when a profile does not have any background apps running.">
          No Background Apps Running
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_BACKGROUND_APP_NOT_INSTALLED" desc="Label displayed in the status icon context menu when a profile does not have any background apps running.">
          No background apps running
        </message>
      </if>

      <!-- Website Settings UI -->
      <message name="IDS_WEBSITE_SETTINGS_TITLE" desc="Title for Website Settings dialog.">
        Manage sites
      </message>
      <message name="IDS_WEBSITE_SETTINGS_INFOBAR_TEXT" desc="The string shown in the infobar after the user has changed site permissions settings, reminding them to reload the page in order for the new settings to take effect.">
        New site permissions settings will take effect after reloading the page.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_INFOBAR_BUTTON" desc="The string used in the infobar button allowing the user to reload the page directly from the infobar.">
        Reload
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ALLOWED_BY_POLICY" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to allow and managed by policy.">
        Allowed by policy
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_BLOCKED_BY_POLICY" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to block and managed by policy.">
        Blocked by policy
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ASK_BY_POLICY" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to ask and managed by policy.">
        Ask by policy
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ALLOWED_BY_EXTENSION" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to allow and managed by an extension.">
        Allowed by extension
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_BLOCKED_BY_EXTENSION" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to block and managed by an extension.">
        Blocked by extension
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ALLOWED_BY_USER" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button was explicitly set to allow by the user.">
        Allowed by you
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_BLOCKED_BY_USER" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button was explicitly set to block by the user.">
        Blocked by you
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ASK_BY_USER" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button was explicitly set to ask by the user.">
        Ask by you
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_DETECT_IMPORTANT_CONTENT_BY_USER" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button was explicitly set to detect important content by the user.">
        Detect by you
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ALLOWED_BY_DEFAULT" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to the default setting and the default settings is allow.">
        Allowed by default
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_BLOCKED_BY_DEFAULT" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to the default setting and the default settings is block.">
        Blocked by default
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_ASK_BY_DEFAULT" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to the default setting and the default settings is ask.">
        Ask by default
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BUTTON_TEXT_DETECT_IMPORTANT_CONTENT_BY_DEFAULT" desc="The Website Settings popup contains several buttons for opening dropdown menus and changing site permissions. This is the text of such a button if the permission controlled by the button is set to the default setting and the default settings is detect important content.">
        Detect important content by default
      </message>
      <message name="IDS_WEBSITE_SETTINGS_USB_DEVICE_LABEL" desc="The label used to describe a USB device that the user has granted the site permission to access.">
        <ph name="DEVICE_NAME">$1<ex>Android Phone</ex></ph>
      </message>
      <message name="IDS_WEBSITE_SETTINGS_DELETE_USB_DEVICE" desc="The tooltip displayed when hovering over the button that will remove permission to access a USB device that the user previously granted to the site.">
        Revoke access
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TITLE_SITE_PERMISSIONS" desc="Title of the permissions section of the website settings popup.">
        Permissions
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TITLE_SITE_DATA" desc="Title of the site data section of the website settings popup.">
        Cookies
      </message>
      <message name="IDS_WEBSITE_SETTINGS_PERMISSION_ALLOW" desc="The label used in the permissions dropdowns for the option that grants a permissions.">
        allow
      </message>
      <message name="IDS_WEBSITE_SETTINGS_PERMISSION_BLOCK" desc="The label used in the permissions dropdowns for the option that denies a permissions. ">
        block
      </message>
      <message name="IDS_WEBSITE_SETTINGS_PERMISSION_ASK" desc="The label used in the permissions dropdowns for the option that makes the browser asks for permission. ">
        ask
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_BATTERY" desc="The label used for the battery consumption type in the Manage Sites settings.">
        Battery
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_IMAGES" desc="The label used for images permission controls in the Website Settings popup.">
        Images
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_JAVASCRIPT" desc="The label used for JavaScript permission controls in the Website Settings popup.">
        JavaScript
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_KEYGEN" desc="The label used for the key generation permission controls in the Website Settings popup.">
        Key Generation
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_POPUPS" desc="The label used for popups permission controls in the Website Settings popup.">
        Popups
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_PLUGINS" desc="The label used for plugin permissions in the Website Settings popup.">
        Plugins
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_LOCATION" desc="The label used for location permission controls in the Website Settings popup.">
        Location
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_NOTIFICATIONS" desc="The label used for notifications permission controls in the Website Settings popup.">
        Notifications
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_FULLSCREEN" desc="The label used for fullscreen permission controls in the Website Settings popup.">
        Fullscreen
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_MOUSELOCK" desc="The label used for mouse lock permission controls in the Website Settings popup.">
        Mouse Lock
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_MIC" desc="The label used for the microphone permission controls in the Website Settings popup.">
        Microphone
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_CAMERA" desc="The label used for the camera permission controls in the Website Settings popup.">
        Camera
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_MIDI_SYSEX" desc="The label used for MIDI system exclusive message permission controls in the Website Settings popup.">
        MIDI devices full control
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TYPE_STORAGE" desc="The label used for the local storage type in the Manage Sites settings.">
        Storage
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TAB_LABEL_CONNECTION" desc="The label of the connection tab of the Website Settings popup.">
        Connection
      </message>
      <message name="IDS_WEBSITE_SETTINGS_TAB_LABEL_PERMISSIONS" desc="The label of the permissions tab of the Website Settings popup.">
        Permissions
      </message>
      <message name="IDS_WEBSITE_SETTINGS_SECURE_TRANSPORT" desc="Text that is displayed in the header of the Website Settings popup if the website uses secure transport.">
        Your connection to this site is private.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_NON_SECURE_TRANSPORT" desc="Text that is displayed in the header of the Website Settings popup if the website uses non-secure transport.">
        Your connection to this site is not private.
      </message>
      <message name="IDS_WEBSITE_DEPRECATED_SIGNATURE_ALGORITHM" desc="Text that is displayed in the header of the Website Settings popup if the website uses SHA-1 for certificate signatures, which are no longer considered secure.">
        This site uses a weak security configuration (SHA-1 signatures), so your connection may not be private.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_UNKNOWN_TRANSPORT" desc="Text that is displayed in the header of the Website Settings popup if Chrome cannot determine what kind of transport the website used. This string must be the same as IDS_WEBSITE_SETTINGS_NON_SECURE_TRANSPORT.">
        Your connection to this site is not private.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_DETAILS_LINK" desc="Link in the Website Settings that opens up additional security details about the current page in the DevTools Security panel.">
        Details
      </message>
      <message name="IDS_WEBSITE_SETTINGS_CT_ERROR" desc="Text that is displayed in the header of the Website Settings popup if the website has provided Signed Certificate Timestamps but none are valid.">
        This site supplied invalid Certificate Transparency information.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_BROKEN_TRANSPORT" desc="Text that is displayed in the header of the Website Settings popup if the website uses nominally secure transport that had authentication or other cryptpgraphic errors.">
        Your connection to this site is not private. Attackers might be trying to steal your information (for example, photos, passwords, messages and credit cards) from <ph name="DOMAIN">$1<ex>www.example.com</ex></ph>.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MIXED_ACTIVE_CONTENT" desc="Text that is displayed in the header of the Website Settings popup if the website uses secure transport but included script over non-secure transport.">
        Your connection to this site is not private because the site loaded an insecure script.
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MIXED_PASSIVE_CONTENT" desc="Text that is displayed in the header of the Website Settings popup if the website uses secure transport but included passive resources (e.g. images) over non-secure transport.">
        Your connection to this site is private, but someone on the network might be able to change the look of the page.
      </message>
      <if expr="is_android or is_ios">
        <message name="IDS_WEBSITE_SETTINGS_MALWARE" desc="Text that is displayed in the header of the Website Settings popup if the SafeBrowsing reports that the website is malicious or has been compromised by attackers seeking to install malware.">
          Attackers may have compromised this site, and might attempt to install dangerous programs on your device that steal or delete your information (examples: photos, passwords, messages, and credit cards).
        </message>
      </if>
      <if expr="not is_android and not is_ios">
        <message name="IDS_WEBSITE_SETTINGS_MALWARE" desc="Text that is displayed in the header of the Website Settings popup if the SafeBrowsing reports that the website is malicious or has been compromised by attackers seeking to install malware.">
          Attackers may have compromised this site, and might attempt to install dangerous programs on your computer that steal or delete your information (examples: photos, passwords, messages, and credit cards).
        </message>
      </if>
      <message name="IDS_WEBSITE_SETTINGS_PHISHING" desc="Text that is displayed in the header of the Website Settings popup if the SafeBrowsing reports that the website is being used to conduct phishing attacks.">
        This site might try to trick you to steal your information (examples: passwords, messages, or credit cards).
      </message>
      <message name="IDS_WEBSITE_SETTINGS_FIRST_PARTY_SITE_DATA" desc="The label of the counts for allowed and blocked cookies and site data for the top-level origin (i.e. the origin in the Omnibox).">
        <ph name="COUNT">$1<ex>6</ex></ph> from this site
      </message>
      <message name="IDS_WEBSITE_SETTINGS_THIRD_PARTY_SITE_DATA" desc="The label of the counts for allowed and blocked third party cookies and site data.">
        <ph name="COUNT">$1<ex>6</ex></ph> from other sites
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_ALLOW" desc="The text of the menu item of a permissions menu on the Website Settings UI that resets the setting to the default setting which is allow.">
        Use global default (Allow)
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_BLOCK" desc="The text of the menu item of a permissions menu on the Website Settings UI that resets the setting to the default setting which is block.">
        Use global default (Block)
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_ASK" desc="The text of the menu item of a permissions menu on the Website Settings UI that reset the setting to the default setting which is ask.">
        Use global default (Ask)
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_DETECT_IMPORTANT_CONTENT" desc="The text of the menu item of a permissions menu on the Website Settings UI that reset the setting to the default setting which is detect important content.">
        Use global default (Detect)
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_ALLOW" desc="The text of the menu item of a permissions menu on the Website Settings UI that sets the setting to allow.">
        Always allow on this site
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_BLOCK" desc="The text of the menu item of a permissions menu on the Website Settings UI that sets the setting to allow.">
        Always block on this site
      </message>
      <message name="IDS_WEBSITE_SETTINGS_MENU_ITEM_DETECT_IMPORTANT_CONTENT" desc="The text of the menu item of a permissions menu on the Website Settings UI that sets the setting to detect important content.">
        Always detect important content on this site
      </message>
      <message name="IDS_WEBSITE_SETTINGS_PERMISSION_TYPE" desc="The label that is used to display permission types in the Website Settings popup. ">
        <ph name="PERMISSION_TYPE_LABEL">$1<ex>Plugins</ex></ph>:
      </message>

      <message name="IDS_PERMISSIONS_BUBBLE_PROMPT" desc="The label that is used to introduce permission request details to the user in a papup.">
        <ph name="SITE_NAME">$1<ex>google.com</ex></ph> wants to:
      </message>
      <message name="IDS_PERMISSION_ALLOW" desc="Label on button to allow a permissions request.">
        Allow
      </message>
      <message name="IDS_PERMISSION_ALLOW_COMBOBOX" desc="Label on combobox to allow the user to either allow all or customize.">
        Allow all or customize
      </message>
      <message name="IDS_PERMISSION_DENY" desc="Label on button to deny a permissions request.">
        Block
      </message>
      <message name="IDS_PERMISSION_CUSTOMIZE" desc="Label on text button to allow the user to customize a permissions request.">
        Customize
      </message>

      <!-- Runtime permission infobar strings -->
      <if expr="is_android">
        <message name="IDS_INFOBAR_UPDATE_PERMISSIONS_BUTTON_TEXT" desc="Button text shown when Chrome does not have the necessary permission required to complete the requested tasks (e.g. a website has request location information, but Chrome is missing that Android permission)." formatter_data="android_java">
          Update permissions
        </message>
      </if>

      <message name="IDS_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_ALTERNATE_NAV_URL_VIEW_LABEL" desc="Label displayed in an infobar when a user searches for a term he may have meant to navigate to.">
        Did you mean to go to <ph name="SITE">$1<ex>http://intranetsite/</ex></ph>?
      </message>

      <message name="IDS_DOWNLOAD_TITLE" desc="Title for the downloads tab.">
        Downloads
      </message>
      <message name="IDS_DEFAULT_TAB_TITLE" desc="The default title in a tab.">
        Untitled
      </message>
      <message name="IDS_TAB_LOADING_TITLE" desc="The text to be displayed in the title of a tab before a title is discovered.">
        Loading...
      </message>

      <!-- Generic terms -->
      <message name="IDS_ADD" desc="Used for Add on buttons">
        Add
      </message>
      <message name="IDS_UNDO_DELETE" desc="Description for a command to undo a delete command.">
        Undo Delete
      </message>
      <message name="IDS_EDIT" desc="Edit menu item">
        &amp;Edit
      </message>
      <if expr="is_macosx">
        <message name="IDS_ACCNAME_TAB" desc="A generic description of a tab button's role">
          Tab
        </message>
      </if>
      <message name="IDS_SAVE" desc="Used on a button to save information you are editing.">
        Save
      </message>
      <message name="IDS_DISABLE" desc="Used for Disable on buttons">
        Disable
      </message>
      <message name="IDS_CONTENT_CONTEXT_WRITING_DIRECTION_MENU" desc="The name of the Writing Direction submenu in the content area context menu.  To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, right-click on the text entry area and use the translation from there.">
        Writing Direction
      </message>
      <message name="IDS_CONTENT_CONTEXT_WRITING_DIRECTION_DEFAULT" desc="The name of the 'default' item from the Writing Direction submenu in the content area context menu.  To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, right-click on the text entry area and use the translation from there.">
        Default
      </message>
      <message name="IDS_CONTENT_CONTEXT_WRITING_DIRECTION_LTR" desc="The name of the 'Left to Right' item from the Writing Direction submenu in the content area context menu.  To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, right-click on the text entry area and use the translation from there.">
        Left to Right
      </message>
      <message name="IDS_CONTENT_CONTEXT_WRITING_DIRECTION_RTL" desc="The name of the 'Right to Left' item from the Writing Direction submenu in the content area context menu.  To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, right-click on the text entry area and use the translation from there.">
        Right to Left
      </message>

      <!-- content area context menus. -->
      <if expr="not is_android or use_aura">
        <message name="IDS_CONTENT_CONTEXT_INSPECTELEMENT" desc="The name of the Inspect Element command in the content area context menu">
          I&amp;nspect
        </message>
        <if expr="is_macosx">
            <message name="IDS_CONTENT_CONTEXT_LOOK_UP" desc="The name of the 'Look Up “string”' item in the content area context menu. To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, right-click on the text entry area and use the translation from there.">
              Look Up “<ph name="LOOKUP_STRING">$1<ex>orthogonal</ex></ph>”
            </message>
        </if>
        <if expr="not use_titlecase">
          <message name="IDS_CONTENT_CONTEXT_BACK" desc="The name of the Back command in the content area context menu">
            &amp;Back
          </message>
          <message name="IDS_CONTENT_CONTEXT_FORWARD" desc="The name of the Forward command in the content area context menu">
            &amp;Forward
          </message>
          <message name="IDS_CONTENT_CONTEXT_SAVEPAGEAS" desc="The name of the Save Page As command in the content area context menu">
            Save &amp;as...
          </message>
          <message name="IDS_CONTENT_CONTEXT_PRINT" desc="The name of the Print... command in the content area context menu. Brings a dialog to select the print options">
            &amp;Print...
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWPAGESOURCE" desc="The name of the View Page Source command in the content area context menu">
            &amp;View page source
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKWITH" desc="The name of the Open Link With... command in the content area context menu">
            Open link with...
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKWITH_CONFIGURE" desc="In Title Case: The name of the command to configure what handlers are available for the Open Link With... command">
            Configure...
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWPAGEINFO" desc="The name of the View Page Info command in the content area context menu">
            View page &amp;info
          </message>
          <message name="IDS_CONTENT_CONTEXT_INSPECTBACKGROUNDPAGE" desc="The name of the Inspect Background Page command in the packaged app content area context menu">
            Inspect &amp;background page
          </message>
          <message name="IDS_CONTENT_CONTEXT_RELOAD" desc="The name of the Reload command in the content area context menu">
            &amp;Reload
          </message>
          <message name="IDS_CONTENT_CONTEXT_RESTART_APP" desc="The name of the Restart Packaged App command in the packaged app context menu.">
            Simulate browser restart
          </message>
          <message name="IDS_CONTENT_CONTEXT_RELOAD_PACKAGED_APP" desc="The name of the Reload Packaged App command in the packaged app content area context menu">
            &amp;Reload app
          </message>
          <message name="IDS_CONTENT_CONTEXT_TRANSLATE" desc="The name of the Translate command in the content area context menu">
            &amp;Translate to <ph name="LANGUAGE">$1<ex>English</ex></ph>
          </message>

          <message name="IDS_CONTENT_CONTEXT_RELOADFRAME" desc="The name of the Reload Frame command in the content area context menu">
            Reload frame
          </message>
          <message name="IDS_CONTENT_CONTEXT_SAVEFRAMEAS" desc="The name of the Save Frame As command in the content area context menu">
            Save &amp;frame as...
          </message>
          <message name="IDS_CONTENT_CONTEXT_PRINTFRAME" desc="The name of the Print Frame command in the content area context menu">
            &amp;Print frame...
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWFRAMESOURCE" desc="The name of the View Frame Source command in the content area context menu">
            &amp;View frame source
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWFRAMEINFO" desc="The name of the View Frame Info command in the content area context menu">
            View frame &amp;info
          </message>

          <message name="IDS_CONTENT_CONTEXT_OPENLINKNEWTAB" desc="The name of the Open Link in New Tab command in the content area context menu">
            Open link in new &amp;tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW" desc="The name of the Open Link in New Window command in the content area context menu">
            Open link in new &amp;window
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD" desc="The name of the open a link in incognito window command">
            Open link in inco&amp;gnito window
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKINPROFILES" desc="The name of the open a link as a different user context menu">
            Open link as
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKINPROFILE" desc="The name of the open a link as a different user command">
            Open link as <ph name="USER">$1<ex>user@gmail.com</ex></ph>
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVELINKAS" desc="The name of the Save Link As command in the content area context menu">
            Save lin&amp;k as...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYLINKLOCATION" desc="The name of the Copy Link Location command in the content area context menu">
            Copy link addr&amp;ess
          </message>

          <message name="IDS_CONTENT_CONTEXT_COPYEMAILADDRESS" desc="The name of the Copy Email Address command in the content area context menu">
            Copy &amp;email address
          </message>

          <message name="IDS_CONTENT_CONTEXT_COPYLINKTEXT" desc="The name of the Copy Link Text command in the content area context menu">
            Copy link te&amp;xt
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVEIMAGEAS" desc="The name of the Save Image As command in the content area context menu">
            Sa&amp;ve image as...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYIMAGELOCATION" desc="The name of the Copy Image Location command in the content area context menu">
            C&amp;opy image address
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYIMAGE" desc="The name of the Copy Image command in the content area context menu">
            Cop&amp;y image
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENIMAGENEWTAB" desc="The name of the Open Image in New Tab command in the content area context menu">
            Open &amp;image in new tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPEN_ORIGINAL_IMAGE_NEW_TAB" desc="The name of the Open Original Image in New Tab command in the content area context menu">
            Open original &amp;image in new tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_LOAD_ORIGINAL_IMAGE" desc="The name of the Load Image command in the content area context menu">
            Load image
          </message>

          <message name="IDS_CONTENT_CONTEXT_LOOP" desc="The name of the Loop command for audio and video playback in the content area context menu">
            &amp;Loop
          </message>
          <message name="IDS_CONTENT_CONTEXT_PLAY" desc="The name of the Play command for audio and video playback in the content area context menu">
            &amp;Play
          </message>
          <message name="IDS_CONTENT_CONTEXT_PAUSE" desc="The name of the Pause command for audio and video playback in the content area context menu">
            &amp;Pause
          </message>
          <message name="IDS_CONTENT_CONTEXT_MUTE" desc="The name of the Mute command for audio and video playback in the content area context menu">
            &amp;Mute
          </message>
          <message name="IDS_CONTENT_CONTEXT_UNMUTE" desc="The name of the Unmute command for audio and video playback in the content area context menu">
            Un&amp;mute
          </message>
          <message name="IDS_CONTENT_CONTEXT_CONTROLS" desc="The name of the Show Controls command for audio and video playback in the content area context menu">
            Show &amp;controls
          </message>
          <message name="IDS_CONTENT_CONTEXT_ROTATECW" desc="The name of the Rotate clockwise command for plugins in the content area context menu">
            Rotate &amp;clockwise
          </message>
          <message name="IDS_CONTENT_CONTEXT_ROTATECCW" desc="The name of the Rotate counterclockwise command for plugins in the content area context menu">
            Rotate c&amp;ounterclockwise
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVEVIDEOAS" desc="The name of the Save Video As command in the content area context menu">
            Sa&amp;ve video as...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYVIDEOLOCATION" desc="The name of the Copy Video Location command in the content area context menu">
            C&amp;opy video address
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENVIDEONEWTAB" desc="The name of the Open Video in New Tab command in the content area context menu">
            &amp;Open video in new tab
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVEAUDIOAS" desc="The name of the Save Audio As command in the content area context menu">
            Sa&amp;ve audio as...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYAUDIOLOCATION" desc="The name of the Copy Audio Location command in the content area context menu">
            C&amp;opy audio address
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENAUDIONEWTAB" desc="The name of the Open Audio in New Tab command in the content area context menu">
            &amp;Open audio in new tab
          </message>

          <message name="IDS_CONTENT_CONTEXT_UNDO" desc="The name of the Undo command in the content area context menu">
            &amp;Undo
          </message>
          <message name="IDS_CONTENT_CONTEXT_REDO" desc="The name of the Redo command in the content area context menu">
            &amp;Redo
          </message>
          <message name="IDS_CONTENT_CONTEXT_CUT" desc="The name of the Cut command in the content area context menu">
            Cu&amp;t
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPY" desc="The name of the Copy command in the content area context menu">
            &amp;Copy
          </message>
          <message name="IDS_CONTENT_CONTEXT_PASTE" desc="The name of the Paste command in the content area context menu" meaning="'Paste' menu command in sentence case">
            &amp;Paste
          </message>
          <message name="IDS_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE" desc="The name of the 'Paste as plain text' command in the content area context menu">
            Paste as plain text
          </message>
          <message name="IDS_CONTENT_CONTEXT_DELETE" desc="The name of the Delete command in the content area context menu">
            &amp;Delete
          </message>
          <message name="IDS_CONTENT_CONTEXT_ADD_TO_DICTIONARY" desc="The name of the Add to dictionary command in the content area context menu">
            &amp;Add to dictionary
          </message>
          <message name="IDS_CONTENT_CONTEXT_NO_SPELLING_SUGGESTIONS" desc="The name of the No Spelling Suggestions display in the content area context menu">
            &amp;No spelling suggestions
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_ASK_GOOGLE" desc="The context-menu item that asks whether to integrate the spelling service of Google to Chrome. This text is also used as the title of a bubble which confirms it.">
            Ask Google for suggestions
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_ENABLE" desc="The button text that allows integrating the spelling service of Google.">
            Enable
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_DISABLE" desc="The button text that disallows integrating the spelling service of Google.">
            No thanks
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_CHECKING" desc="The place-holder message shown while the Spelling service is checking text">
            Loading suggestion
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_NO_SUGGESTIONS_FROM_GOOGLE" desc="The message shown when we cannot get any more suggestions from the Spelling service">
            No more suggestions from Google
          </message>
          <message name="IDS_CONTENT_CONTEXT_SELECTALL" desc="The name of the Select All command in the content area context menu">
            Select &amp;all
          </message>
          <message name="IDS_CONTENT_CONTEXT_SEARCHWEBFOR" desc="The name of the Search the Web for “string” command in the content area context menu">
            &amp;Search <ph name="SEARCH_ENGINE">$1<ex>Google</ex></ph> for “<ph name="SEARCH_TERMS">$2<ex>flowers</ex></ph>”
          </message>
          <message name="IDS_CONTENT_CONTEXT_SEARCHWEBFORIMAGE" desc="The name of the Search For Image command in the content area context menu">
            &amp;Search <ph name="SEARCH_ENGINE">$1<ex>Google</ex></ph> for image
          </message>
          <message name="IDS_CONTENT_CONTEXT_GOTOURL" desc="The name of the Go to 'url' command in the content area context menu">
            &amp;Go to <ph name="URL">$1<ex>http://www.google.com/</ex></ph>
          </message>
          <message name="IDS_CONTENT_CONTEXT_FORCESAVEPASSWORD" desc="The name of the Save Password command in the content area context menu">
            Save password
          </message>
          <message name="IDS_CONTENT_CONTEXT_LANGUAGE_SETTINGS" desc="The name of the Language Settings command in the content area context menu">
            &amp;Language settings...
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_CONTENT_CONTEXT_BACK" desc="In Title Case: The name of the Back command in the content area context menu">
            &amp;Back
          </message>
          <message name="IDS_CONTENT_CONTEXT_FORWARD" desc="In Title Case: The name of the Forward command in the content area context menu">
            &amp;Forward
          </message>
          <message name="IDS_CONTENT_CONTEXT_SAVEPAGEAS" desc="In Title Case: The name of the Save Page As command in the content area context menu">
            Save &amp;As...
          </message>
          <message name="IDS_CONTENT_CONTEXT_PRINT" desc="In Title Case: The name of the Print... command in the content area context menu. Brings a dialog to select the print options">
            &amp;Print...
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWPAGESOURCE" desc="In Title Case: The name of the View Page Source command in the content area context menu">
            &amp;View Page Source
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKWITH" desc="In Title Case: The name of the Open Link With... command in the content area context menu">
            Open Link With...
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKWITH_CONFIGURE" desc="In Title Case: The name of the command to configure what handlers are available for the Open Link With... command">
            Configure...
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWPAGEINFO" desc="In Title Case: The name of the View Page Info command in the content area context menu">
            View Page &amp;Info
          </message>
          <message name="IDS_CONTENT_CONTEXT_INSPECTBACKGROUNDPAGE" desc="In Title Case: The name of the Inspect Background Page command in the packaged app content area context menu">
            Inspect &amp;Background Page
          </message>
          <message name="IDS_CONTENT_CONTEXT_RELOAD" desc="In Title Case: The name of the Reload command in the content area context menu">
            &amp;Reload
          </message>
          <message name="IDS_CONTENT_CONTEXT_RESTART_APP" desc="In Title Case: The name of the Restart Packaged App command in the packaged app context menu.">
            Simulate Browser Restart
          </message>
          <message name="IDS_CONTENT_CONTEXT_RELOAD_PACKAGED_APP" desc="In Title Case: The name of the Reload Packaged App command in the packaged app content area context menu">
            &amp;Reload App
          </message>
          <message name="IDS_CONTENT_CONTEXT_TRANSLATE" desc="In Title Case: The name of the Translate command in the content area context menu">
            &amp;Translate to <ph name="LANGUAGE">$1<ex>English</ex></ph>
          </message>

          <message name="IDS_CONTENT_CONTEXT_RELOADFRAME" desc="In Title Case: The name of the Reload Frame command in the content area context menu">
            Reload Frame
          </message>
          <message name="IDS_CONTENT_CONTEXT_SAVEFRAMEAS" desc="In Title Case: The name of the Save Frame As command in the content area context menu">
            Save &amp;Frame As...
          </message>
          <message name="IDS_CONTENT_CONTEXT_PRINTFRAME" desc="In Title Case: The name of the Print Frame command in the content area context menu">
            &amp;Print Frame...
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWFRAMESOURCE" desc="In Title Case: The name of the View Frame Source command in the content area context menu">
            &amp;View Frame Source
          </message>
          <message name="IDS_CONTENT_CONTEXT_VIEWFRAMEINFO" desc="In Title Case: The name of the View Frame Info command in the content area context menu">
            View Frame &amp;Info
          </message>

          <message name="IDS_CONTENT_CONTEXT_OPENLINKNEWTAB" desc="In Title Case: The name of the Open Link in New Tab command in the content area context menu">
            Open Link in New &amp;Tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW" desc="In Title Case: The name of the Open Link in New Window command in the content area context menu">
            Open Link in New &amp;Window
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD" desc="In Title Case: The name of the open a link in incognito window command">
            Open Link in Inco&amp;gnito Window
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKINPROFILES" desc="In Title Case: The name of the open a link as a different user context menu">
            Open Link as
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKINPROFILE" desc="In Title Case: The name of the open a link as a different user command">
            Open Link as <ph name="USER">$1<ex>user@gmail.com</ex></ph>
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVELINKAS" desc="In Title Case: The name of the Save Link As command in the content area context menu">
            Save Lin&amp;k As...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYLINKLOCATION" desc="In Title Case: The name of the Copy Link Location command in the content area context menu">
            Copy Link Addr&amp;ess
          </message>

          <message name="IDS_CONTENT_CONTEXT_COPYEMAILADDRESS" desc="In Title Case: The name of the Copy Email Address command in the content area context menu">
            Copy &amp;Email Address
          </message>

          <message name="IDS_CONTENT_CONTEXT_COPYLINKTEXT" desc="In Title Case: The name of the Copy Link Text command in the content area context menu">
            Copy Link Te&amp;xt
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVEIMAGEAS" desc="In Title Case: The name of the Save Image As command in the content area context menu">
            Sa&amp;ve Image As...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYIMAGELOCATION" desc="In Title Case: The name of the Copy Image Location command in the content area context menu">
            C&amp;opy Image Address
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYIMAGE" desc="In Title Case: The name of the Copy Image command in the content area context menu">
            Cop&amp;y Image
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENIMAGENEWTAB" desc="In Title Case: The name of the Open Image in New Tab command in the content area context menu">
            Open &amp;Image in New Tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPEN_ORIGINAL_IMAGE_NEW_TAB" desc="In Title Case: The name of the Open Original Image in New Tab command in the content area context menu">
            Open Original &amp;Image in New Tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_LOAD_ORIGINAL_IMAGE" desc="In Title Case: The name of the Load Image command in the content area context menu">
            Load Image
          </message>

          <message name="IDS_CONTENT_CONTEXT_LOOP" desc="In Title Case: The name of the Loop command for audio and video playback in the content area context menu">
            &amp;Loop
          </message>
          <message name="IDS_CONTENT_CONTEXT_PLAY" desc="In Title Case: The name of the Play command for audio and video playback in the content area context menu">
            &amp;Play
          </message>
          <message name="IDS_CONTENT_CONTEXT_PAUSE" desc="In Title Case: The name of the Pause command for audio and video playback in the content area context menu">
            &amp;Pause
          </message>
          <message name="IDS_CONTENT_CONTEXT_MUTE" desc="In Title Case: The name of the Mute command for audio and video playback in the content area context menu">
            &amp;Mute
          </message>
          <message name="IDS_CONTENT_CONTEXT_UNMUTE" desc="In Title Case: The name of the Unmute command for audio and video playback in the content area context menu">
            Un&amp;mute
          </message>
          <message name="IDS_CONTENT_CONTEXT_CONTROLS" desc="In Title Case: The name of the Show Controls command for audio and video playback in the content area context menu">
            Show &amp;Controls
          </message>
          <message name="IDS_CONTENT_CONTEXT_ROTATECW" desc="In Title Case: The name of the Rotate Clockwise command for plugins in the content area context menu">
            Rotate &amp;Clockwise
          </message>
          <message name="IDS_CONTENT_CONTEXT_ROTATECCW" desc="In Title Case: The name of the Rotate Counterclockwise command for plugins in the content area context menu">
            Rotate C&amp;ounterclockwise
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVEVIDEOAS" desc="In Title Case: The name of the Save Video As command in the content area context menu">
           Sa&amp;ve Video As...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYVIDEOLOCATION" desc="In Title Case: The name of the Copy Video Location command in the content area context menu">
            C&amp;opy Video Address
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENVIDEONEWTAB" desc="In Title Case: The name of the Open Video in New Tab command in the content area context menu">
            &amp;Open Video in New Tab
          </message>

          <message name="IDS_CONTENT_CONTEXT_SAVEAUDIOAS" desc="In Title Case: The name of the Save Audio As command in the content area context menu">
            Sa&amp;ve Audio As...
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPYAUDIOLOCATION" desc="In Title Case: The name of the Copy Audio Location command in the content area context menu">
            C&amp;opy Audio Address
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENAUDIONEWTAB" desc="In Title Case: The name of the Open Audio in New Tab command in the content area context menu">
            &amp;Open Audio in New Tab
          </message>

          <message name="IDS_CONTENT_CONTEXT_UNDO" desc="In Title Case: The name of the Undo command in the content area context menu">
            &amp;Undo
          </message>
          <message name="IDS_CONTENT_CONTEXT_REDO" desc="In Title Case: The name of the Redo command in the content area context menu">
            &amp;Redo
          </message>
          <message name="IDS_CONTENT_CONTEXT_CUT" desc="In Title Case: The name of the Cut command in the content area context menu">
            Cu&amp;t
          </message>
          <message name="IDS_CONTENT_CONTEXT_COPY" desc="In Title Case: The name of the Copy command in the content area context menu">
            &amp;Copy
          </message>
          <!-- Paste and Match Style / Paste as Plain Text -->
          <if expr="is_macosx">
            <message name="IDS_CONTENT_CONTEXT_PASTE" desc="Mac/In Title Case: The name of the Paste command in the content area context menu" meaning="'Paste' menu command for Mac">
              &amp;Paste
            </message>
            <message name="IDS_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE" desc="Mac/In Title Case: The name of the 'Paste and Match Style' command in the content area context menu">
              Paste and Match Style
            </message>
          </if>
          <if expr="not is_macosx">
            <message name="IDS_CONTENT_CONTEXT_PASTE" desc="In Title Case: The name of the Paste command in the content area context menu" meaning="'Paste' menu command in title case">
              &amp;Paste
            </message>
            <message name="IDS_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE" desc="In Title Case: The name of the 'Paste as plain text' command in the content area context menu">
              Paste As Plain Text
            </message>
          </if>
          <message name="IDS_CONTENT_CONTEXT_DELETE" desc="In Title Case: The name of the Delete command in the content area context menu">
            &amp;Delete
          </message>
          <message name="IDS_CONTENT_CONTEXT_ADD_TO_DICTIONARY" desc="In Title Case: The name of the Add to dictionary command in the content area context menu">
            &amp;Add to Dictionary
          </message>
          <message name="IDS_CONTENT_CONTEXT_NO_SPELLING_SUGGESTIONS" desc="In Title Case: The name of the No Spelling Suggestions display in the content area context menu">
            &amp;No Spelling Suggestions
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_ASK_GOOGLE" desc="In Title Case: The context-menu item that asks whether to integrate the spelling service of Google to Chrome. This text is also used as the title of a bubble which confirms it.">
            Ask Google for Suggestions
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_ENABLE" desc="In Title Case: The button text that allows integrating the spelling service of Google.">
            Enable
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_DISABLE" desc="In Title Case: The button text that disallows integrating the spelling service of Google.">
            No Thanks
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_CHECKING" desc="The place-holder message shown while the Spelling service is checking text">
            Loading suggestion
          </message>
          <message name="IDS_CONTENT_CONTEXT_SPELLING_NO_SUGGESTIONS_FROM_GOOGLE" desc="The message shown when we cannot get any more suggestions from the Spelling service">
            No more suggestions from Google
          </message>
          <message name="IDS_CONTENT_CONTEXT_SELECTALL" desc="In Title Case: The name of the Select All command in the content area context menu">
            Select &amp;All
          </message>
          <message name="IDS_CONTENT_CONTEXT_SEARCHWEBFOR" desc="In Title Case: The name of the Search the Web for “string” command in the content area context menu">
            &amp;Search <ph name="SEARCH_ENGINE">$1<ex>Google</ex></ph> for “<ph name="SEARCH_TERMS">$2<ex>flowers</ex></ph>”
          </message>
          <message name="IDS_CONTENT_CONTEXT_SEARCHWEBFORIMAGE" desc="In Title Case: The name of the Search For Image command in the content area context menu">
            &amp;Search <ph name="SEARCH_ENGINE">$1<ex>Google</ex></ph> for Image
          </message>
          <message name="IDS_CONTENT_CONTEXT_GOTOURL" desc="In Title Case: The name of the Go to url for 'string' command in the content area context menu">
            &amp;Go to <ph name="URL">$1<ex>http://www.google.com/</ex></ph>
          </message>
          <message name="IDS_CONTENT_CONTEXT_FORCESAVEPASSWORD" desc="In Title Case: The name of the Save Password command in the content area context menu">
            Save Password
          </message>
          <message name="IDS_CONTENT_CONTEXT_LANGUAGE_SETTINGS" desc="In Title Case: The name of the Language Settings command in the content area context menu">
            &amp;Language Settings...
          </message>
        </if>
      </if>

      <if expr="not use_titlecase">
        <message name="IDS_CONTENT_CONTEXT_PLUGIN_RUN" desc="The name of the Run command on the blocked plugin context menu">
          Run this plugin
        </message>
        <message name="IDS_CONTENT_CONTEXT_PLUGIN_HIDE" desc="The name of the Hide command on the blocked plugin context menu">
          Hide this plugin
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_CONTENT_CONTEXT_PLUGIN_RUN" desc="In Title Case: The name of the Run command on the blocked plugin context menu">
          Run This Plugin
        </message>
        <message name="IDS_CONTENT_CONTEXT_PLUGIN_HIDE" desc="In Title Case: The name of the Hide command on the blocked plugin context menu">
          Hide This Plugin
        </message>
      </if>

      <!-- Ash multi-user warning dialog -->
      <if expr="use_ash">
        <message name="IDS_VISIT_DESKTOP_WARNING_TITLE" desc="The title of the dialog which warns user about oddities which can be seen when a window gets moved to another user desktop.">
          Careful, this feature may bite
        </message>
        <message name="IDS_VISIT_DESKTOP_WARNING_MESSAGE" desc="The message on the dialog which warns user about oddities which can be seen when a window gets moved to another user desktop.">
          Moving windows to another desktop may result in unexpected behaviour.
        </message>
        <message name="IDS_VISIT_DESKTOP_WARNING_EXPLANATION" desc="The explanation message on the dialog which warns user about oddities which can be seen when a window gets moved to another user desktop.">
          Subsequent notifications, windows and dialogs may be split between desktops.
        </message>
        <message name="IDS_VISIT_DESKTOP_WARNING_SHOW_DISMISS" desc="Label for checkbox dismissing show of teleportation warning dialog.">
          Got it, don't show me again.
        </message>
      </if>

      <!-- Page menu. Android has separate strings for its menu -->
      <if expr="not is_android">
        <if expr="not use_titlecase">
          <message name="IDS_NEW_TAB" desc="The text label of a menu item for opening a new tab">
            New &amp;tab
          </message>
          <message name="IDS_SHOW_AS_TAB" desc="The text label for the Show As tab menu item">
            &amp;Show as tab
          </message>
          <message name="IDS_NEW_WINDOW" desc="The text label of a menu item for opening a new window">
            &amp;New window
          </message>
          <message name="IDS_NEW_INCOGNITO_WINDOW" desc="The text label of a menu item for opening a new incognito window">
            New &amp;incognito window
          </message>
          <message name="IDS_PIN_TO_START_SCREEN" desc="The text label of the Pin to start screen menu item">
            Pin this page to Start screen...
          </message>
          <if expr="is_win">
            <message name="IDS_UNPIN_FROM_START_SCREEN" desc="The text label of the unpin from start screen menu item">
              Unpin this page from Start screen...
            </message>
          </if>
          <message name="IDS_EDIT2" desc="The text label before the cut/copy/paste buttons in the merged menu">
            Edit
          </message>
          <message name="IDS_CUT" desc="The text label of the Cut menu item">
            Cu&amp;t
          </message>
          <message name="IDS_COPY" desc="The text label of the Copy menu item">
            &amp;Copy
          </message>
          <message name="IDS_PASTE" desc="The text label of the Paste menu item" meaning="'Paste' menu command in sentence case">
            &amp;Paste
          </message>
          <message name="IDS_DELETE" desc="The text label of the Delete menu item (which deletes selected text without copying to clipboard)">
            &amp;Delete
          </message>
          <message name="IDS_FIND" desc="The text label of the Find... menu item">
            &amp;Find...
          </message>
          <message name="IDS_SAVE_PAGE" desc="The text label of the Save Page As menu item">
            Save page &amp;as...
          </message>
          <message name="IDS_DISTILL_PAGE" desc="The text label of the 'Distill page' menu item">
            Distill page
          </message>
          <message name="IDS_MORE_TOOLS_MENU" desc="The text label of the Tools submenu for touch">
            More too&amp;ls
          </message>
          <message name="IDS_ZOOM_MENU" desc="The text label of the Zoom submenu">
            &amp;Zoom
          </message>
          <message name="IDS_ZOOM_MENU2" desc="The text label of the Zoom menu in the merged menu">
            Zoom
          </message>
          <message name="IDS_ZOOM_PLUS" desc="The text label of the Make Text Larger menu item">
            &amp;Larger
          </message>
          <message name="IDS_ZOOM_PLUS2" desc="The text label of the Make Text Larger menu item in the merged menu">
            +
          </message>
          <message name="IDS_ZOOM_NORMAL" desc="The text label of the Make Text Normal Size menu item">
            &amp;Normal
          </message>
          <message name="IDS_ZOOM_MINUS" desc="The text label of the Make Text Smaller menu item">
            &amp;Smaller
          </message>
          <message name="IDS_ZOOM_MINUS2" desc="The text label of the Make Text Smaller menu item in the merged menu">
            &#8722;
          </message>
          <message name="IDS_ZOOM_PERCENT" desc="Current pages zoom factor; shown in merged menu">
            <ph name="VALUE">$1<ex>100</ex></ph>%
          </message>
          <message name="IDS_ENCODING_MENU" desc="The text label of the Encoding submenu">
            &amp;Encoding
          </message>
          <message name="IDS_ENCODING_AUTO_DETECT" desc="The text label of the Auto Detect submenu">
            Auto detect
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_NEW_TAB" desc="In Title Case: The text label of a menu item for opening a new tab">
            New &amp;Tab
          </message>
          <message name="IDS_SHOW_AS_TAB" desc="In Title Case: The text label for the Show As tab menu item">
            &amp;Show As Tab
          </message>
          <message name="IDS_NEW_WINDOW" desc="In Title Case: The text label of a menu item for opening a new window">
            &amp;New Window
          </message>
          <message name="IDS_NEW_INCOGNITO_WINDOW" desc="In Title Case: The text label of a menu item for opening a new incognito window">
            New &amp;Incognito Window
          </message>
          <message name="IDS_PIN_TO_START_SCREEN" desc="In Title Case: The text label of the Pin to start screen menu item">
            Pin this Page to Start Screen...
          </message>
          <message name="IDS_EDIT2" desc="In Title Case: The text label before the cut/copy/paste buttons in the merged menu">
            Edit
          </message>
          <message name="IDS_CUT" desc="In Title Case: The text label of the Cut menu item">
            Cu&amp;t
          </message>
          <message name="IDS_COPY" desc="In Title Case: The text label of the Copy menu item">
            &amp;Copy
          </message>
          <message name="IDS_PASTE" desc="In Title Case: The text label of the Paste menu item" meaning="'Paste' menu command for Mac">
            &amp;Paste
          </message>
          <message name="IDS_DELETE" desc="In Title Case: The text label of the Delete menu item (which deletes selected text without copying to clipboard)">
            &amp;Delete
          </message>
          <message name="IDS_FIND" desc="In Title Case: The text label of the Find... menu item">
            &amp;Find...
          </message>
          <message name="IDS_SAVE_PAGE" desc="In Title Case: The text label of the Save Page As menu item">
            Save Page &amp;As...
          </message>
          <message name="IDS_DISTILL_PAGE" desc="The text label of the 'Distill Page' menu item">
            Distill Page
          </message>
          <message name="IDS_MORE_TOOLS_MENU" desc="In Title Case: The text label of the Tools submenu for touch">
            More Too&amp;ls
          </message>
          <message name="IDS_ZOOM_MENU" desc="In Title Case: The text label of the Zoom submenu">
            &amp;Zoom
          </message>
          <message name="IDS_ZOOM_MENU2" desc="In Title Case: The text label of the Zoom menu in the merged menu">
            Zoom
          </message>
          <message name="IDS_ZOOM_PLUS" desc="In Title Case: The text label of the Make Text Larger menu item">
            &amp;Larger
          </message>
          <message name="IDS_ZOOM_PLUS2" desc="The text label of the Make Text Larger menu item in the merged menu">
            +
          </message>
          <message name="IDS_ZOOM_NORMAL" desc="In Title Case: The text label of the Make Text Normal Size menu item">
            &amp;Normal
          </message>
          <message name="IDS_ZOOM_MINUS" desc="In Title Case: The text label of the Make Text Smaller menu item">
            &amp;Smaller
          </message>
          <message name="IDS_ZOOM_MINUS2" desc="The text label of the Make Text Smaller menu item in the merged menu">
            &#8722;
          </message>
          <message name="IDS_ZOOM_PERCENT" desc="Current pages zoom factor; shown in merged menu">
          <ph name="VALUE">$1<ex>100</ex></ph>%
          </message>
          <message name="IDS_ENCODING_MENU" desc="In Title Case: The text label of the Encoding submenu">
            &amp;Encoding
          </message>
          <message name="IDS_ENCODING_AUTO_DETECT" desc="In Title Case: The text label of the Auto Detect submenu">
            Auto Detect
          </message>
        </if>
      </if>

      <if expr="chromeos">
        <message name="IDS_VISIT_DESKTOP_OF_LRU_USER" desc="The text label of the menu item which allows the user to move a window from one users desktop to another.">
          Move window to <ph name="USER_NAME">$1<ex>User name</ex></ph> (<ph name="USER_EMAIL">$2<ex>john@google.com</ex></ph>)
        </message>
      </if>

      <message name="IDS_ACCNAME_ZOOM_PLUS2" desc="The accessible description of the Make Text Larger menu item in the merged menu">
        Make Text Larger
      </message>
      <message name="IDS_ACCNAME_ZOOM_MINUS2" desc="The accessible description of the Make Text Smaller menu item in the merged menu">
        Make Text Smaller
      </message>

      <message name="IDS_ENCODING_DISPLAY_TEMPLATE" desc="The format of encodings in the encoding menu. Encoding categories are Unicode, Western, Turkish, Cyrillic, Chinese Simplified, Thai, Arabic, Hebrew and so forth. Encoding names are UTF-8, Windows-1252, ISO-8859-8, GB2312, etc.">
        <ph name="ENCODING_CATEGORY">$1<ex>Japanese</ex></ph> (<ph name="ENCODING_NAME">$2<ex>Shift_JIS</ex></ph>)
      </message>
      <message name="IDS_ENCODING_UNICODE" desc="The text label of Unicode encodings">
        Unicode
      </message>
      <message name="IDS_ENCODING_WESTERN" desc="The text label of West European character encoding">
        Western
      </message>
      <message name="IDS_ENCODING_SIMP_CHINESE" desc="The text label of Simplified Chinese encodings">
        Chinese Simplified
      </message>
      <message name="IDS_ENCODING_TRAD_CHINESE" desc="The text label of Traditional Chinese encodings">
        Chinese Traditional
      </message>
      <message name="IDS_ENCODING_KOREAN" desc="The text label of Korean encoding">
        Korean
      </message>
      <message name="IDS_ENCODING_JAPANESE" desc="The text label of Japanese encodings">
        Japanese
      </message>
      <message name="IDS_ENCODING_THAI" desc="The text label of encoding thai language">
        Thai
      </message>
      <message name="IDS_ENCODING_CENTRAL_EUROPEAN" desc="The text label of encoding Central European">
        Central European
      </message>
      <message name="IDS_ENCODING_CYRILLIC" desc="The text label of Cyrillic encodings">
        Cyrillic
      </message>
      <message name="IDS_ENCODING_GREEK" desc="The text label of Greek encodings">
        Greek
      </message>
      <message name="IDS_ENCODING_BALTIC" desc="The text label of Baltic encodings">
        Baltic
      </message>
      <message name="IDS_ENCODING_SOUTH_EUROPEAN" desc="The text label of South European encodings">
        South European
      </message>
      <message name="IDS_ENCODING_NORDIC" desc="The text label of Nordic encoding">
        Nordic
      </message>
      <message name="IDS_ENCODING_CELTIC" desc="The text label of Celtic encodings">
        Celtic
      </message>
      <message name="IDS_ENCODING_ROMANIAN" desc="The text label of Romanian encoding">
        Romanian
      </message>
      <message name="IDS_ENCODING_TURKISH" desc="The text label of Turkish encodings">
        Turkish
      </message>
      <message name="IDS_ENCODING_ARABIC" desc="The text label of Arabic encodings">
        Arabic
      </message>
      <message name="IDS_ENCODING_HEBREW" desc="The text label of Hebrew encodings">
        Hebrew
      </message>
      <message name="IDS_ENCODING_VIETNAMESE" desc="The text label of Vietnamese encoding">
        Vietnamese
      </message>

      <if expr="not use_titlecase">
        <message name="IDS_VIEW_SOURCE" desc="The text label of the View Page Source menu item">
          View s&amp;ource
        </message>
        <message name="IDS_FEEDBACK" desc="The text label of the Report Bug menu item">
          &amp;Report an issue...
        </message>
        <message name="IDS_DEV_TOOLS" desc="The text label of the Developer Tools menu item">
          &amp;Developer tools
        </message>
        <message name="IDS_DEV_TOOLS_CONSOLE" desc="The text label of the JavaScript console menu item">
          &amp;JavaScript console
        </message>
        <message name="IDS_DEV_TOOLS_DEVICES" desc="The text label of the Inspect Devices menu item">
          &amp;Inspect devices
        </message>
        <message name="IDS_TASK_MANAGER" desc="The text label of the Task Manager menu item">
          &amp;Task manager
        </message>
        <message name="IDS_TAKE_SCREENSHOT" desc="The text label of the Take Screenshot menu item">
          T&amp;ake screenshot
        </message>
        <message name="IDS_RESTORE_TAB" desc="The text label of the Restore Tab menu item">
          R&amp;eopen closed tab
        </message>
        <message name="IDS_RESTORE_WINDOW" desc="The text label of the Restore Window menu item">
          R&amp;eopen closed window
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_VIEW_SOURCE" desc="In Title Case: The text label of the View Page Source menu item">
          View S&amp;ource
        </message>
        <message name="IDS_FEEDBACK" desc="In Title Case: The text label of the Report Bug menu item">
          &amp;Report an Issue...
        </message>
        <message name="IDS_DEV_TOOLS" desc="In Title Case: The text label of the Developer Tools menu item">
          &amp;Developer Tools
        </message>
        <message name="IDS_DEV_TOOLS_CONSOLE" desc="In Title Case: The text label of the JavaScript console menu item">
          &amp;JavaScript Console
        </message>
        <message name="IDS_DEV_TOOLS_DEVICES" desc="The text label of the Inspect Devices menu item">
          &amp;Inspect Devices
        </message>
        <message name="IDS_TASK_MANAGER" desc="In Title Case: The text label of the Task Manager menu item">
          &amp;Task Manager
        </message>
        <message name="IDS_TAKE_SCREENSHOT" desc="The text label of the Take Screenshot menu item">
          T&amp;ake Screenshot
        </message>
        <message name="IDS_RESTORE_TAB" desc="In Title Case: The text label of the Restore Tab menu item">
          R&amp;eopen Closed Tab
        </message>
        <message name="IDS_RESTORE_WINDOW" desc="In Title Case: The text label of the Restore Window menu item">
          R&amp;eopen Closed Window
        </message>
      </if>

      <if expr="is_macosx">
        <message name="IDS_PREFERENCES" desc="The Mac menu item to open the preferences window in the app menu.">
          Preferences...
        </message>
      </if>
      <if expr="is_posix and not is_macosx">
        <message name="IDS_PREFERENCES" desc="The text label of the Preferences menu item.">
          Preferences
        </message>
      </if>

      <!-- App menu -->
      <message name="IDS_VIEW_INCOMPATIBILITIES" desc="The text label of the View incompatibilities menu item">
        Software incompatibility: Learn more
      </message>
      <if expr="chromeos">
        <message name="IDS_TOGGLE_REQUEST_TABLET_SITE" desc="The toggle to request tablet site on a touch dev.">
          Request tablet site
        </message>
      </if>
      <message name="IDS_HELP_MENU" desc="The text label of the Help sub-menu item in the wrench menu">
        H&amp;elp
      </message>
      <if expr="not use_titlecase">
        <message name="IDS_SHOW_HISTORY" desc="The show history menu in the app menu">
          &amp;History
        </message>
        <message name="IDS_IMPORT_SETTINGS_MENU_LABEL" desc="In sentence case: The app menu label to import bookmarks and settings.">
          Import bookmarks and settings...
        </message>
        <message name="IDS_PROFILING_ENABLED" desc="The toggle to turn profiling on / off">
          &amp;Profiling enabled
        </message>
        <message name="IDS_FULLSCREEN" desc="Switches into fullscreen mode">
          &amp;Full screen
        </message>
        <message name="IDS_CLEAR_BROWSING_DATA" desc="The text label for the menu item for clearing of browsing data">
          &amp;Clear browsing data...
        </message>
        <message name="IDS_SHOW_DOWNLOADS" desc="The show downloads menu in the app menu">
          &amp;Downloads
        </message>
        <message name="IDS_SHOW_EXTENSIONS" desc="The show extensions menu in the app menu">
          &amp;Extensions
        </message>
        <message name="IDS_SETTINGS" desc="The text label of the Settings menu item">
          &amp;Settings
        </message>
        <message name="IDS_OPTIONS" desc="The text label of the Options menu item">
          &amp;Options
        </message>
        <message name="IDS_HELP_PAGE" desc="The text label of the Help Center menu item">
          H&amp;elp center
        </message>
        <message name="IDS_GET_HELP" desc="The text label of the Get Help menu item">
          Get H&amp;elp
        </message>
        <message name="IDS_EXIT" desc="The text label of the Exit menu item">
          E&amp;xit
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_SHOW_HISTORY" desc="In Title Case: The show history menu in the app menu">
          &amp;History
        </message>
        <message name="IDS_IMPORT_SETTINGS_MENU_LABEL" desc="In Title Case: The app menu label to import bookmarks and settings.">
          Import Bookmarks and Settings...
        </message>
        <message name="IDS_PROFILING_ENABLED" desc="In Title Case: The toggle to turn profiling on / off">
          &amp;Profiling Enabled
        </message>
        <message name="IDS_FULLSCREEN" desc="In Title Case: Switches into fullscreen mode">
          &amp;Full Screen
        </message>
        <message name="IDS_CLEAR_BROWSING_DATA" desc="In Title Case: The text label for the menu item for clearing of browsing data">
          &amp;Clear Browsing Data...
        </message>
        <message name="IDS_SHOW_DOWNLOADS" desc="In Title Case: The show downloads menu in the app menu">
          &amp;Downloads
        </message>
        <message name="IDS_SHOW_EXTENSIONS" desc="In Title Case: The show extensions menu in the app menu">
          &amp;Extensions
        </message>
        <message name="IDS_SETTINGS" desc="In Title Case: The text label of the Settings menu item">
          &amp;Settings
        </message>
        <message name="IDS_OPTIONS" desc="In Title Case: The text label of the Options menu item">
          &amp;Options
        </message>
        <message name="IDS_HELP_PAGE" desc="The text label of the Help Center menu item">
          H&amp;elp Center
        </message>
        <message name="IDS_GET_HELP" desc="The text label of the Get Help menu item">
          Get H&amp;elp
        </message>
        <message name="IDS_EXIT" desc="In Title Case: The text label of the Exit menu item">
          E&amp;xit
        </message>
      </if>

      <!-- Keywords -->
      <message name="IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR" desc="The separator between a result in the autocomplete popup and its description.">
        ''' - '''
      </message>
      <if expr="not use_titlecase">
        <message name="IDS_EDIT_SEARCH_ENGINES"
                 desc="Title of the popup menu item for editing search engines">
          &amp;Edit search engines...
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_EDIT_SEARCH_ENGINES"
                 desc="In Title Case: Title of the popup menu item for editing search engines">
          &amp;Edit Search Engines...
        </message>
      </if>

      <!-- Search Engine Settings -->
      <message name="IDS_SEARCH_ENGINES_EDITOR_WINDOW_TITLE"
               desc="Title of the search engines window">
        Search engines
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN"
               desc="Title of the keyword column in the search engines editor">
        Keyword
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN"
               desc="Title of the description column in the search engines editor">
        Name
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_LABEL"
               desc="Prefix before the search engine description text field">
        Name:
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_KEYWORD_LABEL"
               desc="Prefix before the search engine keyword text field">
        Keyword:
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_URL_LABEL"
               desc="Prefix before the URL text field">
        URL:
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_URL_DESCRIPTION_LABEL"
               desc="Describes how to escape the url">
        Insert <ph name="SEARCH_TERMS_LITERAL">%s</ph> in the URL where the search terms should appear.
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_MAKE_DEFAULT_BUTTON"
               desc="Text of the button that makes the selected endint the default search engine">
        Make default
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_EDIT_WINDOW_TITLE"
               desc="Text of the window title when editing a search engine">
        Edit Search Engine
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_NEW_WINDOW_TITLE"
               desc="Text of the window title when adding a search engine">
        Add Search Engine
      </message>
      <message name="IDS_SEARCH_ENGINES_INVALID_TITLE_TT"
               desc="Text of tooltip shown in the keyword editor when the title is invalid">
        Title must contain at least one character
      </message>
      <message name="IDS_SEARCH_ENGINES_INVALID_URL_TT"
               desc="Text of tooltip shown in the keyword editor when the url is invalid">
        Must be a valid URL
      </message>
      <message name="IDS_SEARCH_ENGINES_INVALID_KEYWORD_TT"
               desc="Text of tooltip shown in the keyword editor when the keyword is invalid">
        Keyword must be empty or unique
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_MAIN_SEPARATOR"
               desc="Title above the set of keywords the user has modified and or explicitly created">
        Default search settings
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_OTHER_SEPARATOR"
               desc="Title above the set of keywords Chrome automatically created as the user browses">
        Other search engines
      </message>
      <message name="IDS_SEARCH_ENGINES_EDITOR_EXTENSIONS_SEPARATOR"
               desc="Title above the set of keywords installed by active extensions">
        Search engines added by extensions
      </message>

      <message name="IDS_SEARCH_ENGINES_EDITOR_DEFAULT_ENGINE"
               desc="Engine name displayed for the engine in the list that is currently marked as default">
        <ph name="ENGINE_NAME">$1<ex>Google</ex></ph> (Default)
      </message>

      <!-- Download Shelf-->
      <if expr="is_macosx">
        <message name="IDS_SHOW_ALL"
                 desc="In Title Case: Button text on a button that opens the downloads page">
          Show All
        </message>
      </if>
      <message name="IDS_SHOW_ALL_DOWNLOADS"
               desc="Link label shown at the corner of the download shelf">
        Show all downloads...
      </message>
      <message name="IDS_SHOW_ALL_DOWNLOADS_MD" desc="Button label shown at the corner of the download shelf">
        Show all
      </message>
      <!-- Download Error Messages-->
      <!-- *_STATUS_*: Short message in the download on the shelf.-->
      <!-- *_DESCRIPTION_*: Corresponding more descriptive message on the download page.-->
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS"
               desc="The download experienced an error and was interrupted, size downloaded/total.">
        Download error
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_ACCESS_DENIED"
               desc="Cannot write to the directory/file due to insufficient permissions. Please select another directory.">
        Insufficient permissions
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_ACCESS_DENIED"
               desc="Download page message: Access Denied.">
        Cannot save due to insufficient permissions. Please save to another location.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_PATH_TOO_LONG"
               desc="The file path name is too long.  Please select another location or name.">
        Path too long
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_PATH_TOO_LONG"
               desc="Download page message: Path Too Long.">
        The file path or name is too long.  Please save with a shorter name or to another location.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_DISK_FULL"
               desc="There is not enough room on the disk to download this file.  Please choose another disk or delete files to make more room.">
        Disk full
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_DISK_FULL"
               desc="Download page message: Disk Full.">
        Your hard disk is full.  Please save to another location or make more room on the hard disk.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_LARGE"
               desc="The file is too large for the file system.">
        File too large
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_LARGE"
               desc="Download page message: File too large.">
        The file is too large for your computer to handle. Sorry.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_TEMPORARY_PROBLEM"
               desc="There was a problem saving the file.  Please try again later.">
        System busy
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_TEMPORARY_PROBLEM"
               desc="Download page message: Temporary problem.">
        Your computer is doing too many things right now.  Try again later.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_VIRUS"
               desc="This file contains a virus.  We recommend not downloading it.">
        Virus detected
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_VIRUS"
               desc="Download page message: Virus.">
        Anti-virus software detected a virus.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_BLOCKED"
               desc="The download was blocked due to security policy.">
        Blocked
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_BLOCKED"
               desc="Download page message: The download was blocked due to security policy on this machine.">
        Security settings on your computer blocked this file.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_SECURITY_CHECK_FAILED"
               desc="The security check performed on this download failed unexpectedly">
        Virus scan failed
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SECURITY_CHECK_FAILED"
               desc="Download page message: The security check performed on this download failed unexpectedly">
        Anti-virus software failed unexpectedly while scanning this file.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_FILE_TOO_SHORT"
              desc="A download resumption was attempted, but the file didn't exist or wasn't as large as expected">
       File truncated
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FILE_TOO_SHORT"
              desc="Download page message: A download resumption was attempted, but the file didn't exist or wasn't as large as expected">
       Destination file was truncated or removed since last download.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_TIMEOUT"
               desc="Network Timeout.">
        Network timeout
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_TIMEOUT"
               desc="Download page message: Network Timeout.">
        The download was taking too long and was stopped by the network.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_DISCONNECTED"
               desc="Network Disconnected.">
        Network disconnected
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_DISCONNECTED"
               desc="Download page message: Network Disconnected.">
        Internet disconnected. Please check your internet connection and try again.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_DOWN"
               desc="The server is down.">
        Server unavailable
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_DOWN"
               desc="Download page message: The server is down.">
        Server unavailable.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_NETWORK_ERROR"
               desc="Network error.">
        Network error
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NETWORK_ERROR"
               desc="Download page message: Network error.">
        Unknown network error.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_NO_FILE"
               desc="File not found on server.">
        No file
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_NO_FILE"
               desc="Download page message: File not found on server.">
        The server could not find the file.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_PROBLEM"
               desc="Server problem.">
        Server problem
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_PROBLEM"
               desc="Download page message: Server problem.">
        Unknown server error. Please try again, or contact the server administrator.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_SHUTDOWN"
               desc="Shutdown.">
        Shutdown
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SHUTDOWN"
               desc="Download page message: Shutdown.">
        The browser was shut down before the download completed.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_CRASH"
               desc="Browser Crash.">
        Crash
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_CRASH"
               desc="Download page message: Browser Crash.">
        The browser crashed before the download completed.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_UNAUTHORIZED"
               desc="Not authorized.">
        Needs authorization
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_UNAUTHORIZED"
               desc="Download page message: Not authorized.">
        Server did not authorize you to access this resource.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_SERVER_CERT_PROBLEM"
               desc="Server certificate problem.">
        Bad certificate
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_SERVER_CERT_PROBLEM"
               desc="Download page message: Server certificate problem.">
        There was a problem with server's certificate.
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_STATUS_FORBIDDEN"
               desc="Forbidden.">
        Forbidden
      </message>
      <message name="IDS_DOWNLOAD_INTERRUPTED_DESCRIPTION_FORBIDDEN"
               desc="Download page message: Forbidden.">
        Access to this resource was forbidden by the server.
      </message>

      <message name="IDS_DOWNLOAD_NOTIFICATION_LABEL_OPEN_WHEN_COMPLETE"
               desc="Download notifications: Label for 'Open when download is complete' action button on notification">
        Open when done
      </message>
      <message name="IDS_DOWNLOAD_NOTIFICATION_LABEL_OPEN"
               desc="Download notifications: Label for 'Open download' action button on notification">
        Open
      </message>
      <!-- Download Shelf Items -->
      <message name="IDS_DOWNLOAD_STATUS_STARTING"
               desc="When starting a download, let the user know we're starting the download.">
        Starting...
      </message>
      <if expr="chromeos">
        <message name="IDS_DOWNLOAD_STATUS_IN_PROGRESS_TITLE"
                 desc="The title of a download notification: the current download status is in progress.">
                 Downloading <ph name="FILE_NAME">$1<ex>somedocument.pdf</ex></ph>
        </message>
        <message name="IDS_DOWNLOAD_STATUS_PAUSED_TITLE"
                 desc="The title of a download notification: the current download status is in progress.">
                 Paused <ph name="FILE_NAME">$1<ex>somedocument.pdf</ex></ph>
        </message>
        <message name="IDS_DOWNLOAD_STATUS_DOWNLOADED_TITLE"
                 desc="The title of a download notification: the current download status is finished successufully.">
                 <ph name="FILE_NAME">$1<ex>somedocument.pdf</ex></ph> downloaded
        </message>
        <message name="IDS_DOWNLOAD_STATUS_DOWNLOAD_FAILED_TITLE"
                 desc="The title of a download notification: the current download status is failed.">
                 <ph name="FILE_NAME">$1<ex>somedocument.pdf</ex></ph> download unsuccessful
        </message>
        <message name="IDS_DOWNLOAD_NOTIFICATION_STATUS"
                 desc="Size and units downloaded and total, the origin domain, and the current status od download.">
          <ph name="DOWNLOAD_RECEIVED_AND_TOTAL">$1<ex>54/154 MB</ex></ph>, <ph name="SUB_STATUS_TEXT">$2<ex>24 secs remaining</ex></ph>
From <ph name="DOWNLOAD_DOMAIN">$3<ex>example.com</ex></ph>
        </message>
        <message name="IDS_DOWNLOAD_NOTIFICATION_STATUS_COMPLETED"
                 desc="Size and units downloaded, and the origin domain.">
          <ph name="DOWNLOAD_RECEIVED">$1<ex>154 MB</ex></ph> from <ph name="DOWNLOAD_DOMAIN">$2<ex>example.com</ex></ph>
        </message>
      </if>
      <message name="IDS_DOWNLOAD_STATUS_IN_PROGRESS"
               desc="Size and units downloaded, time remaining.">
        <ph name="DOWNLOAD_RECEIVED">$1<ex>54/154 MB</ex></ph>, <ph name="TIME_LEFT">$2<ex>5s</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_STATUS_IN_PROGRESS_WITH_DOMAIN"
               desc="Size and units downloaded, time remaining.">
        <ph name="DOWNLOAD_RECEIVED">$1<ex>54/154 MB</ex></ph> from <ph name="DOWNLOAD_DOMAIN">$2<ex>example.com</ex></ph>, <ph name="TIME_LEFT">$3<ex>5s</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_STATUS_SIZES"
               desc="Size and units downloaded.">
        <ph name="DOWNLOAD_RECEIVED">$1<ex>54kB</ex></ph>/<ph name="DOWNLOAD_TOTAL">$2<ex>154MB</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_STATUS_OPEN_IN"
               desc="Time left until the file download completes and the file is opened.">
        Opening in <ph name="TIME_REMAINING">$1<ex>5 sec</ex></ph>...
      </message>
      <message name="IDS_DOWNLOAD_STATUS_OPEN_WHEN_COMPLETE"
         desc="Status that the file download will be opened when the download completes.">
        Opening when complete
      </message>
      <message name="IDS_DOWNLOAD_STATUS_OPENING"
               desc="Temporary status shown when a user has clicked to open a downloaded file.">
        Opening <ph name="FILE">$1<ex>image.jpg</ex></ph>...
      </message>
      <message name="IDS_DOWNLOAD_STATUS_IN_PROGRESS_SHORT" desc="Short status text that appears on unknown-sized downloads in progress.">
        In progress
      </message>
      <message name="IDS_DOWNLOAD_STATUS_CANCELLED" desc="Text that appears under the downloaded files that have been canceled.">
        Canceled
      </message>
      <!-- TODO(dbeam): can this be merged with IDS_DOWNLOAD_FILE_REMOVED? -->
      <message name="IDS_DOWNLOAD_STATUS_REMOVED" desc="Text that appears under the downloaded files that have been removed.">
        Removed
      </message>
      <message name="IDS_DOWNLOAD_STATUS_INTERRUPTED" desc="Status text for a download item that was interrupted.">
        Failed - <ph name="INTERRUPT_REASON">$1<ex>Disk full</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_STATUS_COMPLETED" desc="Status text for download item that was completed.">
        Completed
      </message>
      <message name="IDS_DOWNLOAD_UNCONFIRMED_PREFIX" desc="The prefix used in the unconfirmed download file.">
        Unconfirmed
      </message>
      <if expr="is_android">
        <message name="IDS_PROMPT_DANGEROUS_DOWNLOAD"
                 desc="Mobile: Message shown to the user to validate the download of a dangerous file.">
          This type of file can harm your device. Do you want to keep <ph name="FILE_NAME">$1<ex>malware.exe</ex></ph> anyway?
        </message>
        <message name="IDS_PROMPT_DANGEROUS_DOWNLOAD_EXTENSION"
           desc="Mobile: Message shown to the user to validate the download of an extension file.">
          Extensions, apps, and themes can harm your device. Are you sure you want to continue?
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_PROMPT_DANGEROUS_DOWNLOAD"
                 desc="Message shown to the user to validate the download of a dangerous file.">
          This type of file can harm your computer. Do you want to keep <ph name="FILE_NAME">$1<ex>malware.exe</ex></ph> anyway?
        </message>
        <message name="IDS_PROMPT_DANGEROUS_DOWNLOAD_EXTENSION"
           desc="Message shown to the user to validate the download of an extension file.">
          Extensions, apps, and themes can harm your computer. Are you sure you want to continue?
        </message>
      </if>
      <message name="IDS_PROMPT_UNCOMMON_DOWNLOAD_CONTENT"
         desc="Message shown to the user to validate the download when the download content is classified as uncommon by safebrowsing.">
        <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> is not commonly downloaded and could be dangerous.
      </message>
      <if expr="chromeos">
        <message name="IDS_PROMPT_BLOCKED_MALICIOUS_DOWNLOAD_TITLE"
                 desc="In the download notification, a title of message shown for blocked download">
          Malicious download blocked
        </message>
      </if>
      <message name="IDS_CONFIRM_KEEP_DANGEROUS_DOWNLOAD_TITLE"
               desc="Title for the confirmation dialog asking whether the user really meant to keep a dangerous download">
        Confirm Download
      </message>
      <message name="IDS_RESTORE_KEEP_DANGEROUS_DOWNLOAD_TITLE"
               desc="Title for the confirmation dialog asking whether the user really meant to keep a dangerous download">
        Recover malware?
      </message>
      <message name="IDS_PROMPT_CONFIRM_KEEP_DANGEROUS_DOWNLOAD"
               desc="Prompt text for the confirmation dialog asking whether the user really meant to keep a dangerous download">
        This file may be harmful for your computer.
      </message>
      <message name="IDS_PROMPT_CONFIRM_KEEP_MALICIOUS_DOWNLOAD_LEAD"
               desc="Lead prompt text for the confirmation dialog asking whether the user really meant to keep a malicious download">
        This file will harm your computer.
      </message>
      <message name="IDS_PROMPT_CONFIRM_KEEP_MALICIOUS_DOWNLOAD_BODY"
               desc="Body prompt text for the confirmation dialog asking whether the user really meant to keep a malicious download">
Even if you have downloaded files from this website before, the website might have been hacked. Instead of recovering this file, you can retry the download later.
      </message>
      <message name="IDS_CONFIRM_DOWNLOAD_AGAIN"
               desc="Text for the button used to confirm the dialog asking whether the user really meant to keep dangerous download.">
        Keep anyway
      </message>
      <message name="IDS_CONFIRM_DOWNLOAD_AGAIN_MALICIOUS"
               desc="The text for the button used to confirm that the user DOES want to keep malware.">
        Recover anyway
      </message>
      <message name="IDS_CONFIRM_CANCEL_AGAIN_MALICIOUS"
               desc="Text for the button used to indicate that the user does NOT want to restore a malicious download.">
        Be safe
      </message>
      <message name="IDS_CONFIRM_DOWNLOAD"
               desc="Text for the button used to validate the downloading of a dangerous download.">
        Keep
      </message>
      <message name="IDS_CONFIRM_DOWNLOAD_RESTORE"
               desc="Text for the button used to validate the downloading of a dangerous download.">
        Recover malicious file
      </message>
      <message name="IDS_CONTINUE_EXTENSION_DOWNLOAD"
               desc="Text for the button used to validate the installation of an extension.">
        Continue
      </message>
      <message name="IDS_DISCARD_DOWNLOAD"
               desc="Text for the button used to stop a dangerous download.">
        Discard
      </message>
      <message name="IDS_DISMISS_DOWNLOAD"
               desc="Text for the button used to dismiss a malicious download notification.">
        Dismiss
      </message>

      <!-- Download Tab Items -->
      <message name="IDS_DOWNLOAD_LINK_PAUSE"
               desc="In the download view, 'Pause' link text">
        Pause
      </message>
      <message name="IDS_DOWNLOAD_SEARCH_BUTTON"
               desc="Title of the button in the download page that triggers a search">
        Search downloads
      </message>
      <message name="IDS_MD_DOWNLOAD_SEARCH"
               desc="Placeholder text/label for the search input in the download page">
        Search
      </message>
      <message name="IDS_DOWNLOAD_CLEAR_SEARCH"
               desc="Tooltip text for the button that clears the search term on the downloads page.">
        Clear search
      </message>
      <message name="IDS_DOWNLOAD_SEARCHRESULTSFOR" desc="Format string for search results">
        Search results for '<ph name="SEARCH_STRING">$1</ph>'
      </message>
      <message name="IDS_DOWNLOAD_NO_SEARCH_RESULTS" desc="A message shown for when a search yield no results (no matching downloads).">
        No search results found.
      </message>
      <message name="IDS_DOWNLOAD_NO_DOWNLOADS" desc="A message shown when the user has no downloads to show on chrome://downloads.">
        No downloads found.
      </message>
      <message name="IDS_MD_DOWNLOAD_NO_DOWNLOADS" desc="A message shown when the user has no downloads to show on chrome://downloads.">
        Nothing to see here...
      </message>
      <message name="IDS_DOWNLOAD_LINK_RESUME"
               desc="In the download view, 'Resume' link text">
        Resume
      </message>
      <message name="IDS_DOWNLOAD_LINK_REMOVE"
               desc="In the download view, 'Remove from list' link text">
        Remove from list
      </message>
      <message name="IDS_DOWNLOAD_LINK_CANCEL"
               desc="In the download view, 'Cancel' link text">
        Cancel
      </message>
      <message name="IDS_DOWNLOAD_LINK_RETRY"
               desc="In the download view, 'Retry download' link text">
        Retry download
      </message>
      <message name="IDS_MD_DOWNLOAD_LINK_RETRY"
               desc="In the download view, 'Retry' button text to retry downloading a file.">
        Retry
      </message>
      <if expr="not is_macosx">
        <message name="IDS_DOWNLOAD_LINK_SHOW"
                 desc="In the download view, 'Show in folder' link text">
          Show in folder
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_DOWNLOAD_LINK_SHOW"
                 desc="Mac: In the download view, 'Show in Finder' link text">
          Show in Finder
        </message>
      </if>
      <message name="IDS_DOWNLOAD_LINK_SHOW_ALL_DOWNLOADS"
               desc="In the download notification, 'Show all downloads' button text.">
        Show all downloads
      </message>
      <if expr="chromeos">
        <message name="IDS_DOWNLOAD_LINK_LEARN_MORE_SCANNING"
                 desc="In the download notification, a label of the button to show information about download scanning">
          Learn more
        </message>
      </if>
      <message name="IDS_DOWNLOAD_TAB_CANCELLED"
               desc="Text that appears next to the downloaded files that have been canceled">
        Canceled
      </message>
      <message name="IDS_DOWNLOAD_FILE_REMOVED"
               desc="Text that appears when a downloaded file has been deleted from the user's computer.">
        Deleted
      </message>
      <message name="IDS_DOWNLOAD_TAB_PROGRESS_STATUS_TIME_UNKNOWN"
               desc="The status text for a download in progress in the download manager. This includes information such as speed and received byte counts and is used when we do not know the remaining time">
        <ph name="SPEED">$1<ex>10kB/s</ex></ph> - <ph name="RECEIVED_AMOUNT">$2<ex>40kB</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_TAB_PROGRESS_STATUS"
               desc="The status text for a download in progress in the download manager. This includes information such as speed, received byte counts as well as remaining time">
        <ph name="SPEED">$1<ex>10kB/s</ex></ph> - <ph name="RECEIVED_AMOUNT">$2<ex>40kB</ex></ph>, <ph name="TIME_REMAINING">$3<ex>42 mins left</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_TAB_PROGRESS_SIZE"
               desc="Speed and received byte counts (with total)">
        <ph name="RECEIVED_AMOUNT">$1<ex>40kB</ex></ph> of <ph name="TOTAL_SIZE">$2<ex>250kB</ex></ph>
      </message>
      <message name="IDS_DOWNLOAD_PROGRESS_PAUSED"
               desc="Indicate the download is in progress but paused">
        Paused
      </message>
      <message name="IDS_DOWNLOAD_LINK_CLEAR_ALL"
         desc="Clear all downloads link">
        Clear all
      </message>
      <message name="IDS_DOWNLOAD_LINK_OPEN_DOWNLOADS_FOLDER"
               desc="Open downloads folder link">
        Open downloads folder
      </message>
      <message name="IDS_DOWNLOAD_MORE_ACTIONS"
               desc="Tooltip of a button on the downloads page that shows a menu with actions like 'Open downloads folder' or 'Clear all'">
        More actions...
      </message>
      <message name="IDS_DOWNLOAD_BY_EXTENSION"
               desc="Indicates which extension downloaded this file.">
        Downloaded by &lt;a&gt;<ph name="EXTENSION">$1<ex>The Best Chrome Extension Ever</ex></ph>&lt;/a&gt;
      </message>
      <message name="IDS_DOWNLOAD_BY_EXTENSION_URL"
               desc="Indicates which extension downloaded this file by name and URL.">
        Downloaded by &lt;a href=&quot;<ph name="URL">$1<ex>adblock.com</ex></ph>&quot;&gt;<ph name="EXTENSION">$2<ex>The Best Chrome Extension Ever</ex></ph>&lt;/a&gt;
      </message>
      <message name="IDS_DOWNLOAD_IN_INCOGNITO"
               desc="Indicates a download was started in Incognito mode.">
        Downloaded in Incognito
      </message>

      <!-- Download Notification Labels -->
      <message name="IDS_DOWNLOAD_NOTIFICATION_COPY_TO_CLIPBOARD"
               desc="In the download notification, the text of 'Copy to clipboard' button, which is to copy the file content (eg. an image for image files) to the clipboard">
        Copy to clipboard
      </message>

      <!-- Download Context Menu Items -->
      <if expr="not is_android">
        <if expr="not use_titlecase">
          <if expr="is_macosx">
            <message name="IDS_DOWNLOAD_MENU_SHOW"
                  desc="Mac: Show the file in the Finder, 'Show in Finder' item"
                  meaning="'show in Finder' on Mac in Sentence case">
              &amp;Show in Finder
            </message>
          </if>
          <if expr="not is_macosx">
            <message name="IDS_DOWNLOAD_MENU_SHOW"
                     desc="Show the file in file explorer, 'Show in folder' item"
                  meaning="'show in folder' on non Mac in Sentence case">
              &amp;Show in folder
            </message>
          </if>
          <message name="IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE"
                   desc="Download context menu: Open when download is finished">
            Open when &amp;done
          </message>
          <message name="IDS_DOWNLOAD_MENU_OPEN"
                   desc="Download context menu: Open download">
            &amp;Open
          </message>
          <message name="IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE"
                   desc="Download context menu: Open when download is finished">
            &amp;Always open files of this type
          </message>
          <message name="IDS_DOWNLOAD_MENU_PLATFORM_OPEN"
          desc="Download context menu: Open the download using the default handler for the platform.">
            Open with system viewer
          </message>
          <message name="IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS"
          desc="Download context menu: Always open the download using the default handler for the platform.">
            Always open with system viewer
          </message>
          <message name="IDS_DOWNLOAD_MENU_CANCEL"
                   desc="Download context menu: Cancel">
            &amp;Cancel
          </message>
          <message name="IDS_DOWNLOAD_MENU_PAUSE_ITEM"
                   desc="Download context menu: Pause download">
            &amp;Pause
          </message>
          <message name="IDS_DOWNLOAD_MENU_RESUME_ITEM"
                   desc="Download context menu: Resume download">
            &amp;Resume
          </message>
          <message name="IDS_DOWNLOAD_MENU_DISCARD"
                   desc="Download context menu: Discard malicious download">
            &amp;Discard
          </message>
          <message name="IDS_DOWNLOAD_MENU_KEEP"
                   desc="Download context menu: Keep malicious download">
            &amp;Keep
          </message>
          <message name="IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING"
                   desc="Download context menu: Show information about download scanning">
            &amp;Learn more
          </message>
          <message name="IDS_DOWNLOAD_MENU_LEARN_MORE_INTERRUPTED"
                   desc="Download context menu: Show information about interrupted downloads">
            &amp;More information
          </message>
        </if>
        <if expr="use_titlecase">
           <if expr="is_macosx">
            <message name="IDS_DOWNLOAD_MENU_SHOW"
                     desc="In Title Case: Mac: Show the file in the Finder, 'Show in Finder' item"
                  meaning="'show in Finder' on Mac in Title Case">
              &amp;Show in Finder
            </message>
          </if>
           <if expr="not is_macosx">
            <message name="IDS_DOWNLOAD_MENU_SHOW"
                     desc="In Title Case: Show the file in file explorer, 'Show in folder' item"
                  meaning="'show in folder' on non Mac in Title Case">
              &amp;Show in Folder
            </message>
          </if>
          <message name="IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE"
                   desc="In Title Case: Download context menu: Open when download is finished">
            Open When &amp;Done
          </message>
          <message name="IDS_DOWNLOAD_MENU_OPEN"
                   desc="In Title Case: Download context menu: Open download">
            &amp;Open
          </message>
          <message name="IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE"
                   desc="In Title Case: Download context menu: Open when download is finished">
            &amp;Always Open Files of This Type
          </message>
          <message name="IDS_DOWNLOAD_MENU_PLATFORM_OPEN"
                   desc="In Title Case: Download context menu: Open the download using the default handler for the platform.">
            Open With System Viewer
          </message>
          <message name="IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS"
                   desc="In Title Case: Download context menu: Always open the download using the default handler for the platform.">
            Always Open With System Viewer
          </message>
          <message name="IDS_DOWNLOAD_MENU_CANCEL"
                   desc="In Title Case: Download context menu: Cancel">
            &amp;Cancel
          </message>
          <message name="IDS_DOWNLOAD_MENU_PAUSE_ITEM"
                   desc="In Title Case: Download context menu: Pause download">
            &amp;Pause
          </message>
          <message name="IDS_DOWNLOAD_MENU_RESUME_ITEM"
                   desc="In Title Case: Download context menu: Resume download">
            &amp;Resume
          </message>
          <message name="IDS_DOWNLOAD_MENU_DISCARD"
                   desc="In Title Case: Download context menu: Discard malicious download">
            &amp;Discard
          </message>
          <message name="IDS_DOWNLOAD_MENU_KEEP"
                   desc="In Title Case: Download context menu: Keep malicious download">
            &amp;Keep
          </message>
          <message name="IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING"
                   desc="In Title Case: Download context menu: Show information about download scanning">
            &amp;Learn More
          </message>
          <message name="IDS_DOWNLOAD_MENU_LEARN_MORE_INTERRUPTED"
                   desc="In Title Case: Download context menu: Show information about interrupted downloads">
            &amp;More Information
          </message>
        </if>  <!-- not use_titlecase -->
        <if expr="is_win">
          <message name="IDS_DOWNLOAD_MENU_ALWAYS_OPEN_PDF_IN_READER"
                   desc="Download context menu: Always open PDFs using Adobe Reader">
            Always open in Adobe Reader
          </message>
        </if>
      </if>

      <!-- Remove in-progress downloads confirmation dialog -->
      <if expr="not is_macosx">
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_TITLE" desc="Title of the dialog asking for user confirmation to close the browser or the last incognito window when one or more downloads are in progress. If necessary, add '#' for plural cases. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
       =1 {Download in progress} other {Downloads in progress}}
      </message>
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL" desc="Button text for canceling the downloads and closing the browser or the last incognito window when one or more downloads are in progress. If necessary, add '#' for plural cases. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
        =1 {Cancel download} other {Cancel downloads}}
      </message>
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL" desc="Button text for canceling the closing of the browser or the last incognito window when one or more downloads are in progress. If necessary, add '#' for plural cases. [ICU Syntax]">
      {NUM_DOWNLOAD, plural, =1 {Continue download} other {Continue downloads}}
      </message>
      </if>
      <if expr="is_macosx">
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_TITLE" desc="In Title Case: Title of the dialog asking for user confirmation to close the browser or the last incognito window when one or more downloads are in progress. If necessary, add '#' for plural cases. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
       =1 {Download in Progress} other {Downloads in Progress}}
      </message>
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL" desc="In Title Case: Button text for canceling the downloads and closing the browser or the last incognito window when one or more downloads are in progress. If necessary, add '#' for plural cases. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
        =1 {Cancel Download} other {Cancel Downloads}}
      </message>
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL" desc="Button text for canceling the closing of the browser or the last incognito window when one or more downloads are in progress. If necessary, add '#' for plural cases. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
        =1 {Continue Download} other {Continue Downloads}}
      </message>
      </if>
      <message name="IDS_INCOGNITO_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the last incognito window when one incognito download is in progress. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
        =1 {A download is currently in progress. Do you want to cancel the download and exit incognito mode?}
        other {# downloads are currently in progress. Do you want to cancel the downloads and exit incognito mode?}}
      </message>

      <!-- Dialog that asks whether user wants to participate in Safe Browsing Extended Reporting -->
      <message name="IDS_FEEDBACK_SERVICE_DIALOG_OK_BUTTON_LABEL" desc="Button that elects to upload suspected malicious files for analysis">
        Yes, I want to help
      </message>
      <message name="IDS_FEEDBACK_SERVICE_DIALOG_CANCEL_BUTTON_LABEL" desc="Button that elects not to upload suspected malicious files for analysis (default button)">
        No, thanks
      </message>

      <!-- Bookmark app bubble -->
      <if expr="is_macosx">
        <message name="IDS_ADD_TO_APPLICATIONS_BUBBLE_TITLE" desc="Title of the bubble adding a bookmark app to the Applications Folder.">
          Add to Applications
        </message>
      </if>
      <if expr="use_ash">
        <message name="IDS_ADD_TO_SHELF_BUBBLE_TITLE" desc="Title of the bubble for adding a bookmark app to the shelf.">
          Add to shelf
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_ADD_TO_DESKTOP_BUBBLE_TITLE" desc="Title of the bubble for adding a bookmark app to the desktop.">
          Add to desktop
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_ADD_TO_DESKTOP_BUBBLE_TITLE" desc="Title of the bubble for adding a bookmark app to the desktop.">
          Add to Desktop
        </message>
      </if>

      <message name="IDS_BOOKMARK_APP_AX_BUBBLE_NAME_LABEL" desc="Text preceding the name of a bookmark app, read by spoken feedback.">
        Shortcut name
      </message>
      <message name="IDS_BOOKMARK_APP_BUBBLE_OPEN_AS_WINDOW" desc="Checkbox text for opening the bookmark app as a window.">
        Open as window
      </message>

      <!-- Quit all apps confirmation dialog -->
      <if expr="is_macosx">
        <message name="IDS_QUIT_WITH_APPS_NOTIFICATION_DISPLAY_SOURCE" desc="Display source for the notification when quitting with apps open.">
          Quit
        </message>
        <message name="IDS_QUIT_WITH_APPS_EXPLANATION" desc="Text displayed in a notification explaining that Chrome will continue running in the background as long as there are Chrome Apps open.">
          Chrome will keep running while Chrome Apps are open.
        </message>
        <message name="IDS_QUIT_WITH_APPS_QUIT_LABEL" desc="Button text to quit all running Chrome apps.">
          Quit all Chrome Apps
        </message>
        <message name="IDS_QUIT_WITH_APPS_SUPPRESSION_LABEL" desc="Button text to prevent a notification from showing in future.">
          Don't show this again
        </message>
      </if>

      <!-- "Create application shortcuts" menu item -->
      <if expr="is_macosx">
        <message name="IDS_ADD_TO_APPLICATIONS" desc="Button text for adding a bookmark app to the Applications Folder.">
          Add to Applications...
        </message>
      </if>
      <if expr="use_ash">
        <message name="IDS_ADD_TO_SHELF" desc="Button text for adding a bookmark app to the shelf.">
          Add to shelf...
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_CREATE_SHORTCUTS" desc="Default installation menu label">
          Create application &amp;shortcuts...
        </message>
        <message name="IDS_ADD_TO_DESKTOP" desc="Button text for adding a bookmark app to the desktop.">
          Add to desktop...
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_CREATE_SHORTCUTS" desc="In Title Case: Default installation menu label">
          Create Application &amp;Shortcuts...
        </message>
        <message name="IDS_ADD_TO_DESKTOP" desc="Button text for adding a bookmark app to the desktop.">
          Add to Desktop...
        </message>
      </if>

      <!-- "Application Information" dialog -->
      <if expr="not use_titlecase">
        <message name="IDS_APPLICATION_INFO_WEB_STORE_LINK" desc="Text for the link that opens the app or extension in the Web Store..">
          View in store
        </message>
        <message name="IDS_APPLICATION_INFO_HOMEPAGE_LINK" desc="Text for the link that opens the app or extension's homepage, as specified by the developer.">
          Developer website
        </message>
        <message name="IDS_APPLICATION_INFO_APP_OVERVIEW_TITLE" desc="Text displayed above the current details for the app or extension.">
          Overview
        </message>
        <message name="IDS_APPLICATION_INFO_APP_PERMISSIONS_TITLE" desc="Text displayed above the current permissions for the app or extension.">
          Permissions
        </message>
        <message name="IDS_APPLICATION_INFO_UNINSTALL_BUTTON_TEXT" desc="Text for the button that removes (uninstalls) the app or extension.">
          Remove...
        </message>
        <message name="IDS_APPLICATION_INFO_LICENSES_BUTTON_TEXT" desc="Text for the button that displays the licenses for the app or extension.">
          Licenses
        </message>
        <message name="IDS_APPLICATION_INFO_SIZE_LABEL" desc="Text displayed before the app or extension's size on disk in the details section of the dialog.">
          Size:
        </message>
        <message name="IDS_APPLICATION_INFO_VERSION_LABEL" desc="Text displayed before the app or extension's version in the details section of the dialog.">
          Version:
        </message>
        <message name="IDS_APPLICATION_INFO_CREATE_SHORTCUTS_BUTTON_TEXT" desc="Text for the button that opens the dialog to create shortcuts for the app.">
          Create shortcuts...
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_APPLICATION_INFO_WEB_STORE_LINK" desc="In Title Case: Text for the link that opens the app or extension in the Web Store..">
          View in Store
        </message>
        <message name="IDS_APPLICATION_INFO_HOMEPAGE_LINK" desc="In Title Case: Text for the link that opens the app or extension's homepage, as specified by the developer.">
          Developer Website
        </message>
        <message name="IDS_APPLICATION_INFO_APP_OVERVIEW_TITLE" desc="In Title Case: Text displayed above the current details for the app or extension.">
          Overview
        </message>
        <message name="IDS_APPLICATION_INFO_APP_PERMISSIONS_TITLE" desc="In Title Case: Text displayed above the current permissions for the app or extension.">
          Permissions
        </message>
        <message name="IDS_APPLICATION_INFO_UNINSTALL_BUTTON_TEXT" desc="In Title Case: Text for the button that removes (uninstalls) the app or extension.">
          Remove...
        </message>
        <message name="IDS_APPLICATION_INFO_LICENSES_BUTTON_TEXT" desc="In Title Case: Text for the button that displays the licenses for the app or extension.">
          Licenses
        </message>
        <message name="IDS_APPLICATION_INFO_SIZE_LABEL" desc="In Title Case: Text displayed before the app or extension's size on disk in the details section of the dialog.">
          Size:
        </message>
        <message name="IDS_APPLICATION_INFO_VERSION_LABEL" desc="In Title Case: Text displayed before the app or extension's version in the details section of the dialog.">
          Version:
        </message>
        <message name="IDS_APPLICATION_INFO_CREATE_SHORTCUTS_BUTTON_TEXT" desc="In Title Case: Text for the button that opens the dialog to create shortcuts for the app.">
          Create Shortcuts...
        </message>
      </if>
      <message name="IDS_APPLICATION_INFO_SIZE_LOADING_LABEL" desc="Text displayed instead of the app or extension's size on disk in the details section of the dialog while the size is being calculated.">
        Calculating...
      </message>
      <message name="IDS_APPLICATION_INFO_SIZE_SMALL_LABEL" desc="Text displayed instead of the app or extension's size for apps and extensions that are less than 1 megabyte in size.">
        &lt; 1 MB
      </message>
      <message name="IDS_APPLICATION_INFO_REVOKE_PERMISSION_ALT_TEXT" desc="Alt text displayed on hover (or in a screen reader) on the icon button that revokes (removes) the permission from this app.">
        Revoke the permission '<ph name="PERMISSION">$1<ex>Access your USB and Bluetooth devices</ex></ph>'
      </message>
      <message name="IDS_APPLICATION_INFO_APP_NO_PERMISSIONS_TEXT" desc="Text displayed in the Permissions area of the dialog if the app has no permissions.">
        This app requires no special permissions.
      </message>
      <message name="IDS_APPLICATION_INFO_EXTENSION_NO_PERMISSIONS_TEXT" desc="Text displayed in the Permissions area of the dialog if the extension has no permissions.">
        This extension requires no special permissions.
      </message>

      <message name="IDS_APPLICATION_INFO_RETAINED_FILES" desc="A line of explanatory text that precedes the list of files the app has permanent access to, showing the number of files. This is shown when an app has persistent access to files. [ICU Syntax]">
          {NUM_FILES, plural,
           =1 {Access a file stored on your computer}
           other {Access # files stored on your computer}}
      </message>

      <message name="IDS_APPLICATION_INFO_RETAINED_DEVICES" desc="A line of explanatory text that precedes the list of USB devices the app has permanent access to, showing the number of USB devices. This is shown when an app has persistent access to USB devices. [ICU Syntax]">
        {NUM_DEVICES, plural,
         =1 {Communicate with a USB device}
         other {Communicate with # USB devices}}
      </message>

      <!-- "Create application shortcuts" dialog -->
      <if expr="not use_titlecase">
        <message name="IDS_CREATE_SHORTCUTS_TITLE" desc="Title of the dialog to create application shortcuts for current page.">
          Create application shortcuts
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_CREATE_SHORTCUTS_TITLE" desc="In Title Case: title of the dialog to create application shortcuts for current page.">
          Create Application Shortcuts
        </message>
      </if>
      <message name="IDS_CREATE_SHORTCUTS_LABEL" desc="Contents of the main label in the create application shortcuts dialog explaining the dialog.">
        Create application shortcuts in the following places:
      </message>
      <message name="IDS_CREATE_SHORTCUTS_DESKTOP_CHKBOX" desc="Label of the checkbox to create an application shortcut on the desktop.">
        Desktop
      </message>
      <message name="IDS_CREATE_SHORTCUTS_MENU_CHKBOX" desc="Label of the checkbox to create an application shortcut in the system's applications menu.">
        Applications menu
      </message>
      <if expr="is_macosx">
        <message name="IDS_CREATE_SHORTCUTS_APP_FOLDER_CHKBOX" desc="Label of the checkbox to create an application shortcut in the system's applications folder.">
          Applications folder
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_CREATE_SHORTCUTS_START_MENU_CHKBOX" desc="Label of the checkbox to create an application shortcut in the start menu.">
          Start menu
        </message>
        <message name="IDS_CREATE_SHORTCUTS_QUICK_LAUNCH_BAR_CHKBOX" desc="Label of the checkbox to create an application shortcut in quick launch bar.">
          Quick launch bar
        </message>
        <message name="IDS_PIN_TO_TASKBAR_CHKBOX" desc="Label of the checkbox to pin an application shortcut to taskbar.">
          Pin to Taskbar
        </message>
      </if>
      <message name="IDS_CREATE_SHORTCUTS_COMMIT" desc="Title of the button to actually create the shortcuts.">
        Create
      </message>

      <!-- Content blocking strings -->
      <message name="IDS_AUTOMATIC_DOWNLOADS_TAB_LABEL" desc="Header for multiple automatic downloads page on Content Settings dialog">
        Automatic Downloads
      </message>
      <message name="IDS_AUTOMATIC_DOWNLOADS_ALLOW_RADIO" desc="A radio button in Content Settings dialog to allow all sites to download multiple files automatically.">
        Allow all sites to download multiple files automatically
      </message>
      <message name="IDS_AUTOMATIC_DOWNLOADS_ASK_RADIO" desc="A radio button in Content Settings dialog to configure multiple automatic downloads per-site.">
        Ask when a site tries to download files automatically after the first file (recommended)
      </message>
      <message name="IDS_AUTOMATIC_DOWNLOADS_BLOCK_RADIO" desc="A radio button in Content Settings dialog to deny all sites to download multiple files automatically.">
        Do not allow any site to download multiple files automatically
      </message>
      <message name="IDS_BLOCKED_DOWNLOAD_NO_ACTION" desc="Radio button to keep blocking automatic downloads">
        Continue blocking automatic downloads of multiple files
      </message>
      <message name="IDS_BLOCKED_DOWNLOAD_UNBLOCK" desc="Radio button to unblock automatic downloads">
        Always allow <ph name="HOST">$1<ex>example.com</ex></ph> to download multiple files
      </message>
      <message name="IDS_BLOCKED_DOWNLOADS_LINK" desc="Link to downloads section of content blocking management dialog, displayed in bubble when a page tries to download files automatically.">
        Manage download settings...
      </message>
      <message name="IDS_BLOCKED_DOWNLOAD_TITLE" desc="Title for the page action when an automatic download was blocked">
        This site attempted to download multiple files automatically.
      </message>
      <message name="IDS_BLOCKED_DOWNLOADS_EXPLANATION" desc="Explanatory animated text that appears (and then disappears) in the address line when a download is blocked">
        Download blocked
      </message>
      <message name="IDS_ALLOWED_DOWNLOAD_TITLE" desc="Title for the page action when automatic downloads were allowed">
        This site downloaded multiple files automatically.
      </message>
      <message name="IDS_ALLOWED_DOWNLOAD_NO_ACTION" desc="Radio button to keep allowing automatic downloads">
        Continue allowing automatic downloads of multiple files
      </message>
      <message name="IDS_ALLOWED_DOWNLOAD_BLOCK" desc="Radio button to block automatic downloads">
        Always block multiple automatic downloads on <ph name="HOST">$1<ex>example.com</ex></ph>
      </message>

      <message name="IDS_BLOCKED_COOKIES_TITLE" desc="Tooltip and bubble info header text when a page is not allowed to write cookies or other site data.">
        This page was prevented from setting cookies.
      </message>
      <message name="IDS_ACCESSED_COOKIES_TITLE" desc="Tooltip and bubble info header text when a page wrote cookies or other site data.">
        This page set cookies.
      </message>
      <message name="IDS_BLOCKED_COOKIES_LINK" desc="Link to cookie section of content blocking management dialog, displayed in bubble when a page tries to write cookies or other site data.">
        Manage cookie blocking...
      </message>
      <message name="IDS_BLOCKED_COOKIES_INFO" desc="Info link to a dialog showing the blocked/allowed cookies, displayed in bubble when a page tries to write cookies or other site data.">
        Show cookies and other site data...
      </message>
      <message name="IDS_BLOCKED_IMAGES_TITLE" desc="Tooltip and bubble info header text when a page is not allowed to display images.">
        Images were blocked on this page.
      </message>
      <message name="IDS_BLOCKED_COOKIES_UNBLOCK" desc="Radio button choice to unblock a site from setting cookies, displayed in bubble when a page tries to set cookies.">
        Always allow <ph name="HOST">$1<ex>mail.google.com</ex></ph> to set cookies
      </message>
      <message name="IDS_BLOCKED_IMAGES_UNBLOCK" desc="Radio button choice to unblock a site from showing images, displayed in bubble when a page tries to display images.">
        Always allow <ph name="HOST">$1<ex>mail.google.com</ex></ph> to show images
      </message>
      <message name="IDS_BLOCKED_COOKIES_NO_ACTION" desc="Radio button choice to continue blocking a site from setting cookies, displayed in bubble when a page tries to set cookies.">
        Continue blocking cookies
      </message>
      <message name="IDS_ALLOWED_COOKIES_NO_ACTION" desc="Radio button choice to keep allowing a site to set the cookies, displayed in bubble when a page tries to set cookies.">
        Continue allowing cookies
      </message>
      <message name="IDS_ALLOWED_COOKIES_BLOCK" desc="Radio button choice to block a site to set the cookies, displayed in bubble when a page tries to set cookies.">
        Always block cookies on <ph name="HOST">$1<ex>mail.google.com</ex></ph>
      </message>
      <message name="IDS_BLOCKED_IMAGES_NO_ACTION" desc="Radio button choice to continue blocking a site from showing images, displayed in bubble when a page tries to display images.">
        Continue blocking images
      </message>
      <message name="IDS_BLOCKED_IMAGES_LINK" desc="Link to images section of content blocking management dialog, displayed in bubble when a page tries to display images.">
        Manage image blocking...
      </message>
      <message name="IDS_BLOCKED_POPUPS_TOOLTIP" desc="Tooltip text when a page is not allowed to display popups.">
        Pop-ups were blocked on this page.
      </message>
      <message name="IDS_BLOCKED_POPUPS_TITLE" desc="Bubble info header text when a page is not allowed to display popups.  This appears above a list of popup titles.">
        The following pop-ups were blocked on this page:
      </message>
      <message name="IDS_BLOCKED_POPUPS_UNBLOCK" desc="Radio button choice to unblock a site from showing popups, displayed in bubble when a page tries to display popups.">
        Always allow pop-ups from <ph name="HOST">$1<ex>mail.google.com</ex></ph>
      </message>
      <message name="IDS_BLOCKED_POPUPS_NO_ACTION" desc="Radio button choice to continue blocking a site from showing popups, displayed in bubble when a page tries to display popups.">
        Continue blocking pop-ups
      </message>
      <message name="IDS_BLOCKED_POPUPS_LINK" desc="Link to popups section of content blocking management dialog, displayed in bubble when a page tries to display popups.">
        Manage pop-up blocking...
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_MIC_AND_CAMERA_ALLOW" desc="Radio button choice to allow a site to access microphone and camera, displayed in bubble when a page tries to access microphone and camera.">
        Always allow <ph name="HOST">$1<ex>mail.google.com</ex></ph> to access your camera and microphone
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_MIC_ALLOW" desc="Radio button choice to allow a site to access microphone, displayed in bubble when a page tries to access microphone.">
        Always allow <ph name="HOST">$1<ex>mail.google.com</ex></ph> to access your microphone
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_CAMERA_ALLOW" desc="Radio button choice to allow a site to access camera, displayed in bubble when a page tries to access camera.">
        Always allow <ph name="HOST">$1<ex>mail.google.com</ex></ph> to access your camera
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_MIC_AND_CAMERA_ASK" desc="Radio button choice to ask the user for permission when a site tries to access microphone and camera, displayed in bubble when a page was blocked from accessing microphone and camera.">
        Ask if <ph name="HOST">$1<ex>mail.google.com</ex></ph> wants to access your camera and microphone
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_MIC_ASK" desc="Radio button choice to ask the user for permission when a site tries to access microphone, displayed in bubble when a page was blocked from accessing microphone.">
        Ask if <ph name="HOST">$1<ex>mail.google.com</ex></ph> wants to access your microphone
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_CAMERA_ASK" desc="Radio button choice to ask the user for permission when a site tries to access camera, displayed in bubble when a page was blocked from accessing camera.">
        Ask if <ph name="HOST">$1<ex>mail.google.com</ex></ph> wants to access your camera
      </message>
      <message name="IDS_ALLOWED_MEDIASTREAM_MIC_AND_CAMERA_BLOCK" desc="Radio button choice to block a site to access microphone and camera, displayed in bubble when a page is accessing microphone and camera.">
        Always block camera and microphone access
      </message>
      <message name="IDS_ALLOWED_MEDIASTREAM_MIC_BLOCK" desc="Radio button choice to block a site to access microphone, displayed in bubble when a page is accessing microphone.">
        Always block microphone access
      </message>
      <message name="IDS_ALLOWED_MEDIASTREAM_CAMERA_BLOCK" desc="Radio button choice to block a site to access camera, displayed in bubble when a page is accessing camera.">
        Always block camera access
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_MIC_AND_CAMERA_NO_ACTION" desc="Radio button choice to block a site to access microphone and camera, displayed in bubble when a page was blocked from accesssing microphone and camera.">
        Continue blocking camera and microphone access
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_MIC_NO_ACTION" desc="Radio button choice to block a site to access microphone, displayed in bubble when a page was blocked from accesssing microphone.">
        Continue blocking microphone access
      </message>
      <message name="IDS_BLOCKED_MEDIASTREAM_CAMERA_NO_ACTION" desc="Radio button choice to block a site to access camera, displayed in bubble when a page was blocked from accesssing camera.">
        Continue blocking camera access
      </message>
      <message name="IDS_ALLOWED_MEDIASTREAM_MIC_AND_CAMERA_NO_ACTION" desc="Radio button choice to allow a site to access microphone and camera, displayed in bubble when a page is accessing microphone and camera.">
        Continue allowing <ph name="HOST">$1<ex>mail.google.com</ex></ph> to access your camera and microphone
      </message>
      <message name="IDS_ALLOWED_MEDIASTREAM_MIC_NO_ACTION" desc="Radio button choice to allow a site to access microphone, displayed in bubble when a page is accessing microphone.">
        Continue allowing <ph name="HOST">$1<ex>mail.google.com</ex></ph> to access your microphone
      </message>
      <message name="IDS_ALLOWED_MEDIASTREAM_CAMERA_NO_ACTION" desc="Radio button choice to allow a site to access camera, displayed in bubble when a page is accessing camera.">
        Continue allowing <ph name="HOST">$1<ex>mail.google.com</ex></ph> to access your camera
      </message>
      <message name="IDS_BLOCKED_POPUPS_EXPLANATORY_TEXT" desc="Explanatory animated text that appears (and then disappears) in the address line when popup is blocked">
        Pop-up blocked
      </message>
      <message name="IDS_BLOCKED_PLUGIN_EXPLANATORY_TEXT" desc="Explanatory animated text that appears (and then disappears) in the address line when plugin is blocked">
        Plugin blocked
      </message>
      <message name="IDS_BLOCKED_JAVASCRIPT_TITLE" desc="Tooltip and bubble info header text when a page is not allowed to run JavaScript.">
        JavaScript was blocked on this page.
      </message>
      <message name="IDS_BLOCKED_JAVASCRIPT_UNBLOCK" desc="Radio button choice to unblock a site from running JavaScript, displayed in bubble when a page tries to run JavaScript.">
        Always allow JavaScript on <ph name="HOST">$1<ex>mail.google.com</ex></ph>
      </message>
      <message name="IDS_BLOCKED_JAVASCRIPT_NO_ACTION" desc="Radio button choice to continue blocking a site from running JavaScript, displayed in bubble when a page tries to run JavaScript.">
        Continue blocking JavaScript
      </message>
      <message name="IDS_BLOCKED_JAVASCRIPT_LINK" desc="Link to JavaScript section of content blocking management dialog, displayed in bubble when a page tries to run JavaScript.">
        Manage JavaScript blocking...
      </message>
      <message name="IDS_BLOCKED_PLUGINS_TITLE" desc="Bubble info header text when a page is not allowed to display plugins.">
        The following plugins were blocked on this page:
      </message>
      <message name="IDS_BLOCKED_PLUGINS_MESSAGE" desc="Tooltip and message when a page is not allowed to display plugins.">
        Plugins were blocked on this page.
      </message>
      <message name="IDS_BLOCKED_PLUGINS_UNBLOCK_ALL" desc="Radio button choice to unblock a site from using plugins, displayed in bubble when a page tries to use plugins.">
        Always allow plugins on <ph name="HOST">$1<ex>mail.google.com</ex></ph>
      </message>
      <if expr="is_macosx">
        <message name="IDS_BLOCKED_PLUGINS_UNBLOCK" desc="Radio button choice to unblock a site from using *a specific set* of plugins, displayed in bubble when a page tries to use plugins.">
          Always allow these plugins on <ph name="HOST">$1<ex>mail.google.com</ex></ph>
        </message>
      </if>
      <message name="IDS_BLOCKED_PLUGINS_NO_ACTION" desc="Radio button choice to continue blocking a site from using plugins, displayed in bubble when a page tries to use plugins.">
        Continue blocking plugins
      </message>
      <message name="IDS_BLOCKED_PLUGINS_LINK" desc="Link to plugins section of content blocking management dialog, displayed in bubble when a page tries to display plugins.">
        Manage plugin blocking...
      </message>
      <message name="IDS_BLOCKED_PLUGINS_LOAD_ALL" desc="Button to load all blocked plugins on a page, displayed in bubble when a page tries to display plugins.">
        Run all plugins this time
      </message>

      <!-- Administrator-provided certificate notifications -->
      <message name="IDS_CERT_POLICY_PROVIDED_CERT_HEADER" desc="Text that is displayed in the header of the Website Settings popup when using an administrator-provided certificate">
        Using an administrator-provided certificate
      </message>
      <message name="IDS_CERT_POLICY_PROVIDED_CERT_MESSAGE" desc="Text that is displayed in the Website Settings popup when using an administrator-provided certificate">
        You have accessed content using an administrator-provided certificate. Data you provide to <ph name="DOMAIN">$1<ex>www.google.com</ex></ph> can be intercepted by your administrator.
      </message>

      <!-- Win certificate selector dialog strings.  -->
      <if expr="toolkit_views">
        <message name="IDS_CERT_SELECTOR_SUBJECT_COLUMN" desc="The text of the header for the certificate subject column in the certificate selector dialog.">
          Subject
        </message>
        <message name="IDS_CERT_SELECTOR_ISSUER_COLUMN" desc="The text of the header for the certificate issuer column in the certificate selector dialog.">
          Issuer
        </message>
        <message name="IDS_CERT_SELECTOR_PROVIDER_COLUMN" desc="The text of the header for the certificate provider column in the certificate selector dialog.">
          Provider
        </message>
      </if>

      <!-- Certificate viewer dialog strings that are shared across all the platforms -->
      <message name="IDS_CERT_INFO_SUBJECT_GROUP" desc="The label of the Issued To group in the general page of the certificate info dialog">
        Issued To
      </message>
      <message name="IDS_CERT_INFO_ISSUER_GROUP" desc="The label of the Issued By group in the general page of the certificate info dialog">
        Issued By
      </message>
      <message name="IDS_CERT_INFO_COMMON_NAME_LABEL" desc="The label of the Common Name field in the general page of the certificate info dialog.  (CN) is the name of this field in the standard">
        Common Name (CN)
      </message>
      <message name="IDS_CERT_INFO_ORGANIZATION_LABEL" desc="The label of the Organization field in the general page of the certificate info dialog.  (O) is the name of this field in the standard">
        Organization (O)
      </message>
      <message name="IDS_CERT_INFO_ORGANIZATIONAL_UNIT_LABEL" desc="The label of the Organizational Unit field in the general page of the certificate info dialog.  (OU) is the name of this field in the standard">
        Organizational Unit (OU)
      </message>
      <message name="IDS_CERT_INFO_SERIAL_NUMBER_LABEL" desc="The label of the Serial Number field in the general page of the certificate info dialog.">
        Serial Number
      </message>
      <message name="IDS_CERT_INFO_VALIDITY_GROUP" desc="The label of the group showing the validity (issued and expired dates) in the general page of the certificate info dialog">
        Validity Period
      </message>
      <message name="IDS_CERT_INFO_ISSUED_ON_LABEL" desc="The label of the Issued On field in the general page of the certificate info dialog">
        Issued On
      </message>
      <message name="IDS_CERT_INFO_EXPIRES_ON_LABEL" desc="The label of the Issued On field in the general page of the certificate info dialog">
        Expires On
      </message>
      <message name="IDS_CERT_INFO_FINGERPRINTS_GROUP" desc="The label of the group showing the certificate fingerprints in the general page of the certificate info dialog">
        Fingerprints
      </message>
      <message name="IDS_CERT_INFO_SHA256_FINGERPRINT_LABEL" desc="The label of the SHA-256 Fingerprint field in the general page of the certificate info dialog">
        SHA-256 Fingerprint
      </message>
      <message name="IDS_CERT_INFO_SHA1_FINGERPRINT_LABEL" desc="The label of the SHA-1 Fingerprint field in the general page of the certificate info dialog">
        SHA-1 Fingerprint
      </message>
      <message name="IDS_CERT_EXPORT_TYPE_BASE64" desc="The description of saving a single certificate in base64 encoding.">
        Base64-encoded ASCII, single certificate
      </message>
      <message name="IDS_CERT_EXPORT_TYPE_BASE64_CHAIN" desc="The description of saving a certificate chain in base64 encoding.">
        Base64-encoded ASCII, certificate chain
      </message>
      <message name="IDS_CERT_EXPORT_TYPE_DER" desc="The description of saving a single certificate in DER encoding.">
        DER-encoded binary, single certificate
      </message>
      <message name="IDS_CERT_EXPORT_TYPE_PKCS7" desc="The description of saving a single certificate in PKCS #7 encoding.">
        PKCS #7, single certificate
      </message>
      <message name="IDS_CERT_EXPORT_TYPE_PKCS7_CHAIN" desc="The description of saving a single certificate in PKCS #7 encoding.">
        PKCS #7, certificate chain
      </message>

      <!-- WebUI Certificate viewer dialog strings. Android uses an OS-level certificate manager. -->
      <if expr="not is_android">
        <message name="IDS_CERT_INFO_DIALOG_TITLE" desc="Title of dialog displaying info about a certificate">
          Certificate Viewer: <ph name="CERTIFICATE_NAME">$1<ex>www.google.com</ex></ph>
        </message>
        <message name="IDS_CERT_INFO_GENERAL_TAB_LABEL" desc="Title of the notebook page displaying the basic info about the certificate">
          &amp;General
        </message>
        <message name="IDS_CERT_INFO_DETAILS_TAB_LABEL" desc="Title of the notebook page displaying the details about the certificate">
          &amp;Details
        </message>
        <message name="IDS_CERT_INFO_VERIFIED_USAGES_GROUP" desc="The label of the group in the general page of the certificate info dialog which lists the usages that the certificate is verified for">
          This certificate has been verified for the following usages:
        </message>
        <message name="IDS_CERT_USAGE_SSL_CLIENT" desc="The description of a certificate that is verified for use as an SSL client">
          SSL Client Certificate
        </message>
        <message name="IDS_CERT_USAGE_SSL_SERVER" desc="The description of a certificate that is verified for use as an SSL server">
          SSL Server Certificate
        </message>
        <message name="IDS_CERT_USAGE_SSL_SERVER_WITH_STEPUP" desc="The description of a certificate that is verified for use as an SSL server with step up">
          SSL Server with Step-up
        </message>
        <message name="IDS_CERT_USAGE_EMAIL_SIGNER" desc="The description of a certificate that is verified for signing emails">
          Email Signer Certificate
        </message>
        <message name="IDS_CERT_USAGE_EMAIL_RECEIVER" desc="The description of a
          certificate that is verified for encrypting email">
          Email Encryption Certificate
        </message>
        <message name="IDS_CERT_USAGE_OBJECT_SIGNER" desc="The description of a certificate that is verified for signing executable code">
          Code Signer
        </message>
        <message name="IDS_CERT_USAGE_SSL_CA" desc="The description of a certificate that is verified for use by an SSL certification authority">
          SSL Certification Authority
        </message>
        <message name="IDS_CERT_USAGE_STATUS_RESPONDER" desc="The description of a certificate that is verified for use as a status responder">
          Status Responder Certificate
        </message>
        <message name="IDS_CERT_INFO_IDN_VALUE_FORMAT" desc="The format of values for Common Name and SubjectAltName fields in the certificate info dialog when a name is an Internationalized Domain Name (eg, παράδειγμα.δοκιμή).">
          <ph name="ASCII_NAME">$1<ex>xn--hxajbheg2az3al.xn--jxalpdlp</ex></ph> (<ph name="UNICODE_NAME">$2<ex>see desc; only ASCII allowed in ph.</ex></ph>)
        </message>
        <message name="IDS_CERT_INFO_FIELD_NOT_PRESENT" desc="The text displayed in the certificate info dialog for a given field when the certificate does not contain that field">
          &lt;Not Part Of Certificate&gt;
        </message>
        <message name="IDS_CERT_DETAILS_CERTIFICATE_HIERARCHY_LABEL" desc="The label of the Certificate Hierarchy tree in the details page of the certificate info dialog.">
          Certificate Hierarchy
        </message>
        <message name="IDS_CERT_DETAILS_CERTIFICATE_FIELDS_LABEL" desc="The label of the Certificate Fields tree in the details page of the certificate info dialog.">
          Certificate Fields
        </message>
        <message name="IDS_CERT_DETAILS_CERTIFICATE_FIELD_VALUE_LABEL" desc="The label of the Certificate Field Value text in the details page of the certificate info dialog.">
          Field Value
        </message>
        <message name="IDS_CERT_DETAILS_CERTIFICATE" desc="The label of the Certificate element in the details page of the certificate info dialog.">
          Certificate
        </message>
        <message name="IDS_CERT_DETAILS_VERSION" desc="The label of the Version element in the details page of the certificate info dialog.">
          Version
        </message>
        <message name="IDS_CERT_DETAILS_VERSION_FORMAT" desc="The format of the Version field value in the details page of the certificate info dialog.">
          Version <ph name="NUMBER">$1<ex>3</ex></ph>
        </message>
        <message name="IDS_CERT_DETAILS_SERIAL_NUMBER" desc="The label of the Serial Number element in the details page of the certificate info dialog.">
          Serial Number
        </message>
        <message name="IDS_CERT_DETAILS_CERTIFICATE_SIG_ALG" desc="The label of the Certificate Signature Algorithm element in the details page of the certificate info dialog.">
          Certificate Signature Algorithm
        </message>
        <message name="IDS_CERT_DETAILS_ISSUER" desc="The label of the Issuer element in the details page of the certificate info dialog.">
          Issuer
        </message>
        <message name="IDS_CERT_DETAILS_VALIDITY" desc="The label of the Validity element in the details page of the certificate info dialog.">
          Validity
        </message>
        <message name="IDS_CERT_DETAILS_NOT_BEFORE" desc="The label of the Validity->Not Before element in the details page of the certificate info dialog.">
          Not Before
        </message>
        <message name="IDS_CERT_DETAILS_NOT_AFTER" desc="The label of the Validity->Not After element in the details page of the certificate info dialog.">
          Not After
        </message>
        <message name="IDS_CERT_DETAILS_SUBJECT" desc="The label of the Subject element in the details page of the certificate info dialog. (In this case, subject refers to the entity the certificate was issued to.)">
          Subject
        </message>
        <message name="IDS_CERT_DETAILS_SUBJECT_KEY_INFO" desc="The label of the Subject Public Key Info element in the details page of the certificate info dialog. (In this case, subject refers to the entity the certificate was issued to.)">
          Subject Public Key Info
        </message>
        <message name="IDS_CERT_DETAILS_SUBJECT_KEY_ALG" desc="The label of the Subject Public Key Algorithm element in the details page of the certificate info dialog. (In this case, subject refers to the entity the certificate was issued to.)">
          Subject Public Key Algorithm
        </message>
        <message name="IDS_CERT_DETAILS_SUBJECT_KEY" desc="The label of the Subject's Public Key element in the details page of the certificate info dialog. (In this case, subject refers to the entity the certificate was issued to.)">
          Subject's Public Key
        </message>
        <message name="IDS_CERT_RSA_PUBLIC_KEY_DUMP_FORMAT" desc="Format for displaying a textual dump of an RSA public key.">
  Modulus (<ph name="MODULUS_NUM_BITS">$1<ex>1024</ex></ph> bits):
  <ph name="MODULUS_HEX_DUMP">$2<ex>00 0A 38 CF ...</ex></ph>

  Public Exponent (<ph name="PUBLIC_EXPONENT_NUM_BITS">$3<ex>24</ex></ph> bits):
  <ph name="EXPONENT_HEX_DUMP">$4<ex>01 00 01</ex></ph>
        </message>
        <message name="IDS_CERT_DETAILS_EXTENSIONS" desc="The label of the Extensions element in the details page of the certificate info dialog.">
          Extensions
        </message>
        <message name="IDS_CERT_DETAILS_CERTIFICATE_SIG_VALUE" desc="The label of the Certificate Signature Value element in the details page of the certificate info dialog.">
          Certificate Signature Value
        </message>
        <message name="IDS_CERT_DETAILS_EXPORT_CERTIFICATE" desc="The label of the button to export the selected certificate">
          E&amp;xport...
        </message>

        <message translateable="false" name="IDS_CERT_OID_AVA_COMMON_NAME" desc="">
          CN
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_STATE_OR_PROVINCE" desc="">
          ST
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_ORGANIZATION_NAME" desc="">
          O
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_ORGANIZATIONAL_UNIT_NAME" desc="">
          OU
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_DN_QUALIFIER" desc="">
          dnQualifier
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_COUNTRY_NAME" desc="">
          C
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_SERIAL_NUMBER" desc="">
          serialNumber
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_LOCALITY" desc="">
          L
        </message>
        <message translateable="false" name="IDS_CERT_OID_AVA_DC" desc="">
          DC
        </message>
        <message translateable="false" name="IDS_CERT_OID_RFC1274_MAIL" desc="">
          MAIL
        </message>
        <message translateable="false" name="IDS_CERT_OID_RFC1274_UID" desc="">
          UID
        </message>
        <message translateable="false" name="IDS_CERT_OID_PKCS9_EMAIL_ADDRESS" desc="">
          E
        </message>
        <message translateable="false" name="IDS_CERT_OID_BUSINESS_CATEGORY" desc="">
          businessCategory
        </message>
        <message translateable="false" name="IDS_CERT_OID_EV_INCORPORATION_COUNTRY" desc="">
          incorporationCountry
        </message>

        <message name="IDS_CERT_OID_PKCS1_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_RSA_ENCRYPTION">
          PKCS #1 RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION">
          PKCS #1 MD2 With RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION">
          PKCS #1 MD4 With RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION">
          PKCS #1 MD5 With RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION">
          PKCS #1 SHA-1 With RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION">
          PKCS #1 SHA-256 With RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION">
          PKCS #1 SHA-384 With RSA Encryption
        </message>
        <message name="IDS_CERT_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION" desc="description of public key algorithm SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION">
          PKCS #1 SHA-512 With RSA Encryption
        </message>

        <message name="IDS_CERT_EXT_NS_CERT_TYPE" desc="description of extension Netscape Certificate Type">
          Netscape Certificate Type
        </message>
        <message name="IDS_CERT_EXT_NS_CERT_TYPE_EMAIL" desc="description of a certificate type for email">
          Email Certificate
        </message>
        <message name="IDS_CERT_EXT_NS_CERT_TYPE_EMAIL_CA" desc="description of a certificate type for email certification authority">
          Email Certification Authority
        </message>
        <message name="IDS_CERT_EXT_NS_CERT_BASE_URL" desc="description of extension Netscape Certificate Base URL">
          Netscape Certificate Base URL
        </message>
        <message name="IDS_CERT_EXT_NS_CERT_REVOCATION_URL" desc="description of extension Netscape Certificate Revocation URL">
          Netscape Certificate Revocation URL
        </message>
        <message name="IDS_CERT_EXT_NS_CA_REVOCATION_URL" desc="description of extension Netscape Certification Authority Revocation URL">
          Netscape Certification Authority Revocation URL
        </message>
        <message name="IDS_CERT_EXT_NS_CERT_RENEWAL_URL" desc="description of extension Netscape Certificate Renewal URL">
          Netscape Certificate Renewal URL
        </message>
        <message name="IDS_CERT_EXT_NS_CA_POLICY_URL" desc="description of extension Netscape Certification Authority Policy URL">
          Netscape Certification Authority Policy URL
        </message>
        <message name="IDS_CERT_EXT_NS_SSL_SERVER_NAME" desc="description of extension Netscape Certificate SSL Server Name">
          Netscape Certificate SSL Server Name
        </message>
        <message name="IDS_CERT_EXT_NS_COMMENT" desc="description of extension Netscape Certificate Comment">
          Netscape Certificate Comment
        </message>
        <message name="IDS_CERT_EXT_NS_LOST_PASSWORD_URL" desc="description of extension Netscape Lost Password URL">
          Netscape Lost Password URL
        </message>
        <message name="IDS_CERT_EXT_NS_CERT_RENEWAL_TIME" desc="description of extension Netscape Certificate Renewal Time">
          Netscape Certificate Renewal Time
        </message>
        <message name="IDS_CERT_X509_SUBJECT_DIRECTORY_ATTR" desc="description of extension Certificate Subject Directory Attributes">
          Certificate Subject Directory Attributes
        </message>
        <message name="IDS_CERT_X509_SUBJECT_KEYID" desc="description of extension Certificate Subject Key ID">
          Certificate Subject Key ID
        </message>
        <message name="IDS_CERT_KEYID_FORMAT" desc="format for key id in certificate extensions details">
          Key ID: <ph name="KEY_ID">$1<ex>19 EB 8E 93</ex></ph>
        </message>
        <message name="IDS_CERT_ISSUER_FORMAT" desc="format for issuer in certificate extensions details">
          Issuer: <ph name="CERTIFICATE_AUTHORITY">$1<ex>VeriSign</ex></ph>
        </message>
        <message name="IDS_CERT_SERIAL_NUMBER_FORMAT" desc="format for serial number in certificate extensions details">
          Serial Number: <ph name="SERIAL_NUMBER">$1<ex>19 EB 8E 93</ex></ph>
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE" desc="description of extension Certificate Key Usage">
          Certificate Key Usage
        </message>
        <message name="IDS_CERT_X509_SUBJECT_ALT_NAME" desc="description of extension Certificate Subject Alternative Name">
          Certificate Subject Alternative Name
        </message>
        <message name="IDS_CERT_X509_ISSUER_ALT_NAME" desc="description of extension Certificate Issuer Alternative Name">
          Certificate Issuer Alternative Name
        </message>
        <message name="IDS_CERT_X509_BASIC_CONSTRAINTS" desc="description of extension Certificate Basic Constraints">
          Certificate Basic Constraints
        </message>
        <message name="IDS_CERT_X509_NAME_CONSTRAINTS" desc="description of extension Certificate Name Constraints">
          Certificate Name Constraints
        </message>
        <message name="IDS_CERT_X509_CRL_DIST_POINTS" desc="description of extension CRL Distribution Points">
          CRL Distribution Points
        </message>
        <message name="IDS_CERT_X509_CERT_POLICIES" desc="description of extension Certificate Policies">
          Certificate Policies
        </message>
        <message name="IDS_CERT_X509_POLICY_MAPPINGS" desc="description of extension Certificate Policy Mappings">
          Certificate Policy Mappings
        </message>
        <message name="IDS_CERT_X509_POLICY_CONSTRAINTS" desc="description of extension Certificate Policy Constraints">
          Certificate Policy Constraints
        </message>
        <message name="IDS_CERT_X509_AUTH_KEYID" desc="description of extension Certification Authority Key Identifier">
          Certification Authority Key ID
        </message>
        <message name="IDS_CERT_X509_EXT_KEY_USAGE" desc="description of extension Extended Key Usage">
          Extended Key Usage
        </message>
        <message name="IDS_CERT_X509_AUTH_INFO_ACCESS" desc="description of extension Authority Information Access">
          Authority Information Access
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_SIGNING" desc="description of certificate usage Signing">
          Signing
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_NONREP" desc="description of certificate usage Non-repudiation">
          Non-repudiation
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_ENCIPHERMENT" desc="description of certificate usage Key Encipherment">
          Key Encipherment
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_DATA_ENCIPHERMENT" desc="description of certificate usage Data Encipherment">
          Data Encipherment
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_KEY_AGREEMENT" desc="description of certificate usage Key Agreement">
          Key Agreement
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_CERT_SIGNER" desc="description of certificate usage Certificate Signer">
          Certificate Signer
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_CRL_SIGNER" desc="description of certificate usage CRL Signer">
          CRL Signer
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_ENCIPHER_ONLY" desc="description of certificate usage Encipher Only">
          Encipher Only
        </message>
        <message name="IDS_CERT_X509_KEY_USAGE_DECIPHER_ONLY" desc="description of certificate usage Decipher Only">
          Decipher Only
        </message>
        <message name="IDS_CERT_X509_BASIC_CONSTRAINT_IS_CA" desc="description of certificate constraint Is a Certification Authority">
          Is a Certification Authority
        </message>
        <message name="IDS_CERT_X509_BASIC_CONSTRAINT_IS_NOT_CA" desc="description of certificate constraint Is not a Certification Authority">
          Is not a Certification Authority
        </message>
        <message name="IDS_CERT_X509_BASIC_CONSTRAINT_PATH_LEN" desc="description of certificate constraint Maximum number of intermediate CAs: %S">
          Maximum number of intermediate CAs: <ph name="NUM_INTERMEDIATE_CA">$1<ex>5</ex></ph>
        </message>
        <message name="IDS_CERT_X509_BASIC_CONSTRAINT_PATH_LEN_UNLIMITED" desc="value NUM_INTERMEDIATE_CA when there is no limit">
          unlimited
        </message>
        <message name="IDS_CERT_PKIX_CPS_POINTER_QUALIFIER" desc="description of pointer (URI) to Certification Practice Statement published by Certification Authority">
          Certification Practice Statement Pointer
        </message>
        <message name="IDS_CERT_PKIX_USER_NOTICE_QUALIFIER" desc="description of User Notice certificate policy qualifier">
          User Notice
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_UNUSED" desc="description of certificate revocation for reason Unused">
          Unused
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_KEY_COMPROMISE" desc="description of certificate revocation for reason Key Compromise">
          Key Compromise
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_CA_COMPROMISE" desc="description of certificate revocation for reason CA Compromise">
          CA Compromise
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_AFFILIATION_CHANGED" desc="description of certificate revocation for reason Affiliation Changed">
          Affiliation Changed
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_SUPERSEDED" desc="description of certificate revocation for reason Superseded">
          Superseded
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_CESSATION_OF_OPERATION" desc="description of certificate revocation for reason Cessation of Operation">
          Cessation of Operation
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_CERTIFICATE_HOLD" desc="description of certificate revocation for reason Certificate Hold">
          Certificate on Hold
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_PRIVILEGE_WITHDRAWN" desc="description of certificate revocation for reason Privilege Withdrawn">
          Privilege Withdrawn
        </message>
        <message name="IDS_CERT_REVOCATION_REASON_AA_COMPROMISE" desc="description of certificate revocation for reason AA Compromise">
          AA Compromise
        </message>
        <message name="IDS_CERT_OCSP_RESPONDER_FORMAT" desc="format for info about OCSP responder">
          OCSP Responder: <ph name="LOCATION">$1<ex>Foo</ex></ph>
        </message>
        <message name="IDS_CERT_CA_ISSUERS_FORMAT" desc="format for info about CA Issuers">
          CA Issuers: <ph name="LOCATION">$1<ex>Foo</ex></ph>
        </message>
        <message name="IDS_CERT_UNKNOWN_OID_INFO_FORMAT" desc="format for info about an OID we don't have a specific format for">
          <ph name="OID">$1<ex>OID.1.23.45.6</ex></ph>: <ph name="INFO">$2<ex>Foo</ex></ph>
        </message>
        <message name="IDS_CERT_EXT_KEY_USAGE_FORMAT" desc="format for description of an extended key usage, with its object identifier (OID).">
          <ph name="USAGE">$1<ex>TLS Web Server Authentication</ex></ph> (<ph name="OID">$2<ex>OID.1.3.6.1.5.5.7.3.1</ex></ph>)
        </message>
        <message name="IDS_CERT_MULTILINE_INFO_START_FORMAT" desc="format for header line where further info will appear on the following lines">
          <ph name="OID">$1<ex>OID.1.23.45.6</ex></ph>:
        </message>
        <message name="IDS_CERT_GENERAL_NAME_RFC822_NAME" desc="label for the certRFC822Name general name type">
          Email Address
        </message>
        <message name="IDS_CERT_GENERAL_NAME_DNS_NAME" desc="label for the certDNSName general name type">
          DNS Name
        </message>
        <message name="IDS_CERT_GENERAL_NAME_X400_ADDRESS" desc="label for the certX400Address general name type">
          X.400 Address
        </message>
        <message name="IDS_CERT_GENERAL_NAME_DIRECTORY_NAME" desc="label for the certDirectoryName general name type">
          X.500 Name
        </message>
        <message name="IDS_CERT_GENERAL_NAME_EDI_PARTY_NAME" desc="label for the certEDIPartyName general name type">
          EDI Party Name
        </message>
        <message name="IDS_CERT_GENERAL_NAME_URI" desc="label for the certURI general name type">
          URI
        </message>
        <message name="IDS_CERT_GENERAL_NAME_IP_ADDRESS" desc="label for the certIPAddress general name type">
          IP Address
        </message>
        <message name="IDS_CERT_GENERAL_NAME_REGISTERED_ID" desc="label for the certRegisteredID general name type">
          Registered OID
        </message>
        <message name="IDS_CERT_EDI_PARTY_NAME" desc="format for Electronic Data Identifier (EDI) Party Name">
          Party Name: <ph name="PARTY_NAME">$1<ex>Foo</ex></ph>
        </message>
        <message name="IDS_CERT_EDI_NAME_ASSIGNER" desc="format for Electronic Data Identifier (EDI) Name Assigner">
          Name Assigner: <ph name="NAME_ASSIGNER">$1<ex>Foo</ex></ph>
        </message>
        <message name="IDS_CERT_EXT_MS_CERT_TYPE" desc="description of extension Microsoft Certificate Template Name">
          Microsoft Certificate Template Name
        </message>
        <message name="IDS_CERT_EXT_MS_CA_VERSION" desc="description of extension Microsoft CA Version">
          Microsoft CA Version
        </message>
        <message name="IDS_CERT_EXT_MS_NT_PRINCIPAL_NAME" desc="description of extension Microsoft Principal Name">
          Microsoft Principal Name
        </message>
        <message name="IDS_CERT_EXT_MS_NTDS_REPLICATION" desc="description of extension Microsoft Domain GUID">
          Microsoft Domain GUID
        </message>
        <message name="IDS_CERT_EKU_TLS_WEB_SERVER_AUTHENTICATION" desc="description of extended key usage TLS WWW Server Authentication">
          TLS WWW Server Authentication
        </message>
        <message name="IDS_CERT_EKU_TLS_WEB_CLIENT_AUTHENTICATION" desc="description of extended key usage TLS WWW Client Authentication">
          TLS WWW Client Authentication
        </message>
        <message name="IDS_CERT_EKU_CODE_SIGNING" desc="description of extended key usage Code Signing">
          Code Signing
        </message>
        <message name="IDS_CERT_EKU_EMAIL_PROTECTION" desc="description of extended key usage E-mail Protection">
          Email Protection
        </message>
        <message name="IDS_CERT_EKU_TIME_STAMPING" desc="description of extended key usage Time Stamping">
          Time Stamping
        </message>
        <message name="IDS_CERT_EKU_OCSP_SIGNING" desc="description of extended key usage Signing OCSP Responses">
          Signing OCSP Responses
        </message>
        <message name="IDS_CERT_EKU_MS_INDIVIDUAL_CODE_SIGNING" desc="description of extended key usage Microsoft Individual Code Signing">
          Microsoft Individual Code Signing
        </message>
        <message name="IDS_CERT_EKU_MS_COMMERCIAL_CODE_SIGNING" desc="description of extended key usage Microsoft Commercial Code Signing">
          Microsoft Commercial Code Signing
        </message>
        <message name="IDS_CERT_EKU_MS_TRUST_LIST_SIGNING" desc="description of extended key usage Microsoft Trust List Signing">
          Microsoft Trust List Signing
        </message>
        <message name="IDS_CERT_EKU_MS_TIME_STAMPING" desc="description of extended key usage Microsoft Time Stamping">
          Microsoft Time Stamping
        </message>
        <message name="IDS_CERT_EKU_MS_SERVER_GATED_CRYPTO" desc="description of extended key usage Microsoft Server Gated Crypto">
          Microsoft Server Gated Cryptography
        </message>
        <message name="IDS_CERT_EKU_MS_ENCRYPTING_FILE_SYSTEM" desc="description of extended key usage Microsoft Encrypting File System">
          Microsoft Encrypting File System
        </message>
        <message name="IDS_CERT_EKU_MS_FILE_RECOVERY" desc="description of extended key usage Microsoft File Recovery">
          Microsoft File Recovery
        </message>
        <message name="IDS_CERT_EKU_MS_WINDOWS_HARDWARE_DRIVER_VERIFICATION" desc="description of extended key usage Microsoft Windows Hardware Driver Verification">
          Microsoft Windows Hardware Driver Verification
        </message>
        <message name="IDS_CERT_EKU_MS_QUALIFIED_SUBORDINATION" desc="description of extended key usage Microsoft Qualified Subordination">
          Microsoft Qualified Subordination
        </message>
        <message name="IDS_CERT_EKU_MS_KEY_RECOVERY" desc="description of extended key usage Microsoft Key Recovery">
          Microsoft Key Recovery
        </message>
        <message name="IDS_CERT_EKU_MS_DOCUMENT_SIGNING" desc="description of extended key usage Microsoft Document Signing">
          Microsoft Document Signing
        </message>
        <message name="IDS_CERT_EKU_MS_LIFETIME_SIGNING" desc="description of extended key usage Microsoft Lifetime Signing">
          Microsoft Lifetime Signing
        </message>
        <message name="IDS_CERT_EKU_MS_SMART_CARD_LOGON" desc="description of extended key usage Microsoft Smart Card Logon">
          Microsoft Smart Card Logon
        </message>
        <message name="IDS_CERT_EKU_MS_KEY_RECOVERY_AGENT" desc="description of extended key usage Microsoft Key Recovery Agent">
          Microsoft Key Recovery Agent
        </message>
        <message name="IDS_CERT_EKU_NETSCAPE_INTERNATIONAL_STEP_UP" desc="description of extended key usage Netscape International Step-Up">
          Netscape International Step-Up
        </message>
        <message name="IDS_CERT_EXTENSION_CRITICAL" desc="The text displayed in the certificate details dialog for a given extension which is critical">
          Critical
        </message>
        <message name="IDS_CERT_EXTENSION_NON_CRITICAL" desc="The text displayed in the certificate details dialog for a given extension which is not critical">
          Not Critical
        </message>
        <message name="IDS_CERT_EXTENSION_DUMP_ERROR" desc="The text displayed in the certificate details dialog for a given extension which could not be decoded">
          Error: Unable to decode extension
        </message>

        <!-- Certificate manager dialog strings.  These are only used on platforms that don't have a native certificate manager dialog, such as Linux. -->
        <message name="IDS_CERTIFICATE_MANAGER_TITLE" desc="String to be displayed in the title bar of the certificate manager dialog">
          Certificate manager
        </message>
        <message name="IDS_CERT_MANAGER_PERSONAL_CERTS_TAB_LABEL" desc="Title of the notebook page displaying the user's own certificates">
          Your Certificates
        </message>
        <message name="IDS_CERT_MANAGER_SERVER_CERTS_TAB_LABEL" desc="Title of the notebook page displaying server certificates">
          Servers
        </message>
        <message name="IDS_CERT_MANAGER_CERT_AUTHORITIES_TAB_LABEL" desc="Title of the notebook page displaying certificate authorities">
          Authorities
        </message>
        <message name="IDS_CERT_MANAGER_OTHER_TAB_LABEL" desc="Title of the notebook page displaying certificates that don't fall under any of the other categories">
          Others
        </message>
        <message name="IDS_CERT_MANAGER_USER_TREE_DESCRIPTION" desc="Description label above the tree showing the user's own certificates">
          You have certificates from these organizations that identify you:
        </message>
        <message name="IDS_CERT_MANAGER_SERVER_TREE_DESCRIPTION" desc="Description label above the tree showing server certificates">
          You have certificates on file that identify these servers:
        </message>
        <message name="IDS_CERT_MANAGER_AUTHORITIES_TREE_DESCRIPTION" desc="Description label above the Certificate Authorities tree">
          You have certificates on file that identify these certificate authorities:
        </message>
        <message name="IDS_CERT_MANAGER_OTHER_TREE_DESCRIPTION" desc="Description label above the tree showing certificates that don't fall under any of the other categories">
          You have certificates on file that do not fit in any of the other categories:
        </message>
        <message name="IDS_CERT_MANAGER_VIEW_CERT_BUTTON" desc="Label for the button in the certificate manager which launches the certificate viewer for the selected certificate">
          View...
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_BUTTON" desc="Label for the button in the certificate manager which allows you to import certificates">
          Import...
        </message>
        <message name="IDS_CERT_MANAGER_EXPORT_BUTTON" desc="Label for the button in the certificate manager which allows you to export certificates">
          Export...
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_BUTTON" desc="Label for the button in the certificate manager which allows you to edit certificate trust">
          Edit...
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_BUTTON" desc="Label for the button in the certificate manager which allows you to delete certificates">
          Delete...
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_USER_FORMAT" desc="Confirmation in certificate manager dialog for deleting a user certificate">
          Delete certificate "<ph name="CERTIFICATE_NAME">$1<ex>VeriSign Browser Certificate</ex></ph>"?
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_USER_DESCRIPTION" desc="Description of impact of deleting a user certificate">
          If you delete one of your own certificates, you can no longer use it to identify yourself.
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_SERVER_FORMAT" desc="Confirmation in certificate manager dialog for deleting a server certificate">
          Delete server certificate "<ph name="CERTIFICATE_NAME">$1<ex>www.example.com</ex></ph>"?
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_SERVER_DESCRIPTION" desc="Description of impact of deleting a server certificate">
          If you delete a server certificate, you restore the usual security checks for that server and require it uses a valid certificate.
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_CA_FORMAT" desc="Confirmation in certificate manager dialog for deleting a certification authority certificate">
          Delete CA certificate "<ph name="CERTIFICATE_NAME">$1<ex>Verisign Class 1 Public Primary Certification Authority</ex></ph>"?
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_CA_DESCRIPTION" desc="Description of impact of deleting a certification authority certificate">
          If you delete a Certification Authority (CA) certificate, your browser will no longer trust any certificates issued by that CA.
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_OTHER_FORMAT" desc="Confirmation in certificate manager dialog for deleting a certificate of other type">
          Delete certificate "<ph name="CERTIFICATE_NAME">$1<ex>Example Certificate</ex></ph>"?
        </message>
        <message name="IDS_CERT_MANAGER_EXPORT_PASSWORD_DESC" desc="Description of password prompt in certificate manager for exporting a personal certificate">
          Please enter a password to encrypt this certificate file.
        </message>
        <message name="IDS_CERT_MANAGER_EXPORT_PASSWORD_HELP" desc="Text in password prompt of certificate manager for exporting a personal certificate, reminding user that if they forget the password they're screwed.">
          The password you choose will be required to restore this file later.  Please record it in a safe location.
        </message>
        <message name="IDS_CERT_MANAGER_RESTORE_PASSWORD_DESC" desc="Description of password prompt in certificate manager for restoring a personal certificate">
          Please enter the password that was used to encrypt this certificate file.
        </message>
        <message name="IDS_CERT_MANAGER_PASSWORD_LABEL" desc="The label of the password field in the certificate manager for restoring or exporting a personal certificate">
          Password:
        </message>
        <message name="IDS_CERT_MANAGER_CONFIRM_PASSWORD_LABEL" desc="The label of the field in the certificate manager for re-entering the password when creating a export.">
          Confirm Password:
        </message>
        <message name="IDS_CERT_MANAGER_PKCS12_FILES" desc="The label in the file selector dialog for PKCS #12 file type.">
          PKCS #12 Files
        </message>
        <message name="IDS_CERT_MANAGER_PKCS12_EXPORT_ERROR_TITLE" desc="The title in the error dialog for PKCS #12 file export errors.">
          PKCS #12 Export Error
        </message>
        <message name="IDS_CERT_MANAGER_WRITE_ERROR_FORMAT" desc="The text in the error dialog for PKCS #12 file write errors.">
          There was an error while trying to write the file: <ph name="ERROR_TEXT">$1<ex>Permission denied.</ex></ph>.
        </message>
        <message name="IDS_CERT_MANAGER_UNTRUSTED" desc="This text is displayed next to untrusted certificates in a red box. Untrusted certificates are sometimes added in order to explicitly distrust them. Thus, they will be listed but it's important that the user note that they serve a different purpose from the rest.">
          Untrusted
        </message>
        <message name="IDS_CERT_MANAGER_POLICY_INSTALLED" desc="The text of the popup bubble shown when the user clicks the controlled setting indicator next to a certificate entry.">
          This certificate has been installed by your system administrator.
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_ERROR_TITLE" desc="The title in the error dialog for certificate file import errors.">
          Certificate Import Error
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_INVALID_MAC" desc="The message in the error dialog for certificate files with invalid MAC.">
          Incorrect password or corrupt file.
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_INVALID_FILE" desc="The message in the error dialog for corrupt certificate files.">
          Invalid or corrupt file.
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_MISSING_KEY" desc="The message in the error dialog for certificates without a local private key.">
          The Private Key for this Client Certificate is missing or invalid.
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_UNSUPPORTED" desc="The message in the error dialog for unsupported certificate files.">
          File uses unsupported features.
        </message>
        <message name="IDS_CERT_MANAGER_READ_ERROR_FORMAT" desc="The text in the error dialog for certificate file read errors.">
          There was an error while trying to read the file: <ph name="ERROR_TEXT">$1<ex>File not found.</ex></ph>.
        </message>
        <message name="IDS_CERT_MANAGER_BAD_PASSWORD" desc="The text in the error dialog for entering an incorrect password when importing an encrypted certificate file.">
          Incorrect password.
        </message>
        <message name="IDS_CERT_MANAGER_CERT_PARSE_ERROR" desc="The message in the certificate manager error dialog for importing invalid certificate files.">
          Unable to parse file.
        </message>
        <message name="IDS_CERT_MANAGER_UNKNOWN_ERROR" desc="The text in the error dialog when an unknown error occurs during an operation on the certificate database.">
          Unknown error.
        </message>
        <message name="IDS_CERT_MANAGER_ERROR_NOT_CA" desc="The error message when trying to import certificate authorities and a certificate is not a certification authority">
          Not a Certification Authority.
        </message>
        <message name="IDS_CERT_MANAGER_ERROR_CERT_ALREADY_EXISTS" desc="The error message when trying to import certificate which already exists.">
          Certificate already exists.
        </message>
        <message name="IDS_CERT_MANAGER_DELETE_CERT_ERROR_TITLE" desc="The title in the error dialog for certificate delete errors.">
          Certificate Deletion Error
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_CA_TITLE" desc="Title of the certificate manager edit trust dialog">
          Certificate authority
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_TRUST_LABEL" desc="Line displayed in certificate manager edit trust dialog before the checkboxes for setting certificate trust flags">
          Edit trust settings:
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_CA_TRUST_DESCRIPTION_FORMAT" desc="Description in dialog for editing Certification Authority trust flags">
          The certificate "<ph name="CERTIFICATE_NAME">$1<ex>Verisign Class 1 Public Primary Certification Authority</ex></ph>" represents a Certification Authority.
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_CA_TRUST_SSL_LABEL" desc="Description in Certification Authority trust dialog for the SSL trust checkbox.">
          Trust this certificate for identifying websites.
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_CA_TRUST_EMAIL_LABEL" desc="Description in Certification Authority trust dialog for the Email trust checkbox.">
          Trust this certificate for identifying email users.
        </message>
        <message name="IDS_CERT_MANAGER_EDIT_CA_TRUST_OBJSIGN_LABEL" desc="Description in Certification Authority trust dialog for the Code Signing trust checkbox.">
          Trust this certificate for identifying software makers.
        </message>
        <message name="IDS_CERT_MANAGER_SET_TRUST_ERROR_TITLE" desc="The title in the error dialog for certificate trust editing errors.">
          Error Setting Certificate Trust
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_CA_DESCRIPTION_FORMAT" desc="Description in dialog for importing a Certification Authority and setting its trust flags">
          Do you want to trust "<ph name="CERTIFICATE_NAME">$1<ex>Verisign Class 1 Public Primary Certification Authority</ex></ph>" as a Certification Authority?
        </message>
        <message name="IDS_CERT_MANAGER_CA_IMPORT_ERROR_TITLE" desc="The title in the error dialog for Certification Authority file import errors.">
          Certification Authority Import Error
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_ERROR_FORMAT" desc="The format of per-certificate error messages in import failure dialog">
          <ph name="CERTIFICATE_NAME">$1<ex>www.example.com</ex></ph>: <ph name="ERROR">$2<ex>Not a Certification Authority</ex></ph>
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_SINGLE_NOT_IMPORTED" desc="The header in certificate manager error dialog for single certificates that could not be imported.">
          The file contained one certificate, which was not imported:
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_ALL_NOT_IMPORTED" desc="The header in certificate manager error dialog for list of certificates that could not be imported, when none were successfully imported.">
          The file contained multiple certificates, none of which were imported:
        </message>
        <message name="IDS_CERT_MANAGER_IMPORT_SOME_NOT_IMPORTED" desc="The header in certificate manager error dialog for list of certificates that could not be imported, even though others were.">
          The file contained multiple certificates, some of which were not imported:
        </message>
        <message name="IDS_CERT_MANAGER_SERVER_IMPORT_ERROR_TITLE" desc="The title in the error dialog for Certification Authority file import errors.">
          Server Certificate Import Error
        </message>
        <message name="IDS_CERT_MANAGER_HARDWARE_BACKED_KEY_FORMAT" desc="A format used to create label for hardware-backed keys.">
          <ph name="KEY_NAME">$1<ex>John Doe</ex></ph> (<ph name="DEVICE">$2<ex>hardware-backed</ex></ph>)
        </message>
        <message name="IDS_CERT_MANAGER_HARDWARE_BACKED" desc="A device name to be used for hardware-backed keys.">
          hardware-backed
        </message>
      </if>

      <if expr="chromeos">
        <message name="IDS_CERT_MANAGER_IMPORT_AND_BIND_BUTTON" desc="Label for the button in the certificate manager which allows you to import certificates and bind to your device.">
          Import and Bind to Device...
        </message>
        <message name="IDS_CERT_MANAGER_KEY_FORMAT_LONG" desc="A longer format for keys in the wifi / vpn config dialogs.">
          <ph name="ISSUED_BY">$1<ex>Google Inc</ex></ph> [<ph name="ISSUED_TO">$2<ex>John Doe</ex></ph>]
        </message>
        <message name="IDS_CERT_MANAGER_HARDWARE_BACKED_KEY_FORMAT_LONG" desc="A longer format for hardware-backed keys in the wifi / vpn config dialogs.">
          <ph name="ISSUED_BY">$1<ex>Google Inc</ex></ph> [<ph name="ISSUED_TO">$2<ex>John Doe</ex></ph>] (<ph name="DEVICE">$3<ex>hardware-backed</ex></ph>)
        </message>
      </if>

      <!-- Client certificate enrollment failure infobar -->
      <message name="IDS_ADD_CERT_ERR_INVALID_CERT" desc="Error message when the server returns an invalid client certificate after key generation">
        The server returned an invalid client certificate. Error <ph name="ERROR_number">$1<ex>207</ex></ph> (<ph name="ERROR_NAME">$2<ex>net::ERR_CERT_INVALID</ex></ph>).
      </message>
      <message name="IDS_ADD_CERT_ERR_FAILED" desc="Generic error message for a failure to add the generated certificate to the cert store/keychain">
        There was an error while trying to store the client certificate. Error <ph name="ERROR_number">$1<ex>207</ex></ph> (<ph name="ERROR_NAME">$2<ex>net::ERR_CERT_INVALID</ex></ph>).
      </message>

      <!-- Client certificate enrollment infobar -->
      <message name="IDS_ADD_CERT_SUCCESS_INFOBAR_LABEL" desc="Label displayed in an infobar when the browser successfully imports a certificate">
        Successfully stored client certificate issued by <ph name="ISSUER">$1<ex>VeriSign</ex></ph>.
      </message>
      <message name="IDS_ADD_CERT_SUCCESS_INFOBAR_BUTTON" desc="The label of the 'view' button on the infobar after a client certificate import; clicking opens a certificate viewer for the new certificate">
        View
      </message>

      <!-- DevTools attached infobar -->
      <message name="IDS_DEV_TOOLS_INFOBAR_LABEL" desc="Label displayed in an infobar when external debugger is attached to the browser">
        "<ph name="CLIENT_NAME">$1<ex>Extension Foo</ex></ph>" is debugging this browser.
      </message>

      <!-- DevTools file system access -->
      <message name="IDS_DEV_TOOLS_CONFIRM_ADD_FILE_SYSTEM_MESSAGE" desc="Message displayed in DevTools infobar when user attempts to add file system to DevTools.">
        DevTools requests full access to <ph name="FOLDER_PATH">$1<ex>C:\Projects\foo\</ex></ph>. Make sure you do not expose any sensitive information.
      </message>

      <!-- DevTools confirm infobar button labels -->
      <message name="IDS_DEV_TOOLS_CONFIRM_ALLOW_BUTTON" desc="Used as an 'Allow' button label.">
        Allow
      </message>
      <message name="IDS_DEV_TOOLS_CONFIRM_DENY_BUTTON" desc="Used as an 'Deny' button label.">
        Deny
      </message>

      <!-- Advanced reload button menu -->
      <message name="IDS_RELOAD_MENU_NORMAL_RELOAD_ITEM" desc="Menu item displayed in the Reload dropdown menu when in dev mode">
        Normal Reload
      </message>
      <message name="IDS_RELOAD_MENU_HARD_RELOAD_ITEM" desc="Menu item displayed in the Reload dropdown menu when in dev mode">
        Hard Reload
      </message>
      <message name="IDS_RELOAD_MENU_EMPTY_AND_HARD_RELOAD_ITEM" desc="Menu item displayed in the Reload dropdown menu when in dev mode">
        Empty Cache and Hard Reload
      </message>

      <!-- Basic Auth Dialog -->
      <message name="IDS_LOGIN_DIALOG_TITLE" desc="String to be displayed in the title bar of the login prompt dialog" formatter_data="android_java">
        Authentication Required
      </message>
      <message name="IDS_LOGIN_DIALOG_AUTHORITY" desc="String to be displayed in the login prompt dialog to explain that the user needs to log in, and the name of the web site">
        <ph name="DOMAIN">$1<ex>google.com</ex></ph> requires a username and password.
      </message>
      <message name="IDS_LOGIN_DIALOG_PROXY_AUTHORITY" desc="String to be displayed in the proxy login prompt dialog to explain that the user needs to log in, and the name of the proxy">
        The proxy <ph name="DOMAIN">$1<ex>google.com</ex></ph> requires a username and password.
      </message>
      <message name="IDS_LOGIN_DIALOG_USERNAME_FIELD" desc="The label of the username field in the login prompt dialog" formatter_data="android_java">
        User Name:
      </message>
      <message name="IDS_LOGIN_DIALOG_PASSWORD_FIELD" desc="The label of the password field in the login prompt dialog" formatter_data="android_java">
        Password:
      </message>
      <message name="IDS_LOGIN_DIALOG_OK_BUTTON_LABEL" desc="The label of the 'Log In' button on the login prompt dialog" formatter_data="android_java">
        Log In
      </message>
      <!-- User Image Selection Dialog -->
      <if expr="chromeos">
        <message name="IDS_USER_IMAGE_SCREEN_TITLE" desc="String to be displayed in the title bar of the user image selection dialog">
          Choose your account picture
        </message>
      </if>

      <!-- FindInPage strings -->
      <message name="IDS_FIND_IN_PAGE_COUNT" desc="How many matches found and what item we are showing">
        <ph name="ACTIVE_MATCH">$1<ex>1</ex></ph> of <ph name="TOTAL_MATCHCOUNT">$2<ex>5</ex></ph>
      </message>
      <message name="IDS_FIND_IN_PAGE_PREVIOUS_TOOLTIP" desc="The tooltip for the previous button">
        Previous
      </message>
      <message name="IDS_FIND_IN_PAGE_NEXT_TOOLTIP" desc="The tooltip for the next button">
        Next
      </message>
      <message name="IDS_FIND_IN_PAGE_CLOSE_TOOLTIP" desc="The tooltip for the close button">
        Close find bar
      </message>

      <!-- Fullscreen mode -->
      <message name="IDS_EXIT_FULLSCREEN_MODE" desc="Clickable message displayed on entering full screen mode. Clicking on the link exits full screen mode.">
        Exit full screen
      </message>
      <if expr="not chromeos">
        <message name="IDS_EXIT_FULLSCREEN_MODE_ACCELERATOR" desc="Accelerator description shown next to a link showing 'Exit full screen' e.g. 'Exit full screen (Esc)', where 'Exit full screen' is a link.">
          (<ph name="ACCELERATOR">$1<ex>Esc</ex></ph>)
        </message>
      </if>

      <!-- Task Manager Window -->
      <if expr="enable_task_manager">
        <if expr="not use_titlecase">
          <message name="IDS_TASK_MANAGER_KILL" desc="The caption of the Task Manager kill button">
            End process
          </message>
          <message name="IDS_TASK_MANAGER_PROCESS_ID_COLUMN" desc="The title for Task Manager process ID column.">
            Process ID
          </message>
          <message name="IDS_TASK_MANAGER_GDI_HANDLES_COLUMN" desc="The title for Task Manager GDI handles column.">
            GDI handles
          </message>
          <message name="IDS_TASK_MANAGER_USER_HANDLES_COLUMN" desc="The title for Task Manager USER handles column.">
            USER handles
          </message>
          <message name="IDS_TASK_MANAGER_TASK_COLUMN" desc="The text of the task column">
            Task
          </message>
          <message name="IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN" desc="The text of the NativeClient debug stub port column">
            NaCl debug port
          </message>
          <message name="IDS_TASK_MANAGER_NET_COLUMN" desc="The text of the network usage column">
            Network
          </message>
          <message name="IDS_TASK_MANAGER_CPU_COLUMN" desc="The text of the CPU usage column">
            CPU
          </message>
          <message name="IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN" desc="Task manager process memory column. This is the similar to the process 'working set' reported by the Windows Task Manager">
            Memory
          </message>
          <message name="IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN" desc="Task manager process private memory column. This is the allocated size that cannot be shared with other processes">
            Private memory
          </message>
          <message name="IDS_TASK_MANAGER_SHARED_MEM_COLUMN" desc="Task manager process shared memory column. Shows the size of the memory used by the process which is shared with other processes">
            Shared memory
          </message>
          <message name="IDS_TASK_MANAGER_PROFILE_NAME_COLUMN" desc="The name of the column with the name of the profile in which the page is running, if any.">
            Profile
          </message>
          <message name="IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN" desc="Task manager idle processor wakeups column">
            Idle wake ups
          </message>
          <message name="IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN" desc="Task manager open fds (file descriptors) count column">
            File descriptors
          </message>
          <message name="IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN" desc="Task manager process priority column">
            Process priority
          </message>
          <message name="IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN" desc="Task manager WebCore image cache size column.">
            Image cache
          </message>
          <message name="IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN" desc="Task manager WebCore scripts cache size column.">
            Script cache
          </message>
          <message name="IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN" desc="Task manager WebCore CSS cache size column.">
            CSS cache
          </message>
          <message name="IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN" desc="The text of the video memory usage column">
            GPU memory
          </message>
          <message name="IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN" desc="Amount of memory used by SQLite.">
            SQLite memory
          </message>
          <message name="IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN" desc="Task manager JavaScript memory allocated column.  Shows the amount of memory used by JavaScript within a process">
            JavaScript memory
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_TASK_MANAGER_KILL" desc="The caption of the Task Manager kill button">
            End Process
          </message>
          <message name="IDS_TASK_MANAGER_PROCESS_ID_COLUMN" desc="The title for Task Manager process ID column.">
            Process ID
          </message>
          <message name="IDS_TASK_MANAGER_GDI_HANDLES_COLUMN" desc="The title for Task Manager GDI handles column.">
            GDI Handles
          </message>
          <message name="IDS_TASK_MANAGER_USER_HANDLES_COLUMN" desc="The title for Task Manager USER handles column.">
            USER Handles
          </message>
          <message name="IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN" desc="The text of the NativeClient debug stub port column">
            NaCl Debug Port
          </message>
          <message name="IDS_TASK_MANAGER_TASK_COLUMN" desc="The text of the task column">
            Task
          </message>
          <message name="IDS_TASK_MANAGER_NET_COLUMN" desc="The text of the network usage column">
            Network
          </message>
          <message name="IDS_TASK_MANAGER_CPU_COLUMN" desc="The text of the CPU usage column">
            CPU
          </message>
          <message name="IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN" desc="Task manager process memory column. This is the similar to the process 'working set' reported by the Windows Task Manager">
            Memory
          </message>
          <message name="IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN" desc="Task manager process private memory column. This is the allocated size that cannot be shared with other processes">
            Private Memory
          </message>
          <message name="IDS_TASK_MANAGER_SHARED_MEM_COLUMN" desc="Task manager process shared memory column. Shows the size of the memory used by the process which is shared with other processes">
            Shared Memory
          </message>
          <message name="IDS_TASK_MANAGER_PROFILE_NAME_COLUMN" desc="The name of the column with the name of the profile in which the page is running, if any.">
            Profile
          </message>
          <message name="IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN" desc="Task manager idle processor wakeups column">
            Idle Wake Ups
          </message>
          <message name="IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN" desc="Task manager open fds (file descriptors) count column">
            File Descriptors
          </message>
          <message name="IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN" desc="Task manager process priority column">
            Process Priority
          </message>
          <message name="IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN" desc="Task manager WebCore image cache size column.">
            Image Cache
          </message>
          <message name="IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN" desc="Task manager WebCore scripts cache size column.">
            Script Cache
          </message>
          <message name="IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN" desc="Task manager WebCore CSS cache size column.">
            CSS Cache
          </message>
          <message name="IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN" desc="The text of the video memory usage column">
            GPU Memory
          </message>
          <message name="IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN" desc="Amount of memory used by SQLite.">
            SQLite Memory
          </message>
          <message name="IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN" desc="Task manager JavaScript memory allocated column.  Shows the amount of memory used by JavaScript within a process">
            JavaScript Memory
          </message>
        </if>
        <message name="IDS_TASK_MANAGER_ABOUT_MEMORY_LINK" desc="The caption of the Task Manager link to about:memory">
          Stats for nerds
        </message>
        <message name="IDS_TASK_MANAGER_MEM_CELL_TEXT" desc="The value displayed in the memory usage cells.">
          <ph name="NUM_KILOBYTES">$1<ex>5,000</ex></ph>K
        </message>
        <message name="IDS_TASK_MANAGER_CACHE_SIZE_CELL_TEXT" desc="The value displayed in the cache size cells.">
          <ph name="NUM_KILOBYTES">$1<ex>5,000</ex></ph>K (<ph name="NUM_KILOBYTES_LIVE">$2<ex>5,000</ex></ph>K live)
        </message>
        <message name="IDS_TASK_MANAGER_NA_CELL_TEXT" desc="The value displayed for network / webcache usage when the information is not available (Not Applicable).">
          N/A
        </message>
        <message name="IDS_TASK_MANAGER_BACKGROUNDED_TEXT" desc="The value displayed for a process with backgrounded priority">
          Low
        </message>
        <message name="IDS_TASK_MANAGER_FOREGROUNDED_TEXT" desc="The value displayed for a process with foregrounded priority">
          Normal
        </message>
        <message name="IDS_TASK_MANAGER_UNKNOWN_VALUE_TEXT" desc="The value displayed for an unknown NaCl debug stub port in the task manager.">
          Unknown
        </message>
        <message name="IDS_TASK_MANAGER_DISABLED_NACL_DBG_TEXT" desc="The value displayed for NaCl debug stub port in the task manager when the flag #enable-nacl-debug is disabled.">
          Disabled
        </message>
        <message name="IDS_TASK_MANAGER_HANDLES_CELL_TEXT" desc="The value displayed in the user/gdi cells.">
          <ph name="NUM_HANDLES">$1<ex>300</ex></ph> (<ph name="NUM_KILOBYTES_LIVE">$2<ex>500</ex></ph> peak)
        </message>
        <message name="IDS_TASK_MANAGER_WEB_BROWSER_CELL_TEXT" desc="The text of the web browser process row">
          Browser
        </message>
        <message name="IDS_TASK_MANAGER_EXTENSION_PREFIX" desc="The prefix for a Task Manager extension row (always visible if the extension has a view)">
          Extension: <ph name="EXTENSION_NAME">$1<ex>Sample Extension</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_EXTENSION_INCOGNITO_PREFIX" desc="The prefix for a Task Manager incognito extension row (may not be visible if incognito is not open)">
          Incognito Extension: <ph name="EXTENSION_NAME">$1<ex>Sample Extension</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_APP_PREFIX" desc="The prefix for a Task Manager app row (always visible if the app has a view)">
          App: <ph name="APP_NAME">$1<ex>Sample App</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_APP_INCOGNITO_PREFIX" desc="The prefix for a Task Manager incognito app row (may not be visible if the app is not open in incognito)">
          Incognito App: <ph name="APP_NAME">$1<ex>Sample App</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_TAB_PREFIX" desc="The prefix for a Task Manager Tab row">
          Tab: <ph name="TAB_NAME">$1<ex>Google</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_TAB_INCOGNITO_PREFIX" desc="The prefix for a Task Manager incognito Tab row (may not be visible if incognito is not open)">
          Incognito Tab: <ph name="TAB_NAME">$1<ex>Google</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_BACKGROUND_APP_PREFIX" desc="The prefix for a Task Manager background app task representing a BackgroundContents">
          Background App: <ph name="BACKGROUND_APP_URL">$1<ex>http://www.google.com</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_BACKGROUND_PREFIX" desc="The prefix for a Task Manager background page row">
          Background Page: <ph name="BACKGROUND_PAGE_URL">$1<ex>http://www.google.com</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_PLUGIN_PREFIX" desc="The prefix for a Task Manager plugin row">
          Plugin: <ph name="PLUGIN_NAME">$1<ex>Unknown Plugin</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_PLUGIN_BROKER_PREFIX" desc="Task Manager row for PPAPI plugin broker, which provides additional access for PPAPI plugins">
          Plugin Broker: <ph name="PLUGIN_NAME">$1<ex>Unknown Plugin</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_PRERENDER_PREFIX" desc="The prefix for a Task Manager prerender row">
          Prerender: <ph name="PRERENDER_CONTENTS_NAME">$1<ex>http://www.google.com</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_UNKNOWN_PLUGIN_NAME" desc="The prefix for a Task Manager plugin row">
          Unknown plugin
        </message>
        <message name="IDS_TASK_MANAGER_WORKER_PREFIX" desc="The prefix for a Task Manager HTML5 Web Worker process row">
          Web Worker: <ph name="WORKER_NAME">$1<ex>http://www.domain.com</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_UTILITY_PREFIX" desc="The prefix for a utility process row">
          Utility: <ph name="UTILITY_TYPE">$1<ex>Image Decoder</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_NACL_PREFIX" desc="The prefix for a Task Manager Native Client module row">
          Native Client module: <ph name="NEXE_NAME">$1<ex>Unknown Native Client module</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_NACL_BROKER_PREFIX" desc="Task Manager row for Native Client broker, which acts as the sanbox manager for NaCl processes">
          Native Client security manager
        </message>
        <message name="IDS_TASK_MANAGER_GPU_PREFIX" desc="Task Manager row for the GPU process, which is the process doing all accelerated graphics rendering">
          GPU Process
        </message>
        <message name="IDS_TASK_MANAGER_PRINT_PREFIX" desc="The prefix for a print preview process row in the Task Manager">
          Print: <ph name="PRINT_NAME">$1<ex>Google Maps</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_SUBFRAME_PREFIX" desc="The prefix for a out-of-process-iframe row in the Task Manager (these processes are created when site isolation is enabled)">
          Subframe: <ph name="SUBFRAME_SITE">$1<ex>https://youtube.com/</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_SUBFRAME_INCOGNITO_PREFIX" desc="The prefix for an Incognito out-of-process-iframe process row in the Task Manager (these processes are created when site isolation is enabled, in incognito mode)">
          Incognito Subframe: <ph name="SUBFRAME_SITE">$1<ex>https://youtube.com/</ex></ph>
        </message>
        <message name="IDS_TASK_MANAGER_ARC_PREFIX" desc="The prefix for an ARC process row">
          ARC: <ph name="ARC_PROCESS_NAME">$1<ex>com.android.systemui</ex></ph>
        </message>
      </if>

      <message name="IDS_UTILITY_PROCESS_COMPONENT_PATCHER_NAME" desc="The name of the utility process used for patching components.">
        Component Patcher
      </message>
      <message name="IDS_UTILITY_PROCESS_IMAGE_DECODER_NAME" desc="The name of the utility process used for decoding images.">
        Image Decoder
      </message>
      <message name="IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME" desc="The name of the utility process used for out-of-process V8 proxy resolution.">
        V8 Proxy Resolver
      </message>
      <if expr="chromeos">
        <message name="IDS_UTILITY_PROCESS_ZIP_FILE_CREATOR_NAME" desc="The name of the utility process used for creating zip files.">
          Zip File Creator
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_UTILITY_PROCESS_SECCOMP_DETECTOR_NAME" desc="The name of the utility process used for Seccomp support detection.">
          Seccomp Detector
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_UTILITY_PROCESS_PROFILE_IMPORTER_NAME" desc="The name of the utility process used for importing profiles.">
          Profile Importer
        </message>
        <message name="IDS_UTILITY_PROCESS_SAFE_BROWSING_ZIP_FILE_ANALYZER_NAME" desc="The name of the utility process used for analyzing .zip files for Safe Browsing.">
          Safe Browsing Zip File Analyzer
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_UTILITY_PROCESS_EMF_CONVERTOR_NAME" desc="The name of the utility process used for converting PDFs to EMFs.">
          EMF Convertor
        </message>
        <message name="IDS_UTILITY_PROCESS_FILE_DIALOG_NAME" desc="The name of the utility process used for handling a file open/save dialog.">
          File Open/Save Dialog
        </message>
        <message name="IDS_UTILITY_PROCESS_FONT_CACHE_BUILDER_NAME" desc="The name of the utility process used for building the DirectWrite font cache.">
          DirectWrite Font Cache Builder
        </message>
        <message name="IDS_UTILITY_PROCESS_WIFI_CREDENTIALS_GETTER_NAME" desc="The name of the utility process used for getting the WiFi credentials">
          WiFi Credentials Getter
        </message>
      </if>
      <if expr="enable_extensions">
        <message name="IDS_UTILITY_PROCESS_IMAGE_WRITER_NAME" desc="The name of the utility process used for writing ChromeOS system images.">
          ChromeOS System Image Writer
        </message>
        <message name="IDS_UTILITY_PROCESS_MEDIA_FILE_CHECKER_NAME" desc="The name of the utility process used for checking media files.">
          Media File Checker
        </message>
        <message name="IDS_UTILITY_PROCESS_MEDIA_LIBRARY_FILE_CHECKER_NAME" desc="The name of the utility process used for checking media library files.">
          Media Library File Checker
        </message>
        <message name="IDS_UTILITY_PROCESS_ZIP_FILE_INSTALLER_NAME" desc="The name of the utility process used for unpacking zip files.">
          Zip File Installer
        </message>
      </if>
      <if expr="enable_print_preview">
        <message name="IDS_UTILITY_PROCESS_PWG_RASTER_CONVERTOR_NAME" desc="The name of the utility process used for converting PDFs to the PWG Raster format.">
          PWG Raster Convertor
        </message>
      </if>
      <if expr="enable_service_discovery">
        <message name="IDS_UTILITY_PROCESS_SERVICE_DISCOVERY_HANDLER_NAME" desc="The name of the utility process used for handling service discovery.">
          Service Discovery Handler
        </message>
      </if>

      <!-- Theme preview info bar -->
      <message name="IDS_THEME_INSTALL_INFOBAR_LABEL" desc="Text displayed on an infobar when a theme has been installed.">
        Installed theme "<ph name="THEME_NAME">$1<ex>Snowflake Theme</ex></ph>".
      </message>
      <message name="IDS_THEME_INSTALL_INFOBAR_UNDO_BUTTON" desc="Text displayed on the button to undo a theme installation and go back to the previous theme.">
        Undo
      </message>

      <!-- Extension/App disabled notification -->
      <message name="IDS_EXTENSION_DISABLED_ERROR_LABEL" desc="Text displayed when an extension was disabled due to a new upgrade requiring an explicit permission check from the user.">
        The newest version of the extension "<ph name="EXTENSION_NAME">$1<ex>Flashblock</ex></ph>" requires more permissions, so it has been disabled.
      </message>
      <message name="IDS_APP_DISABLED_ERROR_LABEL" desc="Text displayed when an app was disabled due to a new upgrade requiring an explicit permission check from the user.">
        The newest version of the app "<ph name="APP_NAME">$1<ex>Pandora</ex></ph>" requires more permissions, so it has been disabled.
      </message>
      <message name="IDS_EXTENSION_DISABLED_ERROR_TITLE" desc="Title of the notification that an extension or app was disabled due to a new upgrade requiring an explicit permission check from the user.">
        <ph name="EXTENSION_NAME">$1<ex>Adblock</ex></ph> requires new permissions
      </message>
      <message name="IDS_EXTENSION_IS_BLACKLISTED" desc="Text displayed in an infobar when an extension is blacklisted and prevented from being installed.">
        Google has flagged "<ph name="EXTENSION_NAME">$1<ex>Google Talk</ex></ph>" as malicious and installation has been prevented.
      </message>
      <message name="IDS_EXTENSION_DISABLED_REMOTE_INSTALL_ERROR_LABEL" desc="Text displayed when an extension was disabled due to it being installed server side, requiring an explicit permission check from the user.">
        The extension "<ph name="EXTENSION_NAME">$1<ex>Flashblock</ex></ph>" was installed remotely.
      </message>
      <message name="IDS_APP_DISABLED_REMOTE_INSTALL_ERROR_LABEL" desc="Text displayed when an extension was disabled due to it being installed server side, requiring an explicit permission check from the user.">
        The app "<ph name="EXTENSION_NAME">$1<ex>Flashblock</ex></ph>" was installed remotely.
      </message>
      <message name="IDS_EXTENSION_DISABLED_REMOTE_INSTALL_ERROR_TITLE" desc="Title of the notification that an extension or app was disabled due to it being installed server side, requiring an explicit permission check from the user.">
        <ph name="EXTENSION_NAME">$1<ex>Adblock</ex></ph> was installed remotely
      </message>

      <!-- Extension toolbar bubble -->
      <if expr="enable_extensions">
        <message name="IDS_EXTENSION_TOOLBAR_BUBBLE_HEADING" desc="Heading of the bubble to tell users that all extensions are now visible in the toolbar (the extension toolbar info bubble).">
          All your extensions are here
        </message>
        <message name="IDS_EXTENSION_TOOLBAR_BUBBLE_CONTENT" desc="Content of the extension toolbar info bubble.">
          Use the context (right-click) menu to remove the extensions you don't need.
        </message>
        <message name="IDS_EXTENSION_TOOLBAR_BUBBLE_OK" desc="Button label for the extension toolbar info bubble.">
          Got it
        </message>
      </if>

      <!-- Extension install prompt -->
      <message name="IDS_EXTENSION_UNINSTALL_PROMPT_TITLE" desc="Titlebar of the extension or app uninstallation prompt window">
        Confirm Removal
      </message>
      <message name="IDS_EXTENSION_CONFIRM_PERMISSIONS" desc="Titlebar of the extension or app permissions prompt window">
        Confirm Permissions
      </message>
      <message name="IDS_EXTENSION_DELEGATED_INSTALL_PROMPT_TITLE" desc="Titlebar of the app delegated installation prompt window">
        Add "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" for <ph name="USER_NAME">$2<ex>Wallace</ex></ph>?
      </message>
      <message name="IDS_EXTENSION_INSTALL_PROMPT_TITLE" desc="Titlebar of the extension or app installation prompt. Asks the user if they want to install a particular extension or app.">
        Add "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"?
      </message>
      <message name="IDS_EXTENSION_BUNDLE_INSTALL_PROMPT_TITLE_EXTENSIONS" desc="Titlebar of the extension bundle installation prompt. Asks the user if they want to install the set of extensions.">
        "<ph name="BUNDLE_NAME">$1<ex>My Awesome Bundle</ex></ph>" adds these extensions:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_INSTALL_PROMPT_TITLE_APPS" desc="Titlebar of the app bundle installation prompt. Asks the user if they want to install the set of apps.">
        "<ph name="BUNDLE_NAME">$1<ex>My Awesome Bundle</ex></ph>" adds these apps:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_INSTALL_PROMPT_TITLE_EXTENSION_APPS" desc="Titlebar of the extension and app bundle installation prompt. Asks the user if they want to install the set of apps and extensions.">
        "<ph name="BUNDLE_NAME">$1<ex>My Awesome Bundle</ex></ph>" adds these apps and extensions:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_DELEGATED_INSTALL_PROMPT_TITLE_EXTENSIONS" desc="First bold line in the content area of the extension bundle installation prompt. Asks the user if they want to install the set of extensions.">
        "<ph name="BUNDLE_NAME">$1<ex>My Awesome Bundle</ex></ph>" adds these extensions for <ph name="USER_NAME">$2<ex>Wallace</ex></ph>:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_DELEGATED_INSTALL_PROMPT_TITLE_APPS" desc="First bold line in the content area of the app bundle installation prompt. Asks the user if they want to install the set of apps.">
        "<ph name="BUNDLE_NAME">$1<ex>My Awesome Bundle</ex></ph>" adds these apps for <ph name="USER_NAME">$2<ex>Wallace</ex></ph>:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_DELEGATED_INSTALL_PROMPT_TITLE_EXTENSION_APPS" desc="First bold line in the content area of the extension and app bundle installation prompt. Asks the user if they want to install the set of apps and extensions.">
        "<ph name="BUNDLE_NAME">$1<ex>My Awesome Bundle</ex></ph>" adds these apps and extensions for <ph name="USER_NAME">$2<ex>Wallace</ex></ph>:
      </message>
      <message name="IDS_EXTENSION_UNINSTALL_PROMPT_HEADING" desc="First bold line in the content area of the extension or app uninstallation prompt. Asks the user if they want to uninstall a particular extension or app.">
        Remove "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"?
      </message>
      <message name="IDS_EXTENSION_PROGRAMMATIC_UNINSTALL_PROMPT_HEADING" desc="First bold line in the content area of the extension or app uninstallation prompt when the uninstallation is programmatically triggered by another extension. Asks the user if they want to uninstall a particular extension or app.">
        "<ph name="TRIGGERING_EXTENSION_NAME">$1<ex>Extension Manager</ex></ph>" would like to remove "<ph name="EXTENSION_NAME">$2<ex>Gmail Checker</ex></ph>".
      </message>
      <message name="IDS_EXTENSION_RE_ENABLE_PROMPT_TITLE" desc="Titlebar of the extension or app installation prompt. Asks the user if they want to re-enable a particular extension or app.">
        The newest version of "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" has been disabled because it requires more permissions.
      </message>
      <message name="IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE" desc="Titlebar of the extension or app permissions prompt. Asks the user if they want to grant the permissions to the particular extension or app.">
        "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" has requested additional permissions.
      </message>
      <message name="IDS_EXTENSION_POST_INSTALL_PERMISSIONS_PROMPT_TITLE" desc="Titlebar of the extension or app permissions prompt. Shows the user the permissions a particular extension or app has.">
        Current Permissions for "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"
      </message>
      <message name="IDS_EXTENSION_LAUNCH_APP_PROMPT_TITLE" desc="Titlebar of the app launch prompt. Asks the user if they want to launch a particular app.">
        Try "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"?
      </message>
      <message name="IDS_EXTENSION_REMOTE_INSTALL_PROMPT_TITLE" desc="Titlebar of the extension or app installation prompt. Asks the user if they want to enable a particular extension or app that was installed remotely.">
        Enable "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"?
      </message>
      <message name="IDS_EXTENSION_REPAIR_PROMPT_TITLE" desc="Titlebar of the extension or app installation prompt. Asks the user if they want to update the extension/app.">
        Repair "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>"?
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_APP" desc="Titlebar of the prompt window for an externally installed app">
        Another program on your computer added an app that may change the way Chrome works.

<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_EXTENSION" desc="Titlebar of the prompt window for an externally installed extension">
        Another program on your computer added an extension that may change the way Chrome works.

<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_TITLE_THEME" desc="Titlebar of the prompt window for an externally installed theme">
        Another program on your computer added a theme that may change the way Chrome works.

<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_EXTENSION" desc="Button on the external install prompt to enable an extension installed by a third party.">
        Enable extension
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_APP" desc="Button on the external install prompt to enable an extension installed by a third party.">
        Enable app
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ACCEPT_BUTTON_THEME" desc="Button on the external install prompt to enable an extension installed by a third party.">
        Enable theme
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_PROMPT_ABORT_BUTTON" desc="Button on the external install prompt to remove an extension installed by a third party.">
        Remove from Chrome
      </message>

      <!-- Extension alerts. -->
      <message name="IDS_EXTENSION_ALERT_TITLE" desc="Titlebar of the extension notification alert">
        Confirm Changes
      </message>
      <message name="IDS_EXTENSION_ALERT_ITEM_EXTERNAL" desc="A statement that an external extension has been newly installed. End users have no idea what an 'external' extension is, so we simply call them extensions.">
        The extension "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" has been added.
      </message>
      <message name="IDS_EXTENSION_ALERT_ITEM_BLACKLISTED" desc="A statement that an extension has been newly blacklisted. https://support.google.com/chrome/answer/1210215 contains the language on which we're basing the phrasing.">
        The extension "<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph>" was automatically removed.
      </message>
      <message name="IDS_APP_ALERT_ITEM_EXTERNAL" desc="A statement that an external packaged app has been newly installed. End users have no idea what an 'external' app is, so we simply call them apps.">
        The app "<ph name="EXTENSION_NAME">$1<ex>Gmail</ex></ph>" has been added.
      </message>
      <message name="IDS_APP_ALERT_ITEM_BLACKLISTED" desc="A statement that a packaged app has been newly blacklisted. https://support.google.com/chrome/answer/1210215 contains the language on which we're basing the phrasing.">
        The app "<ph name="EXTENSION_NAME">$1<ex>Gmail</ex></ph>" was automatically removed.
      </message>
      <message name="IDS_EXTENSION_ALERT_ITEM_OK" desc="The title of the default button acknowledging the information presented.">
        OK
      </message>
      <message name="IDS_EXTENSION_ALERT_ITEM_DETAILS" desc="The title of the button asking for more information.">
        Details
      </message>

      <!-- Extension/App install dialog strings -->
      <message name="IDS_EXTENSION_PROMPT_APP_CONNECT_FROM_INCOGNITO" desc="Shown when a website tries to connect to an app from incognito mode, prompting the user to allow or deny the request.">
        <ph name="ORIGIN">$1<ex>http://www.google.com</ex></ph> wants to communicate with the app "<ph name="EXTENSION_NAME">$2<ex>Gmail</ex></ph>"
      </message>
      <message name="IDS_EXTENSION_PROMPT_EXTENSION_CONNECT_FROM_INCOGNITO" desc="Shown when a website tries to connect to an extension from incognito mode, prompting the user to allow or deny the request.">
        <ph name="ORIGIN">$1<ex>http://www.google.com</ex></ph> wants to communicate with the extension "<ph name="EXTENSION_NAME">$2<ex>Gmail Checker</ex></ph>"
      </message>
      <message name="IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO" desc="Second line in the content area of the extension or app installation prompt. Note that the exact wording is important. This should mean that the extension or app _can_ access the listed privileges, but not necessarily that it will or needs to.">
        It can:
      </message>
      <message name="IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO" desc="Second line in the content area of the extension or app re-enable prompt. Note that the exact wording is important. This should mean that the extension _can now_ access the listed privileges, but not necessarily that it will or needs to. This message appeared because the user must approve new permissions of the extension or app.">
        It can now:
      </message>
      <message name="IDS_EXTENSION_PROMPT_THESE_WILL_HAVE_ACCESS_TO" desc="Header for the permissions area of the bundled extension or app installation prompt. Note that the exact wording is important. This means that the extensions or apps _can_ access the listed privileges, but not necessarily that it will or needs to.">
        They can:
      </message>
      <message name="IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO" desc="Second line in the content area of the extension or app permissions prompt. Note that the exact wording is important. This should mean that the extension _wants to_ access the listed privileges, but not necessarily that it will or needs to. This message appeared because the user must approve new permissions of the extension or app.">
        It could:
      </message>
      <message name="IDS_EXTENSION_PROMPT_CAN_ACCESS" desc="Second line in the content area of the extension or app permissions view dialog. Note that the exact wording is important. This should mean that the extension _can now_ access the listed privileges, because it has already been installed. This message appeared because the user must approve new permissions of the extension or app.">
        It can:
      </message>
      <message name="IDS_EXTENSION_PROMPT_WITHHELD" desc="Header for withheld permissions warning on extension install.">
        Warning: You've enabled the --scripts-require-action flag on this computer, which limits the capabilities of this extension. However, other devices may not support this flag or have it enabled. On these devices, this extension can also:
      </message>
      <message name="IDS_EXTENSION_NO_SPECIAL_PERMISSIONS" desc="Shown when the app/extension requires no special permission">
        Has no special permissions.
      </message>

      <message name="IDS_EXTENSION_PERMISSION_LINE" desc="Template for item in list of privileges that an extension or app has">
          • <ph name="PERMISSION">$1<ex>Read and change all your data on the websites you visit</ex></ph>
      </message>
      <message name="IDS_EXTENSION_RATING_COUNT" desc="Number of ratings an app or extensions has (displayed after star icons)">
        (<ph name="RATING_COUNT">$1<ex>46</ex></ph>)
      </message>
      <message name="IDS_EXTENSION_USER_COUNT" desc="Number of users an app or extension has">
        <ph name="USER_COUNT">$1<ex>10,479</ex></ph> users
      </message>
      <message name="IDS_EXTENSION_PROMPT_STORE_LINK" desc="Anchor text for link to Chrome Web Store in app or extension installation dialog">
        View details
      </message>
      <message name="IDS_EXTENSION_PROMPT_RETAINED_FILES" desc="A line of explanatory text that precedes the list of files the app has permanent access to, showing the number of files. This is shown when an app has persistent access to files. [ICU Syntax]">
        {NUM_FILES, plural,
         =1 {It has permanent access to one file.}
         other {It has permanent access to # files.}}
      </message>

      <message name="IDS_EXTENSION_PROMPT_RETAINED_DEVICES" desc="A line of explanatory text that precedes the list of devices the app has permanent access to, showing the number of devices. This is shown when an app has persistent access to devices. [ICU Syntax]">
        {NUM_DEVICES, plural,
         =1 {Communicate with a USB device}
         other {Communicate with # USB devices}}
      </message>

      <if expr="enable_extensions">
        <message name="IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS" desc="Permission string for full access to the computer and all websites.">
          Read and change all your data on your computer and the websites you visit
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS" desc="Permission string for access to data on all websites.">
          Read and change all your data on the websites you visit
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY" desc="Permission string for read-only access to data on all websites.">
          Read all your data on the websites you visit
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE" desc="Permission string for access to audio capture devices.">
          Use your microphone
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_VIDEO_CAPTURE" desc="Permission string for access to video capture devices.">
          Use your camera
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE" desc="Permission string for access to both audio and video capture devices.">
          Use your microphone and camera
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH" desc="Permission string for general access to the Bluetooth API.">
          Access information about Bluetooth devices paired with your system and discover nearby Bluetooth devices.
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_DEVICES" desc="Permission string for implementing Bluetooth profiles.">
          Send messages to and receive messages from Bluetooth devices.
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE" desc="Permission string for Bluetooth Private API.">
          Control Bluetooth adapter state and pairing
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL" desc="Permission string for access to Bluetooth and serial connected devices.">
          Access your Bluetooth and Serial devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS" desc="Permission string for access to bookmarks.">
          Read and change your bookmarks
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_CLIPBOARD" desc="Permission string for access to clipboard.">
          Read data you copy and paste
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_COPRESENCE" desc="Permission string for access to bookmarks.">
          Communicate with nearby devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DEBUGGER" desc="Permission string for access to debugger.">
          Access the page debugger backend
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST" desc="Permission string for Declarative Web Request API.">
          Block parts of web pages
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN" desc="Permission string for access to document scanning.">
          Access document scanners attached via USB or on the local network
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_FAVICON" desc="Permission string for access to favicons.">
          Read the icons of the websites you visit
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION" desc="Permisson string for access to geolocation.">
          Detect your physical location
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ" desc="Permission string for access to browsing history.">
          Read your browsing history
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS" desc="Permission string for access to both browsing history and signed in sessions.">
          Read your browsing history on all your signed-in devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE" desc="Permission string for access to modify browsing history.">
          Read and change your browsing history
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS" desc="Permission string for access to modify both browsing history and signed in sessions.">
          Read and change your browsing history on all your signed-in devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE" desc="Permission string for home page override.">
          Change your home page to: <ph name="HOME_PAGE">$1<ex>home.page.com/home.html</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_1_HOST" desc="Permission string for access to data on one website.">
          Read and change your data on <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY" desc="Permission string for read-only access to data on one website.">
          Read your data on <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_2_HOSTS" desc="Permission string for access to data on two websites.">
          Read and change your data on <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph> and <ph name="WEBSITE_2">$2<ex>www.reddit.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY" desc="Permission string for read-only access to data on two websites.">
          Read your data on <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph> and <ph name="WEBSITE_2">$2<ex>www.reddit.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_3_HOSTS" desc="Permission string for access to data on three websites.">
          Read and change your data on <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph>, <ph name="WEBSITE_2">$2<ex>www.reddit.com</ex></ph>, and <ph name="WEBSITE_3">$3<ex>news.ycombinator.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_3_HOSTS_READ_ONLY" desc="Permission string for read-only access to data on three websites.">
          Read your data on <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph>, <ph name="WEBSITE_2">$2<ex>www.reddit.com</ex></ph>, and <ph name="WEBSITE_3">$3<ex>news.ycombinator.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST" desc="Permission string for access to data for an arbitrary list of websites.">
          Read and change your data on a number of websites
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST_READ_ONLY" desc="Permission string for read-only access to data for an arbitrary list of websites.">
          Read your data on a number of websites
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_INPUT" desc="Permission string for access to input.">
          Read and change anything you type
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT" desc="Permisson string for access to extension management.">
          Manage your apps, extensions, and themes
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MDNS" desc="Permisson string for access to list of mDNS services on a network.">
          Discover devices on your local network
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE" desc="Permission string for network list access.">
          Access list of network connections
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_NETWORKING_CONFIG" desc="Permission string for Networking Config API.">
          Configure network connections
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE" desc="Permission string for Networking Private API.">
          Manage network connections
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE" desc="Permission string for search settings override.">
          Change your search settings to: <ph name="SEARCH_HOST">$1<ex>url.search.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SERIAL" desc="Permission string for access to serial devices.">
          Access your serial devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST" desc="Permission string for access to any device on the local network or internet.">
          Exchange data with any device on the local network or internet
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN" desc="Permission string for access to any device within a single domains on the local network or internet.">
          Exchange data with any device in the domain <ph name="DOMAIN">$1<ex>example.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS" desc="Permission string for access to any device within multiple domains on the local network or internet.">
          Exchange data with any device in the domains: <ph name="DOMAINS">$1<ex>example.com example.org</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST" desc="Permission string for access to a single specific device on the local network or internet.">
          Exchange data with the device named <ph name="HOSTNAME">$1<ex>foo.example.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS" desc="Permission string for access to multiple specific devices on the local network or internet.">
          Exchange data with the devices named: <ph name="HOSTNAMES">$1<ex>foo.example.com bar.example.com</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE" desc="Permission string for start page override.">
          Change your start page to: <ph name="START_PAGE">$1<ex>start.page.com/start.html</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_TOPSITES" desc="Permission string for access to the list of most frequently visited websites.">
          Read a list of your most frequently visited websites
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE" desc="Permission string for access to text-to-speech.">
          Read all text spoken using synthesized speech
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_U2F_DEVICES" desc="Warning message which indicates that an extension has access to Universal 2nd Factor devices.">
          Access your Universal 2nd Factor devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE" desc="Permission string for access to a specific USB device.">
          Access any <ph name="DEVICE_NAME_AND_VENDOR">$1<ex>SoundKnob from Griffin Technology</ex></ph> via USB
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST" desc="Permission string for access to a list of USB devices.">
          Access any of these USB devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST_ITEM_UNKNOWN_PRODUCT" desc="Line item for a USB device listed under IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST that has an unknown product ID.">
          unknown devices from <ph name="VENDOR_NAME">$1<ex>Griffin Technology</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST_ITEM_UNKNOWN_VENDOR" desc="Line item for a USB device listed under IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST that has an unknown vendor ID.">
          devices from an unknown vendor
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_UNKNOWN_PRODUCT" desc="Permission string for access to a specific USB device with an unknown product ID.">
          Access USB devices from <ph name="VENDOR_NAME">$1<ex>Griffin Technology</ex></ph>
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_UNKNOWN_VENDOR" desc="Permission string for acceess to a specific USB device with an unknown vendor ID.">
          Access USB devices from an unknown vendor
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_VPN" desc="Permission string for access to VPN API.">
          Access your network traffic
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_WEB_CONNECTABLE" desc="Permission string for allowing websites to connect to extensions.">
          Communicate with cooperating websites
        </message>

        <message name="IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS" desc="Permission string for access to content settings.">
          Change your settings that control websites' access to features such as cookies, JavaScript, plugins, geolocation, microphone, camera etc.
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_PRIVACY" desc="Permission string for access to privacy settings.">
          Change your privacy-related settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES" desc="Permission string for access to privacy settings.">
          Read the list of your signed-in devices
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS" desc="Permission string for access to downloads.">
          Manage your downloads
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS_OPEN" desc="Permission string for access to downloads.">
          Open downloaded files
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_IDENTITY_EMAIL" desc="Permission string for access to profile email address.">
          Know your email address
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_WALLPAPER" desc="Permission string for access to wallpaper.">
          Change your wallpaper
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY" desc="Permission string for read access to directories and their contents.">
          Read folders that you open in the application
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY" desc="Permission string for write access to directories and their contents.">
          Write to files and folders that you open in the application
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ" desc="Permission string for access to read all of the user's media galleries.">
          Access photos, music, and other media from your computer
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE" desc="Permission string for access to read and write to all of the user's media galleries.">
          Read and change photos, music, and other media from your computer
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_DELETE" desc="Permission string for access to read and delete all of the user's media galleries.">
          Read and delete photos, music, and other media from your computer
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ_WRITE_DELETE" desc="Permission string for access to read, write and delete to all of the user's media galleries.">
          Read, change and delete photos, music, and other media from your computer
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM" desc="Permission string for synchronizing files to the user's Google Drive">
          Store data in your Google Drive account
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE" desc="Permission string for accessing a unique device identifier">
          Read a unique identifier for this computer
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING" desc="Permission string for Native Messaging API.">
          Communicate with cooperating native applications
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE" desc="Permission string for locking an unlocking the screen.">
          Lock and unlock the screen
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_OVERRIDE_BOOKMARKS_UI" desc="Permission string for overriding elements of the bookmarks user interface.">
          Change the bookmarks user interface
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE" desc="Permission string for the observing other extensions' API calls">
          Monitor the behavior of other extensions, including visited URLs
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DESKTOP_CAPTURE" desc="Permission string for Desktop Capture API.">
          Capture content of your screen
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY" desc="Permission string for modifying acccessibility settings via extension API shown when an extension utilizing the API is installed.">
          Change your accessibility settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ" desc="Permission string for modifying acccessibility settings via extension API shown when a extension utilizing the API is installed.">
          Read your accessibility settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY" desc="Permission string for reading and modifying acccessibility settings via extension API shown when an extension utilizing the API is installed.">
          Read and change your accessibility settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_EXPERIENCE_SAMPLING_PRIVATE" desc="Permission string for Experience Sampling Private API.">
          Monitor when you take actions in Chrome
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_PLATFORMKEYS" desc="Permission string for access to client certificates.">
          Use your client certificates
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_CERTIFICATEPROVIDER" desc="Permission string for providing certificates that can be used for authentication.">
          Provide certificates for authentication
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SETTINGS_PRIVATE" desc="Permission string for access to settings.">
          Read and change user and device settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_SEARCH_ENGINES_PRIVATE" desc="Permission string for access to search engines.">
          Read and change default and custom search engines
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_AUTOFILL_PRIVATE" desc="Permission string for access to autofill settings.">
          Read and change autofill settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_PASSWORDS_PRIVATE" desc="Permission string for access to passwords settings.">
          Read and change saved password settings
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE" desc="Permission string for access to user accounts.">
          Read and change whitelisted users
        </message>
        <message name="IDS_EXTENSION_PROMPT_WARNING_DISPLAY_SOURCE" desc="Permission string for access to Display Source API.">
          Send audio and video to displays on the local network
        </message>
      </if>

      <!-- Extension/App error messages -->
      <message name="IDS_EXTENSION_CANT_GET_ABSOLUTE_PATH" desc="Warning displayed in pack dialog when the absolute path to the extension directory can not be found.">
        Can't find the absolute path to the directory to pack.
      </message>
      <message name="IDS_EXTENSION_DIRECTORY_NO_EXISTS" desc="Warning displayed in pack dialog when the extension directory does not exist.">
        Input directory must exist.
      </message>
      <message name="IDS_EXTENSION_DISALLOW_NON_DOWNLOADED_GALLERY_INSTALLS" desc="Error displayed when an app or extension that has an update URL used by the gallery is installed when not directly downloaded from the gallery.">
        This can only be added from the <ph name="CHROME_WEB_STORE">$1<ex>Web Store</ex></ph>.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_INVALID_PATH" desc="Warning displayed in pack dialog when the private key must be a valid path.">
        Input value for private key must be a valid path.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_EXISTS" desc="Warning displayed in pack dialog when the private key for the extension already exists.">
        A private key for specified extension already exists. Reuse that key or delete it first.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_NO_EXISTS" desc="Warning displayed in pack dialog when the private key for the extension does not exist.">
        Input value for private key must exist.
      </message>
      <message name="IDS_EXTENSION_PACK_WARNING_TITLE" desc="Warning title message for pack extension">
        Pack Extension Warning
      </message>
      <message name="IDS_EXTENSION_PACK_ERROR_TITLE" desc="Error title message for pack extension">
        Pack Extension Error
      </message>
      <message name="IDS_EXTENSION_CRX_EXISTS" desc="Warning displayed in pack dialog when the crx file already exists.">
        There is already a CRX file present with this name.
      </message>
      <message name="IDS_EXTENSION_PROCEED_ANYWAY" desc="Button to continue with operation in extension packing">
        Proceed anyway
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_READ" desc="Warning displayed in pack dialog when was not possible to read the private key of the extension.">
        Failed to read private key.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_INVALID" desc="Warning displayed in pack dialog when the private key of extensions is invalid.">
        Invalid private key.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_GENERATE" desc="Warning displayed in pack dialog when generating a random RSA private key failed.">
        Yikes! Failed to generate random RSA private key.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_EXPORT" desc="Warning displayed in pack dialog when exporting a private key failed.">
        Failed to export private key.
      </message>
      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_OUTPUT" desc="Warning displayed in pack dialog when outputing a private key failed.">
        Failed to output private key.
      </message>
      <message name="IDS_EXTENSION_FAILED_DURING_PACKAGING" desc="Warning displayed in pack dialog when was not possible to create a zip file.">
        Failed to create temporary zip file during packaging.
      </message>
      <message name="IDS_EXTENSION_ERROR_WHILE_SIGNING" desc="Warning displayed in pack dialog when occurred an error while signing an extension.">
        Error while signing extension.
      </message>
      <message name="IDS_EXTENSION_SHARING_VIOLATION" desc="Warning displayed in pack dialog when a sharing violation is found during creation of the crx.">
        Failed to replace crx file. Check to see if the file is in use.
      </message>
      <message name="IDS_EXTENSION_PUBLIC_KEY_FAILED_TO_EXPORT" desc="Warning displayed in pack dialog when exporting a public key failed.">
        Failed to export public key.
      </message>
      <message name="IDS_EXTENSION_CANT_DOWNGRADE_VERSION" desc="Error message when a user tries to install an extension with a lower version than a version that it already installed.">
        Attempted to downgrade extension.
      </message>
      <message name="IDS_APP_CANT_DOWNGRADE_VERSION" desc="Error message when a user tries to install an app with a lower version than a version that it already installed.">
        Attempted to downgrade app.
      </message>
      <message name="IDS_EXTENSION_WEBGL_NOT_SUPPORTED" desc="Error message when an extension has a requirement for WebGL that the system does not support.">
        WebGL is not supported.
      </message>
      <message name="IDS_EXTENSION_NPAPI_NOT_SUPPORTED" desc="Error message when an extension has a requirement for plugins that the system does not support.">
        NPAPI plugins are not supported.
      </message>
      <if expr="not use_aura">
        <message name="IDS_EXTENSION_WINDOW_SHAPE_NOT_SUPPORTED" desc="Error message when an extension has a requirement for shaped windows that the system does not support.">
          Shaped windows are not supported.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_EXTENSION_CANT_INSTALL_IN_DEVICE_LOCAL_ACCOUNT" desc="Error message when a user tries to install or the administrator tries to force-install through policy an extension that is not allowed in a device-local account.">
          <ph name="EXTENSION_NAME">$1<ex>Google Talk</ex></ph> (extension ID "<ph name="EXTENSION_ID">$2<ex>nckgahadagoaajjgafhacjanaoiihapd</ex></ph>") is not allowed in this type of session.
        </message>
      </if>
      <message name="IDS_EXTENSION_MOVE_DIRECTORY_TO_PROFILE_FAILED" desc="">
        Could not move extension directory into profile.
      </message>
      <message name="IDS_EXTENSION_INSTALL_NOT_ENABLED" desc="Error displayed during installation of apps or extensions when installation is not enabled.">
        Installation is not enabled.
      </message>
      <message name="IDS_EXTENSION_INSTALL_INCORRECT_APP_CONTENT_TYPE" desc="Error displayed during installation of apps when the app is not served with the correct content-type.">
        Apps must be served with content-type "<ph name="CONTENT_TYPE">$1<ex>application/x-chrome-extension</ex></ph>".
      </message>
      <message name="IDS_EXTENSION_INSTALL_INCORRECT_INSTALL_HOST" desc="Error displayed during installation of apps when the app is served from a different host than it affects.">
        Apps must be served from the host they affect.
      </message>
      <message name="IDS_EXTENSION_INSTALL_UNEXPECTED_ID" desc="Error displayed during installation of a side-loaded app, extension, or theme when the ID of the referenced extension does not match the ID the developer declared during registration.">
        Expected ID "<ph name="EXPECTED_ID">$1<ex>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</ex></ph>", but ID was "<ph name="NEW_ID">$2<ex>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</ex></ph>".
      </message>
      <message name="IDS_EXTENSION_INSTALL_DISALLOWED_ON_SITE" desc="Error displayed during installation of an extension when installation is not allowed from the current site.">
        Apps, extensions, and user scripts cannot be added from this website.
      </message>
      <message name="IDS_EXTENSION_INSTALL_UNEXPECTED_VERSION" desc="Error displayed during installation of a side-loaded app, extension, or theme when the version of the referenced extension does not match the version the developer declared during registration.">
        Expected version "<ph name="EXPECTED_VERSION">$1<ex>2.0</ex></ph>", but version was "<ph name="NEW_ID">$2<ex>1.0</ex></ph>".
      </message>
      <message name="IDS_EXTENSION_INSTALL_DEPENDENCY_OLD_VERSION" desc="Error displayed during installation of an extension when an import dependency is older than the minimum version required.">
        Extension requires "<ph name="IMPORT_NAME">$1<ex>Google Cast API</ex></ph>" with a minimum version "<ph name="IMPORT_VERSION">$2<ex>1.0</ex></ph>", but only version "<ph name="INSTALLED_VERSION">$3<ex>0.9</ex></ph>" is installed.
      </message>
      <message name="IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_SHARED_MODULE" desc="Error displayed during installation of an extension which tries to imports resources from an extension which is not a shared module.">
        Unable to import extension "<ph name="IMPORT_NAME">$1<ex>Gmail</ex></ph>" because it is not a shared module.
      </message>
      <message name="IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_WHITELISTED" desc="Error displayed during installation of an extension which tries to imports resources from an extension, but it is not whitelisted to do so.">
        Unable to install "<ph name="APP_NAME">$1<ex>Google Play Movies &amp; TV</ex></ph>" because it is not allowed by "<ph name="IMPORT_NAME">$2<ex>Google Cast API</ex></ph>"
      </message>
      <message name="IDS_EXTENSION_INSTALL_KIOSK_MODE_ONLY" desc="Error displayed during installation of an app with 'kiosk_only' attribute but user is not in Chrome OS kiosk mode.">
        App with 'kiosk_only' manifest attribute must be installed in Chrome OS kiosk mode.
      </message>
      <message name="IDS_EXTENSION_OVERLAPPING_WEB_EXTENT" desc="Error message when a user tries to install an app with a web extent that overlaps another installed app.">
        Could not add application because it conflicts with "<ph name="APP_NAME">$1<ex>Google Mail</ex></ph>".
      </message>
      <message name="IDS_EXTENSION_INVALID_IMAGE_PATH" desc="">
        Could not load '<ph name="IMAGE_PATH">$1<ex>/path/to/file</ex></ph>' for theme.
      </message>
      <message name="IDS_EXTENSION_LOAD_JAVASCRIPT_FAILED" desc="">
        Could not load javascript '<ph name="RELATIVE_PATH">$1<ex>javas.js</ex></ph>' for content script.
      </message>
      <message name="IDS_EXTENSION_LOAD_CSS_FAILED" desc="">
        Could not load css '<ph name="RELATIVE_PATH">$1<ex>file.css</ex></ph>' for content script.
      </message>
      <message name="IDS_EXTENSION_BAD_FILE_ENCODING" desc="">
        Could not load file '<ph name="RELATIVE_PATH">$1<ex>file.js</ex></ph>' for content script. It isn't UTF-8 encoded.
      </message>
      <message name="IDS_EXTENSION_LOAD_PLUGIN_PATH_FAILED" desc="">
        Could not load '<ph name="PLUGIN_PATH">$1<ex>/path/to/file</ex></ph>' for plugin.
      </message>
      <message name="IDS_EXTENSION_LOAD_ICON_FOR_PAGE_ACTION_FAILED" desc="">
        Could not load icon '<ph name="ICON">$1<ex>icon.png</ex></ph>' for page action.
      </message>
      <message name="IDS_EXTENSION_LOAD_ICON_FOR_BROWSER_ACTION_FAILED" desc="">
        Could not load icon '<ph name="ICON">$1<ex>icon.png</ex></ph>' for browser action.
      </message>

      <!-- Extension installed bubble -->
      <message name="IDS_EXTENSION_BUNDLE_INSTALLED_HEADING_EXTENSIONS" desc="First line in the content area of the extension bundle installed bubble. Instructs which extensions were installed.">
        The following extensions are now installed:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_INSTALLED_HEADING_APPS" desc="First line in the content area of the extension bundle installed bubble. Instructs which apps were installed.">
        The following apps are now installed:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_INSTALLED_HEADING_EXTENSION_APPS" desc="First line in the content area of the extension bundle installed bubble. Instructs which apps and extensions were installed.">
        The following apps and extensions were added:
      </message>
      <message name="IDS_EXTENSION_BUNDLE_ERROR_HEADING" desc="Text displayed in the extension bundle installed bubble when some extensions or apps failed to install. Instructs which extensions did not install.">
        We were unable to install:
      </message>
      <if expr="enable_extensions">
        <if expr="is_macosx">
          <message name="IDS_EXTENSION_INSTALLED_APP_INFO" desc="Text displayed inside a link when an app is installed. Clicking this link opens up the New Tab Page to show the app's icon.">
            Show me
          </message>
        </if>
        <message name="IDS_EXTENSION_INSTALLED_PAGE_ACTION_INFO" desc="Text displayed in the InfoBubble which explains that the UI of this extension is a Page Action icon which may appear for some pages.">
          This icon will be visible when the extension can act on the current page.
        </message>
        <message name="IDS_EXTENSION_INSTALLED_PAGE_ACTION_INFO_WITH_SHORTCUT" desc="Text displayed in the InfoBubble which explains that the UI of this extension is a Page Action icon which may appear for some pages. Also has a sentence describing how to activate it.">
          This icon will be visible when the extension can act on the current page. Use this extension by clicking on the icon or by pressing <ph name="EXTENSION_SHORTCUT">$1<ex>Ctrl+E</ex></ph>.
        </message>
        <message name="IDS_EXTENSION_INSTALLED_BROWSER_ACTION_INFO" desc="Text displayed in the InfoBubble which explains that the UI of this extension is a Browser Action icon.">
          Use this extension by clicking on this icon.
        </message>
        <message name="IDS_EXTENSION_INSTALLED_BROWSER_ACTION_INFO_WITH_SHORTCUT" desc="Text displayed in the InfoBubble which explains that the UI of this extension is a Browser Action icon. Also has a sentence describing how to activate it.">
          Use this extension by clicking on this icon or by pressing <ph name="EXTENSION_SHORTCUT">$1<ex>Ctrl+E</ex></ph>.
        </message>
        <message name="IDS_EXTENSION_INSTALLED_OMNIBOX_KEYWORD_INFO" desc="Text displayed in the InfoBubble which explains that this extension has an keyword that can be used with the omnibox.">
          To use this extension, type "<ph name="EXTENSION_KEYWORD">$1<ex>search</ex></ph>", then TAB, then your command or search.
        </message>

        <if expr="not chromeos and not is_macosx">
          <message name="IDS_EXTENSION_INSTALLED_MANAGE_INFO" desc="Text displayed in the InfoBubble with instructions on how to find the chrome://extensions/ management page">
            Manage your extensions by clicking Extensions in the Tools menu.
          </message>
        </if>
        <if expr="chromeos">
          <message name="IDS_EXTENSION_INSTALLED_MANAGE_INFO" desc="Text displayed in the InfoBubble with instructions on how to find the chrome://extensions/ management page on ChromeOS">
            Manage your extensions by clicking Extensions in the "More tools" menu.
          </message>
        </if>
        <if expr="is_macosx">
          <message name="IDS_EXTENSION_INSTALLED_MANAGE_INFO" desc="Text displayed in the InfoBubble with instructions on how to find the chrome://extensions/ management page on MAC OS X">
            Manage your extensions by clicking Extensions in the Window menu.
          </message>
        </if>
        <message name="IDS_EXTENSION_INSTALLED_MANAGE_SHORTCUTS" desc="Text for the link in the InfoBubble that opens the chrome://extensions page with the Configure Commands UI visible.">
          Manage shortcuts
        </message>
        <message name="IDS_EXTENSION_INSTALLED_SYNC_PROMO_NEW" desc="Text of the sync promo at the bottom of the extension installed bubble, prompting the user to sign in in order to sync extensions.">
          To get your extensions on all your computers, <ph name="SIGN_IN_LINK">$1<ex>sign in to Chrome</ex></ph>.
        </message>
        <message name="IDS_EXTENSION_INSTALLED_SIGNIN_PROMO" desc="The remaining text of the sign-in promo paragraph. Will be appended as a label to the string above. The triple single quotes are needed to preserve the space before the word 'to' (which is handy when the language (Chrome is being translated to) uses space as word separator).">
          ''' to get this extension, your history, and other Chrome settings on all your devices.'''
        </message>
      </if>

      <!-- Directory access confirmation dialog -->
      <message name="IDS_EXTENSIONS_DIRECTORY_CONFIRMATION_DIALOG_TITLE" desc="Text of the title of the directory access confirmation dialog.">
        Confirm Access
      </message>
      <message name="IDS_EXTENSIONS_DIRECTORY_CONFIRMATION_DIALOG_MESSAGE_READ_ONLY" desc="Text of the message of the directory access confirmation dialog if the app does not have write access.">
        The folder you selected contains sensitive files. Are you sure you want to grant "$1" permanent read access to this folder?
      </message>
      <message name="IDS_EXTENSIONS_DIRECTORY_CONFIRMATION_DIALOG_MESSAGE_WRITABLE" desc="Text of the message of the directory access confirmation dialog if the app has write access.">
        The folder you selected contains sensitive files. Are you sure you want to grant "$1" permanent write access to this folder?
      </message>

      <!-- chrome://settings/extensions page -->
      <if expr="enable_extensions">
        <message name="IDS_EXTENSIONS_DEVELOPER_MODE_LINK" desc="Text of the link for developer mode.">
          Developer mode
        </message>
        <message name="IDS_EXTENSIONS_LOAD_UNPACKED_BUTTON" desc="Text of the 'Load Extension' button.">
          Load unpacked extension...
        </message>
        <message name="IDS_EXTENSIONS_PACK_BUTTON" desc="Text for the 'Pack Extension' button.">
          Pack extension...
        </message>
        <message name="IDS_EXTENSIONS_UPDATE_BUTTON" desc="Text for the 'Update extensions' button.">
          Update extensions now
        </message>
        <message name="IDS_EXTENSIONS_NONE_INSTALLED" desc="Text that lets the user know that no extensions are installed.">
          Boo... You have no extensions :-(
        </message>
        <message name="IDS_EXTENSIONS_NONE_INSTALLED_SUGGEST_GALLERY" desc="Text on next line after IDS_EXTENSIONS_NONE_INSTALLED that suggests the user look in the Chrome Web Store for extensions to install.">
          Want to <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>browse the Chrome Web Store<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph> instead?
        </message>
        <message name="IDS_EXTENSIONS_INSTALL_DROP_TARGET" desc="Text on drop target for installing extensions.">
          Drop to install
        </message>
        <message name="IDS_EXTENSIONS_CRASHED_EXTENSION" desc="Text that signifies that the extension process was terminated, usually because it has crashed.">
          (Crashed)
        </message>
        <message name="IDS_EXTENSIONS_IN_DEVELOPMENT" desc="Text that signifies that the extension is currently in development.">
          (Unpacked)
        </message>
        <message name="IDS_EXTENSIONS_VIEW_INCOGNITO" desc="Text that signifies that the extension view is in an incognito process.">
          (Incognito)
        </message>
        <message name="IDS_EXTENSIONS_VIEW_INACTIVE" desc="Text that signifies that the extension view is an inactive transient page.">
          (Inactive)
        </message>
        <message name="IDS_EXTENSIONS_VIEW_IFRAME" desc="Text that signifies that the extension view is an iframe.">
          (iframe)
        </message>
        <message name="IDS_EXTENSIONS_BACKGROUND_PAGE" desc="Display name for an autogenerated background page.">
          background page
        </message>
        <message name="IDS_EXTENSIONS_ID" desc="The ID label in front of the extension ID.">
          ID:
        </message>
        <message name="IDS_EXTENSIONS_PATH" desc="The label in front of the extension load path.">
          Loaded from:
        </message>
        <message name="IDS_EXTENSIONS_INSPECT_VIEWS" desc="The text for the label in front of the links to inspect views (some of which may not be loaded yet).">
          Inspect views:
        </message>
        <message name="IDS_EXTENSIONS_INSTALL_WARNINGS" desc="The text which says that an extension has warnings when it was installed.">
          There were warnings when trying to install this extension:
        </message>
        <message name="IDS_EXTENSIONS_LOAD_ERROR_HEADING" desc="The title of the section that describes an extension load error.">
          Error Loading Extension
        </message>
        <message name="IDS_EXTENSIONS_LOAD_ERROR_MESSAGE" desc="The message which tells the user that an extension failed to load.">
          Failed to load extension from:
        </message>
        <message name="IDS_EXTENSIONS_LOAD_ERROR_RETRY" desc="The text of the button to retry loading an extension.">
          Retry
        </message>
        <message name="IDS_EXTENSIONS_LOAD_ERROR_GIVE_UP" desc="The text of the button to give up on trying to load an extension.">
          I give up
        </message>
        <message name="IDS_EXTENSIONS_LOAD_COULD_NOT_LOAD_MANIFEST" desc="The text to indicate that the source of the extension's manifest failed to load.">
          Could not load manifest.
        </message>
        <message name="IDS_EXTENSIONS_LOAD_ADDITIONAL_FAILURES" desc="The text displayed above additional extension load failures.">
          Other extensions that failed to load:
        </message>
        <message name="IDS_EXTENSIONS_ERROR_HEADING" desc="The heading of the list of errors for an extension.">
          Errors
        </message>
        <message name="IDS_EXTENSIONS_ERROR_CLEAR_ALL" desc="The text for the button to delete all extension errors.">
          Clear all
        </message>
        <message name="IDS_EXTENSIONS_ERROR_NO_ERRORS" desc="The text displayed when an extension has no errors.">
          Awesome, no errors!
        </message>
        <message name="IDS_EXTENSIONS_ERROR_NO_ERRORS_CODE_MESSAGE" desc="The text displayed in the 'code' section when an extension has no errors.">
          Nothing to see here, move along.
        </message>
        <message name="IDS_EXTENSIONS_ERROR_CONTEXT" desc="The label for the context of an extension's error.">
          Context:
        </message>
        <message name="IDS_EXTENSIONS_ERROR_STACK_TRACE" desc="The label for the stack trace of an extension's error.">
          Stack Trace
        </message>
        <message name="IDS_EXTENSIONS_ERROR_ANONYMOUS_FUNCTION" desc="The label indicating that an error was caused within an anonymous function in the code.">
          anonymous function
        </message>
        <message name="IDS_EXTENSIONS_ERROR_LAUNCH_DEVTOOLS" desc="The text for the button to view an extension error in the developer tools.">
          View in Developer Tools
        </message>
        <message name="IDS_EXTENSIONS_ERROR_CONTEXT_UNKNOWN" desc="Text indicating that the context URL for an error is unknown.">
          Unknown
        </message>
        <message name="IDS_EXTENSIONS_ERROR_NO_CODE_TO_DISPLAY" desc="Text indicating that there is no code to be displayed for a given error.">
          Sorry, we can't show the code for this error.
        </message>
        <message name="IDS_EXTENSIONS_ENABLE" desc="The link for enabling extensions.">
          Enable
        </message>
        <message name="IDS_EXTENSIONS_ENABLED" desc="The label for an enabled extension.">
          Enabled
        </message>
        <message name="IDS_EXTENSIONS_REMOVE" desc="The label for uninstalling an extension.">
          Remove
        </message>
        <message name="IDS_EXTENSIONS_ENABLE_INCOGNITO" desc="The checkbox for enabling an extension in incognito.">
          Allow in incognito
        </message>
        <message name="IDS_EXTENSIONS_ENABLE_ERROR_COLLECTION" desc="The checkbox for enabling error collection for an extension.">
          Collect errors
        </message>
        <message name="IDS_EXTENSIONS_ALLOW_ON_ALL_URLS" desc="The checkbox for allowing an extension to run scripts on all websites without explicit permission.">
          Allow on all websites
        </message>
        <message name="IDS_EXTENSIONS_ALLOW_FILE_ACCESS" desc="The checkbox for allowing an extension access to run scripts on file URLs.">
          Allow access to file URLs
        </message>
        <message name="IDS_EXTENSIONS_VISIT_WEBSITE" desc="The link for visiting the extension's homepage.">
          Developer website
        </message>
        <message name="IDS_EXTENSIONS_VISIT_WEBSTORE" desc="The link for visiting the extension's gallery page.">
          Details
        </message>
        <message name="IDS_EXTENSIONS_RELOAD_TERMINATED" desc="The link for reloading extensions.">
          Reload
        </message>
        <message name="IDS_EXTENSIONS_REPAIR_CORRUPTED" desc="The link for repairing corrupted extensions.">
          Repair
        </message>
        <message name="IDS_EXTENSIONS_LAUNCH" desc="The link for launching apps.">
          Launch
        </message>
        <if expr="is_macosx">
          <message name="IDS_EXTENSIONS_RELOAD_UNPACKED" desc="The link for reloading unpacked extensions.">
            Reload (⌘R)
          </message>
        </if>
        <if expr="not is_macosx">
          <message name="IDS_EXTENSIONS_RELOAD_UNPACKED" desc="The link for reloading unpacked extensions.">
            Reload (Ctrl+R)
          </message>
        </if>
        <message name="IDS_EXTENSIONS_OPTIONS_LINK" desc="The link text for the Options link.">
          Options
        </message>
        <message name="IDS_EXTENSIONS_PERMISSIONS_LINK" desc="The link text for the Permissions link.">
          Permissions
        </message>
        <message name="IDS_EXTENSIONS_INFO_LINK" desc="The text for the link that opens the App Info dialog for the extension, displaying permissions and other useful information about the app.">
          Details
        </message>
        <message name="IDS_EXTENSIONS_SHOW_BUTTON" desc="The text for the Show link.">
          Show button
        </message>
        <message name="IDS_EXTENSIONS_LOG_LEVEL_INFO" desc="Alt-text indicating a low severity level for the error icon in the chrome://extensions page.">
          Log
        </message>
        <message name="IDS_EXTENSIONS_LOG_LEVEL_WARN" desc="Alt-text indicating a medium severity level for the error icon in the chrome://extensions page.">
          Warning
        </message>
        <message name="IDS_EXTENSIONS_LOG_LEVEL_ERROR" desc="Alt-text indicating a high severity level for the error icon in the chrome://extensions page.">
          Error
        </message>
        <message name="IDS_MD_EXTENSIONS_ITEM_ID" desc="The text for the label next to the extension id.">
          &lt;span&gt;ID:&lt;/span&gt;<ph name="EXTENSION_ID">$1<ex>cfhdojbkjhnklbpkdaibdccddilifddb</ex></ph>
        </message>
        <message name="IDS_MD_EXTENSIONS_ITEM_INSPECT_VIEWS" desc="The text next to any inspectable views for an extension.">
          Inspect views:
        </message>
        <message name="IDS_MD_EXTENSIONS_ITEM_ALLOW_INCOGNITO" desc="The text next to the checkbox to enable an extension in incognito mode.">
          Allow in incognito
        </message>
        <message name="IDS_MD_EXTENSIONS_ITEM_DETAILS" desc="The text on the button to show more details for a given extension.">
          Details
        </message>
        <message name="IDS_MD_EXTENSIONS_ITEM_ENABLED" desc="The text to indicate that an extension is now enabled.">
          Enabled
        </message>
        <message name="IDS_MD_EXTENSIONS_ITEM_DISABLED" desc="The text to indicate that an extension is now disabled.">
          Disabled
        </message>
        <message name="IDS_MD_EXTENSIONS_TOOLBAR_TITLE" desc="The text displayed in the toolbar of the chrome://extensions page.">
          Extensions &amp; Apps
        </message>
        <message name="IDS_MD_EXTENSIONS_SEARCH" desc="The text displayed in the search box on the chrome://extensions page.">
          Search
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_APPS" desc="The text displayed in the sidebar to go to the apps section of the page.">
          Chrome Apps
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_EXTENSIONS" desc="The text displayed in the sidebar to go to the extensions section of the page.">
          Extensions
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_LOAD_UNPACKED" desc="The text displayed in the sidebar to load unpacked extensions.">
          Load unpacked extensions
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_PACK" desc="The text displayed in the sidebar to pack an extension directory.">
          Pack extensions...
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_UPDATE_NOW" desc="The text displayed in the sidebar to update existing extensions now.">
          Update extensions now
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_WEBSITES" desc="The text displayed in the sidebar to go to the websites section of the page.">
          Websites
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_DEVELOPER_MODE" desc="The text displayed next to the checkbox to toggle developer mode in the extensions page.">
          Developer mode
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_GET_MORE_EXTENSIONS" desc="The text for the link to get more extensions in the extensions page.">
          Get more extensions
        </message>
        <message name="IDS_MD_EXTENSIONS_SIDEBAR_KEYBOARD_SHORTCUTS" desc="The text for the link to manage keyboard shortcuts for extensions.">
          Keyboard shortcuts
        </message>
        <if expr="not use_titlecase">
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS" desc="The label in an extension's context menu for the submenu specifying whether or not the extension can run on the current page (sentence case).">
            Page access
          </message>
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS_RUN_ON_CLICK" desc="The label in an extension's context menu to allow the extension access to the page only when the user clicks on the extension action (sentence case).">
            Run on click
          </message>
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS_RUN_ON_SITE" desc="The label in an extension's context menu to always allow the extension access to the current origin (sentence case).">
            Always run on <ph name="ORIGIN">$1<ex>google.com</ex></ph>
          </message>
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS_RUN_ON_ALL_SITES" desc="The label in an extension's context menu to always allow the extension access on all sites (sentence case).">
            Always run on all sites
          </message>
          <message name="IDS_EXTENSIONS_OPTIONS_MENU_ITEM" desc="The text for the options menu item in context menus (sentence case).">
            Options
          </message>
          <message name="IDS_EXTENSIONS_INSTALLED_BY_ADMIN" desc="The text indicating that an extension has been installed by the controlling administrator (sentence case).">
            Installed by your administrator
          </message>
          <message name="IDS_EXTENSIONS_DISABLE" desc="The link for disabling an extension (sentence case).">
            Disable
          </message>
          <message name="IDS_EXTENSIONS_HIDE_BUTTON" desc="The text for the Hide context menu item (sentence case).">
            Hide button
          </message>
          <message name="IDS_EXTENSIONS_KEEP_BUTTON_IN_TOOLBAR" desc="The text for the menu item to keep a button pinned in the toolbar (sentence case).">
            Keep in toolbar
          </message>
          <message name="IDS_EXTENSIONS_SHOW_BUTTON_IN_TOOLBAR" desc="The text for the menu item to move a button to the toolbar (sentence case).">
            Show in toolbar
          </message>
          <message name="IDS_MANAGE_EXTENSION" desc="The 'Manage extensions' text in the context menu for when right-clicking on extension icons (sentence case).">
            Manage extensions
          </message>
          <message name="IDS_EXTENSION_ACTION_INSPECT_POPUP" desc="The text for the right-click menu of page and browser actions which shows the popup and opens the developer tools (sentence case).">
            Inspect popup
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS" desc="The label in an extension's context menu for the submenu specifying whether or not the extension can run on the current page (sentence case).">
            Page Access
          </message>
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS_RUN_ON_CLICK" desc="The label in an extension's context menu to allow the extension access to the page only when the user clicks on the extension action (sentence case).">
            Run on Click
          </message>
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS_RUN_ON_SITE" desc="The label in an extension's context menu to always allow the extension access to the current origin (sentence case).">
            Always Run on <ph name="ORIGIN">$1<ex>google.com</ex></ph>
          </message>
          <message name="IDS_EXTENSIONS_CONTEXT_MENU_PAGE_ACCESS_RUN_ON_ALL_SITES" desc="The label in an extension's context menu to always allow the extension access on all sites (sentence case).">
            Always Run on All Sites
          </message>
          <message name="IDS_EXTENSIONS_OPTIONS_MENU_ITEM" desc="The text for the options menu item in context menus (title case).">
            Options
          </message>
          <message name="IDS_EXTENSIONS_INSTALLED_BY_ADMIN" desc="The text indicating that an extension has been installed by the controlling administrator (title case).">
            Installed by Your Administrator
          </message>
          <message name="IDS_EXTENSIONS_DISABLE" desc="The link for disabling an extension (title case).">
            Disable
          </message>
          <message name="IDS_EXTENSIONS_HIDE_BUTTON" desc="The text for the Hide context menu item (title case).">
            Hide Button
          </message>
          <message name="IDS_EXTENSIONS_KEEP_BUTTON_IN_TOOLBAR" desc="The text for the menu item to keep a button pinned in the toolbar (title case).">
            Keep in Toolbar
          </message>
          <message name="IDS_EXTENSIONS_SHOW_BUTTON_IN_TOOLBAR" desc="The text for the menu item to move a button to the toolbar (title case).">
            Show in Toolbar
          </message>
          <message name="IDS_MANAGE_EXTENSION" desc="The 'Manage Extensions' text in the context menu for when right-clicking on extension icons (title case).">
            Manage Extensions
          </message>
          <message name="IDS_EXTENSION_ACTION_INSPECT_POPUP" desc="The text for the right-click menu of page and browser actions which shows the popup and opens the developer tools (title case).">
            Inspect Popup
          </message>
        </if>
      </if>

      <message name="IDS_EXTENSIONS_POLICY_CONTROLLED" desc="The text in the extensions UI informing the user that an extension is policy controlled">
        (This extension is managed and cannot be removed or disabled.)
      </message>
      <message name="IDS_EXTENSIONS_POLICY_RECOMMENDED" desc="The text in the extensions UI informing the user that an extension is recommended installed by policy">
        (This extension is managed and cannot be removed.)
      </message>
      <message name="IDS_EXTENSIONS_DEPENDENT_EXTENSIONS" desc="The text in the extensions UI informing the user that an extension is depended on by on other installed extensions">
        The following extensions depend on this extension:
      </message>
      <message name="IDS_EXTENSIONS_LOCKED_SUPERVISED_USER" desc="The error message (either shown in the extensions UI or logged) informing a supervised user that extensions cannot be changed.">
        Apps and extensions can only be modified by the manager (<ph name="CUSTODIAN_NAME">$1<ex>Jane Doe</ex></ph>).
      </message>
      <message name="IDS_EXTENSIONS_LOADING" desc="Placeholder text shown when loading the list of extensions.">
        Loading...
      </message>
      <message name="IDS_EXTENSIONS_INSTALLED_BY_CHILD_CUSTODIAN" desc="The text in the extensions UI informing a child user that an extension was installed by their parent and cannot be changed.">
        Installed by your parent.
      </message>
      <message name="IDS_EXTENSIONS_INSTALLED_BY_SUPERVISED_USER_CUSTODIAN" desc="The text in the extensions UI informing a supervised user that an extension was installed by their custodian and cannot be changed">
        Installed by your custodian.
      </message>
      <message name="IDS_GET_MORE_EXTENSIONS" desc="The text for getting more extensions. Displayed at bottom of extension management page when there is at least one extension installed.">
        Get more extensions
      </message>
      <message name="IDS_EXTENSION_LOAD_FROM_DIRECTORY" desc="Title of directory browse dialog when user wants to load an extension from a directory.">
        Select the extension directory.
      </message>
      <message name="IDS_EXTENSIONS_COMMANDS_CONFIGURE" desc="Text for the 'Keyboard shortcuts' link to configure extension keyboard shortcuts.">
        Keyboard shortcuts
      </message>
      <message name="IDS_EXTENSION_COMMANDS_DIALOG_TITLE" desc="Title of extension commands dialog">
        Keyboard Shortcuts for Extensions and Apps
      </message>
      <message name="IDS_EXTENSION_COMMANDS_EMPTY" desc="The heading of the extension commands dialog when there are no commands to show.">
        No extensions have keyboard shortcuts assigned.
      </message>
      <message name="IDS_EXTENSION_COMMANDS_INACTIVE" desc="The text shown instead of the shortcut text (Ctrl+F) if the shortcut is inactive.">
        Not set
      </message>
      <message name="IDS_EXTENSION_TYPE_SHORTCUT" desc="The text shown in a text box to instruct the user to start typing (to capture which shortcut to use for the extension command).">
        Type a shortcut
      </message>
      <message name="IDS_EXTENSION_DELETE_SHORTCUT" desc="The text shown when you hover over the X inside the input text field.">
        Delete shortcut
      </message>
      <message name="IDS_EXTENSION_COMMANDS_GENERIC_ACTIVATE" desc="The generic 'activate extension' text used as description for some commands.">
        Activate the extension
      </message>
      <message name="IDS_EXTENSION_COMMANDS_GLOBAL" desc="The text in the select box for commands that are global in nature (the shortcut works when Chrome does not have focus).">
        Global
      </message>
      <message name="IDS_EXTENSION_COMMANDS_NOT_GLOBAL" desc="The text in the select box for commands that are not global in nature (the shortcut works only when Chrome has focus).">
        In Chrome
      </message>

      <message name="IDS_EXTENSION_PACK_DIALOG_TITLE" desc="Title of pack extension dialog">
        Pack Extension
      </message>
      <message name="IDS_EXTENSION_PACK_BUTTON" desc="Text of the pack extension button">
        Pack Extension
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_HEADING" desc="The heading of the pack extension dialog.">
        Select the root directory of the extension to pack. To update an extension, also select the private key file to reuse.
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_ROOT_DIRECTORY_LABEL" desc="Label in the pack extension dialog for the control that lets the user select the extension to pack.">
        Extension root directory:
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_PRIVATE_KEY_LABEL" desc="Label in the pack extension dialog for the control that lets the user select the private key to use to pack the extension. The label should indicate that the input is not required to be filled in.">
        Private key file (optional):
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_BROWSE" desc="Text on buttons in the pack extension dialog that open up file browsing UI to pick the extension to pack.">
        Browse...
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_SELECT_KEY" desc="Heading in file browse dialog instructing user to select a private key.">
        Select private key file.
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_KEY_FILE_TYPE_DESCRIPTION" desc="Displayed in the file browse dialog. Associates the file extension 'pem' is for Private Keys.">
        Private key
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_ERROR_ROOT_REQUIRED" desc="Error message in pack extension dialog when the user does not specify a root directory.">
        Extension root directory is required.
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_ERROR_ROOT_INVALID" desc="Error message in pack extension dialog when the user speciifes an invalid root directory.">
        Extension root directory is invalid.
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_ERROR_KEY_INVALID" desc="Error message in pack extension dialog when the user speciifes an invalid key file.">
        Private key file is invalid.
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_SUCCESS_BODY_NEW" desc="Message shown on successful packing of a new extension.">
        Created the following files:

Extension: <ph name="EXTENSION_FILE">$1<ex>c:\users\aa\myextension.crx</ex></ph>
Key File: <ph name="KEY_FILE">$2<ex>c:\users\aa\myextension.pem</ex></ph>

Keep your key file in a safe place. You will need it to create new versions of your extension.
      </message>
      <message name="IDS_EXTENSION_PACK_DIALOG_SUCCESS_BODY_UPDATE" desc="Message shown on successful packing of an updated extension.">
        Created the extension:

<ph name="EXTENSION_FILE">$1<ex>c:\users\aa\myextension.crx</ex></ph>
      </message>

      <message name="IDS_EXTENSION_PROMPT_INSTALL_BUTTON" desc="Text for the install button on the extension install prompt">
        Add
      </message>
      <message name="IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_EXTENSION" desc="Text for the install button on the extension install prompt, for an extension (i.e. not app or theme).">
        Add extension
      </message>
      <message name="IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_APP" desc="Text for the install button on the extension install prompt, for an app.">
        Add app
      </message>
      <message name="IDS_EXTENSION_INSTALL_PROMPT_ACCEPT_BUTTON_THEME" desc="Text for the install button on the extension install prompt, for a theme.">
        Add theme
      </message>
      <message name="IDS_EXTENSION_PROMPT_LAUNCH_BUTTON" desc="Text for the launch button on the extension install prompt">
        Launch app
      </message>
      <message name="IDS_EXTENSION_PROMPT_UNINSTALL_BUTTON" desc="Text for the uninstall button on the extension uninstall prompt">
        Remove
      </message>
      <message name="IDS_EXTENSION_PROMPT_UNINSTALL_REPORT_ABUSE" desc="Message to indicate the user can report abuse for the extension about to be uninstalled.">
        Report abuse
      </message>
      <message name="IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON" desc="Text for the enable button on the extension re-enable prompt">
        Re-enable
      </message>
      <message name="IDS_EXTENSION_PROMPT_PERMISSIONS_BUTTON" desc="Text for the allow button on the extension permissions prompt">
        Allow
      </message>
      <message name="IDS_EXTENSION_PROMPT_PERMISSIONS_ABORT_BUTTON" desc="Text for the deny button on the extension permissions prompt">
        Deny
      </message>
      <message name="IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_FILES_BUTTON" desc="Text for the Revoke File Access button on the extension permissions prompt">
        Revoke file access
      </message>
      <message name="IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_DEVICES_BUTTON" desc="Text for the Revoke Device Access button on the extension permissions prompt">
        Revoke device access
      </message>
      <message name="IDS_EXTENSION_PROMPT_PERMISSIONS_CLEAR_RETAINED_FILES_AND_DEVICES_BUTTON" desc="Text for the Revoke File and Device Access button on the extension permissions prompt">
        Revoke file and device access
      </message>
      <message name="IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_EXTENSION" desc="Text for the install button on the extension install prompt for a remotely installed extension">
        Enable extension
      </message>
      <message name="IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_APP" desc="Text for the install button on the extension install prompt for a remotely installed app">
        Enable app
      </message>
      <message name="IDS_EXTENSION_PROMPT_REPAIR_BUTTON_EXTENSION" desc="Text for the install button on the extension reinstall prompt.">
        Repair extension
      </message>
      <message name="IDS_EXTENSION_PROMPT_REPAIR_BUTTON_APP" desc="Text for the install button on the app reinstall prompt.">
        Repair app
      </message>
      <message name="IDS_EXTENSION_WEB_STORE_TITLE" desc="Text for the Chrome Web Store">
        Chrome Web Store
      </message>
      <message name="IDS_EXTENSION_WEB_STORE_TITLE_SHORT" desc="Text for the Chrome Web Store">
        Web Store
      </message>
      <message name="IDS_EXTENSIONS_SHOW_DETAILS" desc="Tooltip for the button next to an extension that shows more details">
        Show Details
      </message>
      <message name="IDS_EXTENSIONS_HIDE_DETAILS" desc="Tooltip for the button next to an extension that hides details">
        Hide Details
      </message>

      <!-- Error messages for Chrome Web Store UI -->
      <message name="IDS_WEBSTORE_DOWNLOAD_ACCESS_DENIED" desc="Text displayed in the error prompt when a CRX cannot be downloaded due to an authentication error.">
        Access denied.
      </message>

      <!-- Global error messages for extensions -->
      <message name="IDS_EXTENSION_WARNINGS_WRENCH_MENU_ITEM" desc="The wrench menu item indicating that extensions caused problems.">
        Extension error
      </message>
      <message name="IDS_EXTENSION_WARNINGS_TITLE" desc="The title of a section in chrome://extensions which contains the warning(s) that relates to one particular extension">
        Warning:
      </message>

      <!-- External extension install alerts -->
      <!-- TODO(mpcomplete): We may need to change Chrome to
           PRODUCT_NAME. Leaving it as-is until we finalize
           these strings. -->
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_EXTENSION" desc="The wrench menu item indicating that a new external extension was installed.">
        New extension added (<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>)
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_APP" desc="The wrench menu item indicating that a new external extension was installed.">
        New app added (<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>)
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_THEME" desc="The wrench menu item indicating that a new external extension was installed.">
        New theme added (<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>)
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_BUBBLE_TITLE" desc="The title for the bubble that alerts the user that a new external extension was installed.">
        "<ph name="EXTENSION_NAME">$1<ex>Babylon Toolbar</ex></ph>" added
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_BUBBLE_HEADING_APP" desc="The heading text (below the title) for the bubble that alerts the user that a new external app was installed.">
        Another program on your computer added an app that may change the way Chrome works.
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_BUBBLE_HEADING_EXTENSION" desc="The heading text (below the title) for the bubble that alerts the user that a new external extension was installed.">
        Another program on your computer added an extension that may change the way Chrome works.
      </message>
      <message name="IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_BUBBLE_HEADING_THEME" desc="The heading text (below the title) for the bubble that alerts the user that a new external theme was installed.">
        Another program on your computer added a theme that may change the way Chrome works.
      </message>

      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_UNSUPPORTED_DISABLED_TITLE" desc="In Title Case: Title of the dialog shown when unsupported extensions have been disabled">
          Unsupported Extensions Disabled
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_UNSUPPORTED_DISABLED_TITLE" desc="Title of the dialog shown when unsupported extensions have been disabled">
          Unsupported extensions disabled
        </message>
      </if>
      <message name="IDS_EXTENSIONS_DISABLED_AND_N_MORE" desc="Used for a count of additional items in the IDS_EXTENSIONS_UNSUPPORTED_DISABLED_BODY dialog shown when unsupported extensions have been disabled, if we could not fit them all in the dialog">
        and <ph name="NUMBER_ADDITIONAL_DISABLED">$1<ex>5</ex></ph> more
      </message>
      <message name="IDS_EXTENSIONS_UNSUPPORTED_DISABLED_BUTTON" desc="Text of the button on the dialog shown when unsupported extensions have been disabled">
      OK, got it
      </message>
      <message name="IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE" desc="Text shown in the extensions settings for items that might have been forcefully added to Chrome without the user's knowledge">
        This extension is not listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE">$1<ex>Chrome Web Store</ex></ph> and may have been added without your knowledge.
      </message>
      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_DISABLE_DEVELOPER_MODE_TITLE" desc="In Title Case: Title of a dialog warning users they have development mode extensions running">
          Disable Developer Mode Extensions
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_DISABLE_DEVELOPER_MODE_TITLE" desc="Title of a dialog warning users they have development mode extensions running">
          Disable developer mode extensions
        </message>
      </if>
      <message name="IDS_EXTENSIONS_DISABLE_DEVELOPER_MODE_BODY" desc="Body of a dialog warning users they have development mode extensions running">
        Extensions running in developer mode can harm your computer. If you're not a developer, you should disable these extensions running in developer mode to stay safe.
      </message>
      <message name="IDS_EXTENSIONS_CORRUPTED_EXTENSION" desc="The warning for the user that an extension may have been tampered with on disk.">
        This extension may have been corrupted.
      </message>
      <message name="IDS_EXTENSIONS_CORRUPTED_EXTENSION_2" desc="The warning for the user that an extension may have been tampered with on disk.">
        This extension may have been corrupted. Try re-installing.
      </message>
      <message name="IDS_EXTENSIONS_CORRUPTED_EXTENSION_3" desc="The warning for the user that an extension may have been tampered with on disk.">
        This extension may have been incorrectly updated. Try re-installing.
      </message>
      <message name="IDS_EXTENSIONS_CORRUPTED_EXTENSION_4" desc="The warning for the user that an extension may have been tampered with on disk.">
        Extension corrupted. Try re-installing.
      </message>
      <message name="IDS_EXTENSIONS_CORRUPTED_EXTENSION_5" desc="The warning for the user that an extension may have been tampered with on disk.">
        This extension may have been corrupted. Please try uninstalling and reinstalling.
      </message>
      <message name="IDS_EXTENSIONS_DISABLED_UPDATE_REQUIRED_BY_POLICY" desc="Text shown in the extensions settings for extensions disabled due to minimum version requirement from enterprise policy">
        This extension is outdated and disabled by enterprise policy. It might become enabled automatically when a newer version is available.
      </message>

      <!-- Settings API bubble -->
      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_HOME_PAGE_BUBBLE" desc="In Title Case: Title of a bubble warning users that an extension has overridden their home page setting">
         Is This the Home Page You Were Expecting?
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_HOME_PAGE_BUBBLE" desc="Title of a bubble warning users that an extension has overridden their home page setting">
          Is this the home page you were expecting?
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_STARTUP_PAGES_BUBBLE" desc="In Title Case: Title of a bubble warning users that an extension has overridden their startup pages setting">
          Is This the Startup Page You Were Expecting?
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_STARTUP_PAGES_BUBBLE" desc="Title of a bubble warning users that an extension has overridden their startup pages setting">
          Is this the startup page you were expecting?
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_SEARCH_ENGINE_BUBBLE" desc="In Title Case: Title of a bubble warning users that an extension has overridden their default search engine setting">
          Is This the Search Page You Were Expecting?
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_SEARCH_ENGINE_BUBBLE" desc="Title of a bubble warning users that an extension has overridden their default search engine setting">
          Is this the search page you were expecting?
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_NTP_CONTROLLED_TITLE_HOME_PAGE_BUBBLE" desc="In Title Case: Title of a bubble warning users that an extension has overridden their new tab page setting">
         Is This the New Tab Page You Were Expecting?
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_NTP_CONTROLLED_TITLE_HOME_PAGE_BUBBLE" desc="Title of a bubble warning users that an extension has overridden their new tab page setting">
          Is this the new tab page you were expecting?
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_EXTENSIONS_PROXY_CONTROLLED_TITLE_HOME_PAGE_BUBBLE" desc="In Title Case: Title of a bubble warning users that an extension has overridden their proxy setting">
        Your Internet Connection is Being Controlled
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_EXTENSIONS_PROXY_CONTROLLED_TITLE_HOME_PAGE_BUBBLE" desc="Title of a bubble warning users that an extension has overridden their proxy setting">
          Your Internet connection is being controlled
        </message>
      </if>

      <message name="IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_SEARCH_ENGINE_SPECIFIC" desc="Text displayed as the first line in the Settings API bubble when an extension has changed the search engine, and we are pointing to its icon.">
        This extension has changed what page is shown when you search from the Omnibox.
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_SEARCH_ENGINE" desc="Text displayed as the first line in the Settings API bubble when an extension has changed the search engine, and we are not pointing to its icon.">
        The extension "<ph name="EXTENSION_NAME">$1<ex>AdBlock</ex></ph>" has changed what page is shown when you search from the Omnibox.
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_HOME_PAGE_SPECIFIC" desc="Text displayed in the Settings API bubble as first line when an extension has changed the home page, and we are pointing to its icon.">
        This extension has changed what page is shown when you click the Home button.
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_HOME_PAGE" desc="Text displayed in the Settings API bubble as first line when an extension has changed the home page, and we are not pointing to its icon.">
        The extension "<ph name="EXTENSION_NAME">$1<ex>AdBlock</ex></ph>" has changed what page is shown when you click the Home button.
      </message>

      <message name="IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE" desc="Second line in the Settings API bubble. Only shown if the secondary change by the extension was just the search engine. The triple single quotes are needed to preserve the space before and after the sentence which is needed when the language (Chrome is being translated to) uses space as word separator. Please preserve them, unless the language being translated to does not use space as word separator.">
        ''' It also controls what page is shown when you search from the Omnibox.'''
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_PAGE" desc="Second line in the Settings API bubble. Only shown if the secondary change by the extension was the just home page. See IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE for reason for triple quotes.">
        ''' It also controls what page is shown when you click the Home button. '''
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_HOME_AND_SEARCH" desc="Second line in the Settings API bubble. Only shown if the secondary change by the extension was both the home page and the search engine. See IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE for reason for triple quotes.">
        ''' It also controls what page is shown when you click the Home button or search from the Omnibox. '''
      </message>

      <message name="IDS_EXTENSIONS_NTP_CONTROLLED_FIRST_LINE" desc="Text displayed as the first line in the NTP bubble when an extension has changed the new tab page.">
        An extension has changed what page is shown when you open a new tab.
      </message>

      <message name="IDS_EXTENSIONS_PROXY_CONTROLLED_FIRST_LINE" desc="Text displayed as the first line in the proxy bubble when an extension has changed the proxy but we are not pointing at it's icon (because it doesn't have one).">
        The extension "<ph name="EXTENSION_NAME">$1<ex>AdBlock</ex></ph>" has taken control of your proxy settings, which means it can change, break, or eavesdrop on anything you do online. If you aren't sure why this change happened, you probably don't want it.
      </message>
      <message name="IDS_EXTENSIONS_PROXY_CONTROLLED_FIRST_LINE_EXTENSION_SPECIFIC" desc="Text displayed as the first line in the proxy bubble when an extension has changed the proxy and we are pointing at that extension's icon.">
        This extension has taken control of your proxy settings, which means it can change, break, or eavesdrop on anything you do online. If you aren't sure why this change happened, you probably don't want it.
      </message>

      <message name="IDS_EXTENSIONS_SETTINGS_API_THIRD_LINE_CONFIRMATION" desc="Third line in the Settings API bubble, always appended after the first (and optional second) line to make one paragraph. See IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_SEARCH_ENGINE for reason for triple quotes.">
        ''' If you didn't want these changes, you can restore your previous settings.'''
      </message>

      <message name="IDS_EXTENSION_CONTROLLED_RESTORE_SETTINGS" desc="The button in the extension controlled bubbles that reverts the settings changes made by the extension and restores what the user had before.">
        Restore settings
      </message>
      <message name="IDS_EXTENSION_CONTROLLED_KEEP_CHANGES" desc="The button in the extension controlled bubbles that cancels the bubble without action.">
        Keep changes
      </message>

      <!-- chrome://settings-frame/options_settings_app.html for the App Launcher Settings App -->
      <if expr="enable_settings_app">
        <message name="IDS_SETTINGS_APP_LAUNCHER_PRODUCT_NAME" desc="Product name to use when referring to applications running in the App Launcher inside the non-browser Settings App">
          App Launcher
        </message>
        <message name="IDS_SETTINGS_APP_PROFILES_SWITCH_BUTTON_LABEL" desc="The label that appears on the profile switch user button in the Settings App to allow a user to switch the app launcher profile to the current selection.">
          Switch user
        </message>
        <message name="IDS_SETTINGS_APP_SYNC_OVERVIEW" desc="The message that appears in the non-browser Settings App when sync has not been set up by the user.">
          Sign in with your Google Account to allow apps to synchronize settings and provide other customized services.
        </message>
      </if>

      <!-- Material Design version of chrome://policy -->
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_POLICY_PAGE_NAME" desc="Name for the flag to enable the material design policy page.">
          Enable Material Design policy page
      </message>
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_POLICY_PAGE_DESCRIPTION" desc="Description for the flag to enable the material design policy page.">
          If enabled, the chrome://md-policy URL loads the Material Design policy page.
      </message>

      <!-- Material Design version of chrome://downloads -->
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_DOWNLOADS_NAME" desc="Name for the flag to enable the material design downloads page.">
          Enable Material Design downloads
      </message>
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_DOWNLOADS_DESCRIPTION" desc="Description for the flag to enable the material design downloads page.">
          If enabled, the chrome://downloads/ URL loads the Material Design downloads page.
      </message>

      <!-- Material Design version of chrome://history -->
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_HISTORY_NAME" desc="Name for the flag to enable the material design history page.">
        Enable Material Design history
      </message>
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_HISTORY_DESCRIPTION" desc="Description for the flag to enable the material design history page.">
        If enabled, the chrome://history/ URL loads the Material Design history page.
      </message>

      <!-- Material Design version of chrome://extensions -->
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_EXTENSIONS_NAME" desc="Name for the flag to enable the material design extensions page.">
        Enable Material Design extensions
      </message>
      <message name="IDS_FLAGS_ENABLE_MATERIAL_DESIGN_EXTENSIONS_DESCRIPTION" desc="Description for the flag to enable the material design extensions page.">
        If enabled, the chrome://extensions/ URL loads the Material Design extensions page.
      </message>

      <!-- Device scale factor change in content crbug.com/485650. -->
      <message name="IDS_FLAGS_ENABLE_USE_ZOOM_FOR_DSF_NAME" desc="Name for the flag to use Blink's zooming mechanism to implement device scale factor.">
        Use Blink's zoom for device scale factor.
      </message>
      <message name="IDS_FLAGS_ENABLE_USE_ZOOM_FOR_DSF_DESCRIPTION" desc="Description for the flag to use Blink's zooming mechanism to implement device scale factor.">
        If enabled, Blink uses its zooming mechanism to scale content for device scale factor.
      </message>

      <!-- Components -->
      <message name="IDS_COMPONENTS_TITLE" desc="Title for the chrome://components page.">
        Components
      </message>
      <message name="IDS_COMPONENTS_VERSION" desc="The label in front of a component version number.">
        Version:
      </message>
      <message name="IDS_COMPONENTS_NONE_INSTALLED" desc="Text that lets the user know that no components are installed.">
        No components installed.
      </message>
      <message name="IDS_COMPONENTS_NO_COMPONENTS" desc="Text that indicates that no components are installed">
        No components are installed
      </message>
      <message name="IDS_COMPONENTS_CHECK_FOR_UPDATE" desc="The button label for triggering update check.">
        Check for update
      </message>
      <message name="IDS_COMPONENTS_STATUS_LABEL" desc="Status label">
        Status
      </message>
      <message name="IDS_COMPONENTS_CHECKING_LABEL" desc="Checking label">
        Checking for status...
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_NEW" desc="Service Status">
        New
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_CHECKING" desc="Service Status">
        Checking
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_UPDATE" desc="Service Status">
        Update
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_DNL_DIFF" desc="Service Status">
        Downloading diff
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_DNL" desc="Service Status">
        Downloading
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_DOWNLOADED" desc="Service Status">
        Downloaded
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_UPDT_DIFF" desc="Service Status">
        Updating diff
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_UPDATING" desc="Service Status">
        Updating
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_UPDATED" desc="Service Status">
        Updated
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_UPTODATE" desc="Service Status">
        Up-to-date
      </message>
      <message name="IDS_COMPONENTS_SVC_STATUS_NOUPDATE" desc="Service Status">
        No update
      </message>
      <message name="IDS_COMPONENTS_UNKNOWN" desc="Service Status">
        Unknown
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_STARTED" desc="Service Status">
        Updater started
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_SLEEPING" desc="Service Status">
        Updater sleeping
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_FOUND" desc="Service Status">
        Update found
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_READY" desc="Service Status">
        Update ready
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_UPDATED" desc="Service Status">
        Component updated
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_NOTUPDATED" desc="Service Status">
        Component not updated
      </message>
      <message name="IDS_COMPONENTS_EVT_STATUS_DOWNLOADING" desc="Service Status">
        Component downloading
      </message>

      <!-- Plugins -->
      <if expr="enable_plugins">
        <message name="IDS_PLUGINS_TITLE" desc="Title for the chrome://plugins page.">
          Plugins
        </message>
        <message name="IDS_PLUGINS_DETAILS_MODE_LINK" desc="Text of the link for details mode.">
          Details
        </message>
        <message name="IDS_PLUGINS_NONE_INSTALLED" desc="Text that lets the user know that no plugins are installed.">
          No plugins installed.
        </message>
        <message name="IDS_PLUGINS_DISABLED_PLUGIN" desc="Text that signifies that the plugin is currently disabled.">
          (Disabled)
        </message>
        <message name="IDS_PLUGINS_DISABLED_BY_POLICY_PLUGIN" desc="Text that signifies that the plugin is currently disabled by enterprise policy.">
          (Disabled by enterprise policy)
        </message>
        <message name="IDS_PLUGINS_ENABLED_BY_POLICY_PLUGIN" desc="Text that signifies that the plugin is currently enabled by enterprise policy.">
          (Enabled by enterprise policy)
        </message>
        <message name="IDS_PLUGINS_GROUP_MANAGED_BY_POLICY" desc="Text that signifies that the plugin group is currently managed by enterprise policy.">
          (Managed by enterprise policy)
        </message>
        <message name="IDS_PLUGINS_VERSION" desc="The label in front of a plugin version number.">
          Version:
        </message>
        <message name="IDS_PLUGINS_DESCRIPTION" desc="The label in front of a plugin description.">
          Description:
        </message>
        <message name="IDS_PLUGINS_PATH" desc="The label in front of a plugin path (file/location on disk).">
          Location:
        </message>
        <message name="IDS_PLUGINS_TYPE" desc="The label in front of a plugin type (NPAPI, PPAPI, etc.).">
          Type:
        </message>
        <message name="IDS_PLUGINS_MIME_TYPES" desc="The label in front of a plugin's MIME types table.">
          MIME types:
        </message>
        <message name="IDS_PLUGINS_MIME_TYPES_MIME_TYPE" desc="The label over the MIME type column in a plugin's MIME types table.">
          MIME type
        </message>
        <message name="IDS_PLUGINS_MIME_TYPES_DESCRIPTION" desc="The label over the description column in a plugin's MIME types table.">
          Description
        </message>
        <message name="IDS_PLUGINS_MIME_TYPES_FILE_EXTENSIONS" desc="The label over the file extensions column in a plugin's MIME types table.">
          File extensions
        </message>
        <message name="IDS_PLUGINS_DISABLE" desc="The link for disabling a plugin.">
          Disable
        </message>
        <message name="IDS_PLUGINS_ENABLE" desc="The link for enabling a plugin.">
          Enable
        </message>
        <message name="IDS_PLUGINS_ALWAYS_ALLOWED" desc="The checkbox label for whitelisting a plugin for content settings.">
          Always allowed to run
        </message>
        <message name="IDS_PLUGINS_DOWNLOAD" desc="The link label to download the latest version of this plugin">
          Download Critical Security Update
        </message>
        <message name="IDS_PLUGINS_NAME" desc="The label for the name of this plugin">
          Name:
        </message>
        <message name="IDS_PLUGINS_NO_PLUGINS" desc="Text that indicates that no plugins are installed">
          No plugins are installed
        </message>
        <message name="IDS_PLUGINS_NPAPI" desc="Text that indicates the plugin is an NPAPI plugin.">
          NPAPI
        </message>
        <message name="IDS_PLUGINS_PPAPI_IN_PROCESS" desc="Text that indicates the plugin is an in-process PPAPI plugin.">
          PPAPI (in-process)
        </message>
        <message name="IDS_PLUGINS_PPAPI_OUT_OF_PROCESS" desc="Text that indicates the plugin is an out-of-process PPAPI plugin.">
          PPAPI (out-of-process)
        </message>
        <message name="IDS_PLUGINS_BROWSER_PLUGIN" desc="Text that indicates the plugin is a browser plugin.">
          BROWSER PLUGIN
        </message>
        <message name="IDS_PLUGINS_NPAPI_BEING_REMOVED_SOON" desc="The text shown when an NPAPI plugin loads to warn the user that NPAPI plugin support is being removed soon.">
          This site uses a plugin (<ph name="PLUGIN_NAME">$1<ex>Silverlight</ex></ph>) that will soon be unsupported.
        </message>
        <message name="IDS_PLUGINS_NPAPI_REMOVED" desc="The text shown when an NPAPI plugin attempts to load to tell the user that NPAPI plugin support has been removed.">
          This site uses a plugin (<ph name="PLUGIN_NAME">$1<ex>Silverlight</ex></ph>) that is unsupported.
        </message>
      </if>

      <message name="IDS_FLAGS_NACL_NAME" desc="Name of the 'Native Client' lab.">
        Native Client
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_NACL_DESCRIPTION" desc="Mobile: Description of the 'Native Client' lab.">
          Enable support for Native Client.
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_FLAGS_NACL_DESCRIPTION" desc="Description of the 'Native Client' lab.">
          Support Native Client for all web applications, even those that were not installed from the Chrome Web Store.
        </message>
      </if>
      <message name="IDS_FLAGS_NACL_DEBUG_NAME" desc="Name of the 'NaCl GDB debug stub' lab.">
        Native Client GDB-based debugging
      </message>
      <message name="IDS_FLAGS_NACL_DEBUG_DESCRIPTION" desc="Description of the 'NaCl GDB debug stub' lab.">
        Enable GDB debug stub. This will stop a Native Client application on startup and wait for nacl-gdb (from the NaCl SDK) to attach to it.
      </message>
      <message name="IDS_FLAGS_NACL_DEBUG_MASK_NAME" desc="Name of the 'Restrict NaCl GDB debugging' lab.">
        Restrict Native Client GDB-based debugging by pattern
      </message>
      <message name="IDS_FLAGS_NACL_DEBUG_MASK_DESCRIPTION" desc="Description of the 'Restrict NaCl GDB debugging' lab.">
        Restricts Native Client application GDB-based debugging by URL of manifest file. Native Client GDB-based debugging must be enabled for this option to work.
      </message>
      <message name="IDS_NACL_DEBUG_MASK_CHOICE_DEBUG_ALL">
        Debug everything.
      </message>
      <message name="IDS_NACL_DEBUG_MASK_CHOICE_EXCLUDE_UTILS_PNACL">
        Debug everything except secure shell and the PNaCl translator.
      </message>
      <message name="IDS_NACL_DEBUG_MASK_CHOICE_INCLUDE_DEBUG">
        Debug only if manifest URL ends with debug.nmf.
      </message>
      <message name="IDS_MARK_NON_SECURE_AS_NAME" desc="Name of the 'Mark Non-Secure Origins As' lab.">
        Mark non-secure origins as non-secure
      </message>
      <message name="IDS_MARK_NON_SECURE_AS_DESCRIPTION" desc="Description of the 'Mark Non-Secure Origins As' lab.">
        Mark non-secure origins as non-secure, or as "dubious".
      </message>
      <message name="IDS_MARK_NON_SECURE_AS_NEUTRAL">
        Mark non-secure origins as neutral.
      </message>
      <message name="IDS_MARK_NON_SECURE_AS_NON_SECURE">
        Mark non-secure origins as non-secure.
      </message>
      <message name="IDS_FLAGS_SAVE_PAGE_AS_MHTML_NAME" desc="Name of the 'Save Page as MHTML' lab.">
        Save Page as MHTML
      </message>
      <message name="IDS_FLAGS_SAVE_PAGE_AS_MHTML_DESCRIPTION" desc="Description of the 'Save Page as MHTML' lab.">
        Enables saving pages as MHTML: a single text file containing HTML and all sub-resources.
      </message>
      <message name="IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_NAME" desc="Title of the 'device discovery notificatios' flag.">
        Device Discovery Notifications
      </message>
      <message name="IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_DESCRIPTION" desc="Description of the 'device discovery notifications' flag.">
        Device discovery notifications on local network.
      </message>
      <if expr="is_win">
        <message name="IDS_FLAGS_CLOUD_PRINT_XPS_NAME">
          XPS in Google Cloud Print
        </message>
        <message name="IDS_FLAGS_CLOUD_PRINT_XPS_DESCRIPTION">
          XPS enables advanced options for classic printers connected to the Cloud Print with Chrome. Printers must be re-connected after changing this flag.
        </message>
      </if>
      <message name="IDS_FLAGS_IFRAME_BASED_SIGNIN_NAME" desc="Title for the flag for iframe-based sign-in flows.">
        iframe-based sign-in flows
      </message>
      <message name="IDS_FLAGS_IFRAME_BASED_SIGNIN_DESCRIPTION" desc="Description for the flag for iframe-based sign-in flows">
        Uses an iframe-based sign-in flow instead of a webview-based flow.
      </message>
      <message name="IDS_FLAGS_MEDIA_ROUTER_NAME" desc="Title of the flag for the media router.">
        Media Router
      </message>
      <message name="IDS_FLAGS_MEDIA_ROUTER_DESCRIPTION" desc="Description of the flag for the media router.">
        Enables Chrome to access external presentation-type displays and use them for presenting web content.
      </message>
      <message name="IDS_FLAGS_PRINT_PREVIEW_REGISTER_PROMOS_NAME">
        Print Preview Registration Promos
      </message>
      <message name="IDS_FLAGS_PRINT_PREVIEW_REGISTER_PROMOS_DESCRIPTION">
        Enable registering unregistered cloud printers from print preview.
      </message>
      <message name="IDS_FLAGS_SAVE_PASSWORD_BUBBLE_NAME">
        Save Password Bubble UI
      </message>
      <message name="IDS_FLAGS_SAVE_PASSWORD_BUBBLE_DESCRIPTION">
        Enable experimental bubble-based UI for saving passwords; replaces the existing infobar.
      </message>
      <message name="IDS_FLAGS_SCROLL_PREDICTION_NAME" desc="Title of the flag which enables scroll prediction.">
        Scroll prediction
      </message>
      <message name="IDS_FLAGS_TOP_CHROME_MD" desc="Title of the flag which enables or disables material design in the top chrome of the browser.">
        Material design in the browser's top chrome
      </message>
      <message name="IDS_FLAGS_TOP_CHROME_MD_DESCRIPTION" desc="Description of the flag which changes the material design elements in the top chrome of the browser.">
        Sets the material design elements in the browser's top chrome.
      </message>
      <message name="IDS_FLAGS_TOP_CHROME_MD_MATERIAL" desc="Top Chrome material design option.">
        Material
      </message>
      <message name="IDS_FLAGS_TOP_CHROME_MD_MATERIAL_HYBRID" desc="Top Chrome material hybrid design option.">
        Material Hybrid
      </message>
      <message name="IDS_FLAGS_TOP_CHROME_MD_NON_MATERIAL" desc="Top Chrome non-material design option.">
        Non-material
      </message>
      <message name="IDS_FLAGS_SCROLL_PREDICTION_DESCRIPTION" desc="Description of the flag to enable scroll prediction.">
        Predicts the finger's future position during scrolls allowing time to render the frame before the finger is there.
      </message>
      <message name="IDS_FLAGS_ADD_TO_SHELF_NAME" desc="Title of the flag for add to shelf banners.">
        Add to shelf
      </message>
      <message name="IDS_FLAGS_ADD_TO_SHELF_DESCRIPTION" desc="Description of the flag for add to shelf banners.">
        Enable the display of add to shelf banners, which prompt a user to add a web app to their shelf, or other platform-specific equivalent.
      </message>
      <message name="IDS_FLAGS_BYPASS_APP_BANNER_ENGAGEMENT_CHECKS_NAME" desc="Title of the flag which bypasses the user engagement checks for app banners.">
        Bypass user engagement checks
      </message>
      <message name="IDS_FLAGS_BYPASS_APP_BANNER_ENGAGEMENT_CHECKS_DESCRIPTION" desc="Description of the flag to bypass the user engagement checks for app banners.">
        Bypasses user engagement checks for displaying app banners, such as requiring that users have visited the site before and that the banner hasn't been shown recently. This allows developers to test that other eligibility requirements for showing app banners, such as having a manifest, are met.
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_ACCESSIBILITY_TAB_SWITCHER_NAME" desc="Name of the flag to enable the accessibility tab switcher.">
          Accessibility Tab Switcher
        </message>
        <message name="IDS_FLAGS_ACCESSIBILITY_TAB_SWITCHER_DESCRIPTION" desc="Description of the flag to enable the accessibility tab switcher.">
          Enable the accessibility tab switcher for Android.
        </message>
        <message name="IDS_FLAGS_ENABLE_PHYSICAL_WEB_NAME" desc="Name of the flag to enable the physical web feature.">
          Enable the Physical Web.
        </message>
        <message name="IDS_FLAGS_ENABLE_PHYSICAL_WEB_DESCRIPTION" desc="Description of the flag to enable the physical web feature.">
          Enable scanning for URLs from Physical Web objects.
        </message>
      </if>
      <message name="IDS_FLAGS_TOUCH_EVENTS_NAME" desc="Title of the touch-events flag." >
        Enable touch events
      </message>
      <message name="IDS_FLAGS_TOUCH_EVENTS_DESCRIPTION" desc="Description of the touch-events flag.">
        Force touchscreen support to always be enabled or disabled, or to be enabled when a touchscreen is detected on startup (Automatic, the default).
      </message>
      <message name="IDS_FLAGS_TOUCH_ADJUSTMENT_NAME" desc="Title of the disable touch adjustment flag.">
        Touch adjustment
      </message>
      <message name="IDS_FLAGS_TOUCH_ADJUSTMENT_DESCRIPTION" desc="Description of the disable touch adjustment flag.">
        Refine the position of a touch gesture in order to compensate for touches having poor resolution compared to a mouse.
      </message>
      <message name="IDS_FLAGS_COMPOSITED_LAYER_BORDERS" desc="Name of the 'Composited layer borders' lab.">
        Composited render layer borders
      </message>
      <message name="IDS_FLAGS_COMPOSITED_LAYER_BORDERS_DESCRIPTION" desc="Description of the 'Composited layer borders' lab.">
        Renders a border around composited Render Layers to help debug and study layer compositing.
      </message>
      <message name="IDS_FLAGS_DEBUG_SHORTCUTS_NAME" desc="Name of the 'Debugging keyboard shortcuts' lab.">
        Debugging keyboard shortcuts
      </message>
      <message name="IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME" desc="Name of the 'Ignore GPU blacklist' lab.">
        Override software rendering list
      </message>
      <message name="IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION" desc="Description of the 'Ignore GPU blacklist' lab.">
        Overrides the built-in software rendering list and enables GPU-acceleration on unsupported system configurations.
      </message>
      <message name="IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME" desc="Name of the 'Threaded compositing mode' lab.">
        Threaded compositing
      </message>
      <message name="IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION" desc="Description of the 'Threaded compositing mode' lab.">
        Uses a secondary thread to perform web page compositing. This allows smooth scrolling, even when the main thread is unresponsive.
      </message>
      <message name="IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME" desc="Name of the 'Accelerated overflow scroll mode' lab.">
        Accelerated overflow scroll
      </message>
      <message name="IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION" desc="Description of the 'Accelerated overflow scroll mode' lab.">
        When possible, puts the scrolling contents of an overflow scrolling element onto a composited layer for faster scrolling.
      </message>
      <if expr="is_win">
        <message name="IDS_FLAGS_DIRECT_WRITE_NAME" desc="Name of the 'DirectWrite' lab.">
          DirectWrite
        </message>
        <message name="IDS_FLAGS_DIRECT_WRITE_DESCRIPTION" desc="Description of the 'DirectWrite' lab.">
          Enables the use of experimental DirectWrite font rendering system.
        </message>
      </if>
      <message name="IDS_FLAGS_EXPERIMENTAL_CANVAS_FEATURES_NAME" desc="Name of the 'Enable experimental canvas features' lab.">
        Experimental canvas features
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION" desc="Description of the 'Enable experimental canvas features' lab.">
        Enables the use of experimental canvas features which are still in development.
      </message>
      <message name="IDS_FLAGS_ACCELERATED_2D_CANVAS_NAME" desc="Name of the 'Accelerated 2D canvas' lab.">
        Accelerated 2D canvas
      </message>
      <message name="IDS_FLAGS_ACCELERATED_2D_CANVAS_DESCRIPTION" desc="Description of the 'Accelerated 2D canvas' lab.">
        Enables the use of the GPU to perform 2d canvas rendering instead of using software rendering.
      </message>
      <message name="IDS_FLAGS_DISPLAY_LIST_2D_CANVAS_NAME" desc="Name of the 'Enable display list 2D canvas' lab.">
        Display list 2D canvas
      </message>
      <message name="IDS_FLAGS_DISPLAY_LIST_2D_CANVAS_DESCRIPTION" desc="Description of the 'Enable display list 2D canvas' lab.">
        Enables the use of display lists to record 2D canvas commands. This allows 2D canvas rasterization to be performed on separate thread.
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME" desc="Name of the 'Experimental Extension APIs' lab.">
        Experimental Extension APIs
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION" desc="Description of the 'Experimental Extension APIs' lab.">
        Enables experimental extension APIs. Note that the extension gallery doesn't allow you to upload extensions that use experimental APIs.
      </message>
      <message name="IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_NAME" desc="Name of the 'Extensions on chrome:// URLs' lab">
        Extensions on chrome:// URLs
      </message>
      <message name="IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_DESCRIPTION" desc="Description of the 'Extensions on chrome:// URLs' lab">
        Enables running extensions on chrome:// URLs, where extensions explicitly request this permission.
      </message>
      <message name="IDS_FLAGS_FAST_UNLOAD_NAME" desc="Name of the 'Fast Unload' lab">
        Fast tab/window close
      </message>
      <message name="IDS_FLAGS_FAST_UNLOAD_DESCRIPTION" desc="Description of the 'Fast Unload' lab.">
        Enables fast tab/window closing - runs a tab's onunload js handler independently of the GUI.
      </message>
      <message name="IDS_FLAGS_DISTILLER_IN_PRINT_PREVIEW_NAME" desc="Name of the 'enable simplify on print preview' lab">
        Simplify page on print preview
      </message>
      <message name="IDS_FLAGS_DISTILLER_IN_PRINT_PREVIEW_DESCRIPTION" desc="Description of the 'enable simplify on print preview' lab">
        Enables the simplify page check box on the print preview dialog
      </message>
      <message name="IDS_FLAGS_APP_WINDOW_CONTROLS_NAME" desc="Name of the 'Enable 'window-controls' element' lab.">
        'Window-controls' element
      </message>
      <message name="IDS_FLAGS_APP_WINDOW_CONTROLS_DESCRIPTION" desc="Description of the 'Enable 'window-controls' element' lab.">
        Enables using 'window-controls' HTML elements in packaged apps.
      </message>
      <message name="IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_NAME" desc="Name of the 'User consent for extension scripts' lab.">
        User consent for extension scripts
      </message>
      <message name="IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_DESCRIPTION" desc="Description of the 'User consent for extension scripts' lab">
        Require user consent for an extension running a script on the page, if the extension requested permission to run on all urls.
      </message>
      <message name="IDS_FLAGS_HYPERLINK_AUDITING_NAME" desc="Name of the 'Disable hyperlink auditing' lab.">
        Hyperlink auditing
      </message>
      <message name="IDS_FLAGS_HYPERLINK_AUDITING_DESCRIPTION" desc="Description of the 'Disable hyperlink auditing' lab.">
        Sends hyperlink auditing pings.
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_CONTEXTUAL_SEARCH" desc="Title for the flag to enable Contextual Search.">
          Contextual Search
        </message>
        <message name="IDS_FLAGS_CONTEXTUAL_SEARCH_DESCRIPTION" desc="Description for the flag to enable Contextual Search.">
          Whether or not Contextual Search is enabled.
        </message>
      </if>
      <message name="IDS_FLAGS_GESTURE_TAP_HIGHLIGHTING_NAME" desc="Title for the flag to turn on gesture tap highlighting">
        Gesture Tap Highlighting
      </message>
      <message name="IDS_FLAGS_GESTURE_TAP_HIGHLIGHTING_DESCRIPTION" desc="Description for the flag to turn on gesture tap highlighting">
        Enable the experimental gesture tap highlight implementation.
      </message>
      <message name="IDS_FLAGS_SMOOTH_SCROLLING_NAME" desc="Name of the smooth scrolling flag">
        Smooth Scrolling
      </message>
      <message name="IDS_FLAGS_SMOOTH_SCROLLING_DESCRIPTION" desc="Description of the smooth scrolling flag">
        Animate smoothly when scrolling page content.
      </message>
      <message name="IDS_FLAGS_OVERLAY_SCROLLBARS_NAME" desc="Title for the flag to turn on overlay scrollbars">
        Overlay Scrollbars
      </message>
      <message name="IDS_FLAGS_OVERLAY_SCROLLBARS_DESCRIPTION" desc="Description for the flag to turn on overlay scrollbars">
        Enable the experimental overlay scrollbars implementation. You must also enable threaded compositing to have the scrollbars animate.
      </message>
      <if expr="is_android">
        <message name="IDS_AUTO_LOGIN_FAILED" desc="Message to display when auto-login fails. [CHAR-LIMIT=64]">
          Automatic sign-in failed
        </message>
      </if>
      <message name="IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_NAME" desc="Title for the flag to show Autofill field type predictions for all forms">
        Show Autofill predictions
      </message>
      <message name="IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_DESCRIPTION" desc="Description for the flag to show Autofill field type predictions for all forms">
        Annotates web forms with Autofill field type predictions as placeholder text.
      </message>
      <message name="IDS_FLAGS_TCP_FAST_OPEN_NAME" desc="Name of the flag that enables TCP Fast Open.">
        TCP Fast Open
      </message>
      <message name="IDS_FLAGS_TCP_FAST_OPEN_DESCRIPTION" desc="Description of the flag that enables TCP Fast Open.">
        Enable the option to send extra authentication information in the initial SYN packet for a previously connected client, allowing faster data send start.
      </message>
      <message name="IDS_FLAGS_TOUCH_DRAG_DROP_NAME" desc="Name of the flag that enables touch initiated drag drop.">
        Touch initiated drag and drop
      </message>
      <message name="IDS_FLAGS_TOUCH_DRAG_DROP_DESCRIPTION" desc="Description of the flag to enable touch initiated drag drop.">
        Touch drag and drop can be initiated through long press on a draggable element.
      </message>
      <message name="IDS_FLAGS_TOUCH_SELECTION_STRATEGY_NAME" desc="Name of the flag that controls touch based text selection strategy.">
        Touch text selection strategy
      </message>
      <message name="IDS_FLAGS_TOUCH_SELECTION_STRATEGY_DESCRIPTION" desc="Description of the flag that controls touch based text selection strategy.">
        Controls how text selection granularity changes when touch text selection handles are dragged. Non-default behavior is experimental.
      </message>
      <message name="IDS_TOUCH_SELECTION_STRATEGY_CHARACTER" desc="Description for the touch text selection strategy which always uses character granularity.">
        Character
      </message>
      <message name="IDS_TOUCH_SELECTION_STRATEGY_DIRECTION" desc="Description for the touch text selection strategy which is based on the direction in which the handle is dragged.">
        Direction
      </message>
      <message name="IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_NAME" desc="Title for the flag to use the Online Wallet sandbox servers (instead of production).">
        Use Google Payments sandbox servers
      </message>
      <message name="IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_DESCRIPTION" desc="Description of the flag to use the Online Wallet sandbox servers.">
        For developers: use the sandbox service for Google Payments API calls.
      </message>
      <message name="IDS_FLAGS_OVERSCROLL_HISTORY_NAVIGATION_NAME" desc="Title for the flag for history navigation from horizontal overscroll.">
        Overscroll history navigation
      </message>
      <message name="IDS_FLAGS_OVERSCROLL_HISTORY_NAVIGATION_DESCRIPTION" desc="Description for the flag to disable history navigation from horizontal overscroll.">
        Experimental history navigation in response to horizontal overscroll.
      </message>
      <message name="IDS_OVERSCROLL_HISTORY_NAVIGATION_SIMPLE_UI" desc="Description for the simple UI for history navigation from horizontal overscroll.">
        Simple
      </message>
      <message name="IDS_FLAGS_SCROLL_END_EFFECT_NAME" desc="Title for the flag for scroll end effect from vertical overscroll.">
        Scroll end effect
      </message>
      <message name="IDS_FLAGS_SCROLL_END_EFFECT_DESCRIPTION" desc="Description for the flag that controls scroll end effect from vertical overscroll.">
        Experimental scroll end effect in response to vertical overscroll.
      </message>
      <message name="IDS_FLAGS_PANELS_NAME" desc="Name of the 'Enable Panels' lab.">
        Panels
      </message>
      <message name="IDS_FLAGS_PANELS_DESCRIPTION" desc="Description for the flag to enable Panel windows.">
        Allow extensions to create panel windows that open outside of the browser frame. Attempts to open a panel will open a popup instead if not enabled. Default behavior is to allow only for whitelisted extensions. Enabled behavior is to allow for all extensions. Disabled behavior is to disallow panels for any extension.
      </message>
      <message name="IDS_FLAGS_WEBGL2_NAME" desc="Name of the 'Enable WebGL 2.0' flag.">
        WebGL 2.0 Prototype
      </message>
      <message name="IDS_FLAGS_WEBGL2_DESCRIPTION" desc="Description for the flag to enable WebGL 2.0.">
        Enabling this option allows web applications to access the experimental WebGL 2.0 feature. This option should only be used for application development, and should not be used when browsing arbitrary web sites.
      </message>
      <message name="IDS_FLAGS_WEBGL_DRAFT_EXTENSIONS_NAME" desc="Name of the 'Enable WebGL Draft Extensions' flag.">
        WebGL Draft Extensions
      </message>
      <message name="IDS_FLAGS_WEBGL_DRAFT_EXTENSIONS_DESCRIPTION" desc="Description for the flag to enable WebGL Draft Extensions.">
        Enabling this option allows web applications to access the WebGL Extensions that are still in draft status.
      </message>
      <message name="IDS_FLAGS_WEBRTC_HW_DECODING_NAME" desc="Name of chrome:flags option to turn off WebRTC hardware video decoding support.">
        WebRTC hardware video decoding
      </message>
      <message name="IDS_FLAGS_WEBRTC_HW_DECODING_DESCRIPTION" desc="Description of chrome:flags option to turn off WebRTC hardware video decoding support.">
        Support in WebRTC for decoding video streams using platform hardware.
      </message>
      <message name="IDS_FLAGS_WEBRTC_HW_ENCODING_NAME" desc="Name of chrome:flags option to turn off WebRTC hardware video encoding support.">
        WebRTC hardware video encoding
      </message>
      <message name="IDS_FLAGS_WEBRTC_HW_ENCODING_DESCRIPTION" desc="Description of chrome:flags option to turn off WebRTC hardware video encoding support.">
        Support in WebRTC for encoding video streams using platform hardware.
      </message>
      <message name="IDS_FLAGS_WEBRTC_DTLS12_NAME" desc="Name of chrome:flags option to enable DTLS 1.2 for WebRTC">
        Negotiation with DTLS 1.2 for WebRTC
      </message>
      <message name="IDS_FLAGS_WEBRTC_DTLS12_DESCRIPTION" desc="Description of chrome:flags option to enable DTLS 1.2 for WebRTC">
        When enabled, WebRTC will try to negotiate DTLS 1.2.
      </message>
      <message name="IDS_FLAGS_WEBRTC_STUN_ORIGIN_NAME" desc="Name of chrome:flags option to turn on Origin header for WebRTC STUN messages">
        WebRTC Stun origin header
      </message>
      <message name="IDS_FLAGS_WEBRTC_STUN_ORIGIN_DESCRIPTION" desc="Description of chrome:flags option to turn on Origin header for WebRTC STUN messages">
        When enabled, Stun messages generated by WebRTC will contain the Origin header.
      </message>
      <message name="IDS_FLAGS_WEBVR_NAME" desc="Name of the 'Enable WebVR' flag.">
        WebVR
      </message>
      <message name="IDS_FLAGS_WEBVR_DESCRIPTION" desc="Description for the flag to enable WebVR APIs.">
        Enabling this option allows web applications to access experimental Virtual Reality APIs.
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_WEBAUDIO_NAME" desc="Name of the 'Disable WebAudio' lab.">
          WebAudio
        </message>
        <message name="IDS_FLAGS_WEBAUDIO_DESCRIPTION" desc="Description for the flag for WebAudio.">
          Allows web sites to access the WebAudio API.
        </message>
      </if>
      <message name="IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_NAME" desc="Name of the 'Compositing for fixed position elements' lab.">
        Compositing for fixed position elements.
      </message>
      <message name="IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_DESCRIPTION" desc="Description for the flag to make fixed position elements become composited layers.">
        Enabling this option will make fixed position elements have their own composited layers. Note that fixed position elements must also create stacking contexts for this to work.
      </message>
      <message name="IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_HIGH_DPI" desc="Description of the 'Compositing for fixed position elements on high DPI' experiment.">
        Enabled only for high-DPI displays
      </message>
      <message name="IDS_FLAGS_ACCELERATED_FIXED_ROOT_BACKGROUND_NAME" desc="Name of the 'Accelerated fixed root background' lab.">
        Compositing for fixed root backgrounds.
      </message>
      <message name="IDS_FLAGS_ACCELERATED_FIXED_ROOT_BACKGROUND_DESCRIPTION" desc="Description for the flag to all fixed root backgrounds to be put in separate, composited layers.">
        If this option is enabled, and if the body is styled with background-attachment:fixed, the background will have its own compositied layer.
      </message>
      <message name="IDS_FLAGS_QUIC_NAME" desc="Title for the flag to enable QUIC.">
        Experimental QUIC protocol
      </message>
      <message name="IDS_FLAGS_QUIC_DESCRIPTION" desc="Description for the flag to enable QUIC.">
        Enable experimental QUIC protocol support.
      </message>
      <message name="IDS_FLAGS_ALTSVC_NAME" desc="Title for the flag for Alternative Services.  Please do not translate &quot;Alternative Services&quot;.">
        Alternative services
      </message>
      <message name="IDS_FLAGS_ALTSVC_DESCRIPTION" desc="Description for the flag for Alternative Services.  Please do not translate &quot;Alternative Services&quot;.">
        Enable support for Alternative Services, an experimental HTTP feature.
      </message>
      <message name="IDS_FLAGS_MEDIA_SOURCE_NAME" desc="Title for the flag for the Media Source API.">
        Media Source API
      </message>
      <message name="IDS_FLAGS_MEDIA_SOURCE_DESCRIPTION" desc="Description for the flag for the Media Source API.">
        The MediaSource object allows JavaScript to send media data directly to a video element.
      </message>
      <message name="IDS_FLAGS_ENCRYPTED_MEDIA_NAME" desc="Title for the flag for the Encrypted Media Extensions APIs.">
        Encrypted Media Extensions
      </message>
      <message name="IDS_FLAGS_ENCRYPTED_MEDIA_DESCRIPTION" desc="Description for the flag for the Encrypted Media Extensions APIs.">
        Encrypted Media Extensions on video and audio elements.
      </message>
      <message name="IDS_FLAGS_PREFIXED_ENCRYPTED_MEDIA_NAME" desc="Title for the flag for the prefixed Encrypted Media Extensions APIs (e.g. webkitGenerateKeyRequest()).">
        Prefixed Encrypted Media Extensions
      </message>
      <message name="IDS_FLAGS_PREFIXED_ENCRYPTED_MEDIA_DESCRIPTION" desc="Description for the flag for the prefixed Encrypted Media Extensions APIs (e.g. webkitGenerateKeyRequest()).">
        Deprecated version of Encrypted Media Extensions on video and audio elements.
      </message>
      <message name="IDS_FLAGS_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_NAME" desc="Title for the flag for gesture requiment for media playback">
        Gesture requirement for media playback
      </message>
      <message name="IDS_FLAGS_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_DESCRIPTION" desc="Description for the flag for gesture requiment for media playback">
        User gesture requirement for playing media elements. Disabling this will allow autoplay to work.
      </message>
      <if expr="use_ash">
        <message name="IDS_FLAGS_ASH_MAXIMIZE_MODE_WINDOW_BACKDROP_NAME" desc="Title for the flag which can be used for window backdrops in TouchView.">
          Window backdrops in TouchView
        </message>
        <message name="IDS_FLAGS_ASH_MAXIMIZE_MODE_WINDOW_BACKDROP_DESCRIPTION" desc="Description for the flag which can be used for window backdrops in TouchView.">
          Show grey window backdrops used in TouchView (maximize mode) behind windows which cannot be maximized.
        </message>
        <message name="IDS_FLAGS_ASH_SCREEN_ORIENTATION_LOCK_NAME" desc="Title for the flag which can be used for support for javascript locking rotation.">
          Screen Orientation locking
        </message>
        <message name="IDS_FLAGS_ASH_SCREEN_ORIENTATION_LOCK_DESCRIPTION" desc="Description for the flag which can be used for support for javascript locking rotation">
          Allows javascript to lock the screen orienation.
        </message>
        <message name="IDS_FLAGS_ASH_STABLE_OVERVIEW_ORDER_NAME" desc="Title for the flag which enables a stable window order in overview mode.">
          Use a stable window order in overview
        </message>
        <message name="IDS_FLAGS_ASH_STABLE_OVERVIEW_ORDER_DESCRIPTION" desc="Description for the flag to enable a stable window order in overview mode.">
          Uses a stable window ordering in overview mode which attempts to minimize movement of windows when entering / exiting overview and between overview sessions.
        </message>
        <message name="IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_NAME" desc="Title for the flag which can be used to test the TouchView maximizing mode.">
          Enable TouchView maximizing UI for testing
        </message>
        <message name="IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_DESCRIPTION" desc="Description for the flag to enable the TouchView testing mode.">
          Enable Ctrl+Alt+Shift+8 to toggle the TouchView maximizing mode.
        </message>
        <message name="IDS_FLAGS_ASH_ENABLE_MIRRORED_SCREEN_NAME" desc="Title for the flag to enable the mirrored screen mode.">
          Enable mirrored screen mode.
        </message>
        <message name="IDS_FLAGS_ASH_ENABLE_MIRRORED_SCREEN_DESCRIPTION" desc="Description for the flag to enable the mirrored screen mode.">
          Enable the mirrored screen mode. This mode flips the screen image horizontally.
        </message>
        <message name="IDS_FLAGS_TOUCH_FEEDBACK_NAME" desc="Title for the flag for additional visual feedback for touch.">
          Additional touch feedback on UI components
        </message>
        <message name="IDS_FLAGS_TOUCH_FEEDBACK_DESCRIPTION" desc="Description for the flag that disables additional visual feedback for touch.">
          Certain UI components will display visual feedback upon touch interactions.
        </message>
        <message name="IDS_FLAGS_MATERIAL_DESIGN_INK_DROP_ANIMATION_FAST" desc="Description for the flag that sets material design ink drop animation speed of fast.">
          Fast
        </message>
        <message name="IDS_FLAGS_MATERIAL_DESIGN_INK_DROP_ANIMATION_SLOW" desc="Description for the flag that sets material design ink drop anation speeds of slow.">
          Slow
        </message>
        <message name="IDS_FLAGS_MATERIAL_DESIGN_INK_DROP_ANIMATION_SPEED_NAME" desc="Name for the flag that sets the material design ink drop animation speed.">
          Material Design Ink Drop Animation Speed
        </message>
        <message name="IDS_FLAGS_MATERIAL_DESIGN_INK_DROP_ANIMATION_SPEED_DESCRIPTION" desc="Description for the flag that sets the material design ink drop animtion speed.">
          Sets the speed of the experimental visual feedback animations for material design.
        </message>
        <message name="IDS_FLAGS_ASH_TEXT_FILTERING_IN_OVERVIEW_MODE_NAME" desc="Title for the flag for window filtering in overview mode by inputing text">
          Text filtering in Overview Mode
        </message>
        <message name="IDS_FLAGS_ASH_TEXT_FILTERING_IN_OVERVIEW_MODE_DESCRIPTION" desc="Description for the flag for window filtering in overview mode by inputing text">
          Allows filtering the windows shown in overview mode by entering text.
        </message>
      </if>

      <message name="IDS_FLAGS_JAVASCRIPT_HARMONY_SHIPPING_NAME" desc="Title for the flag for latest (non-experimental) JavaScript fatures">
        Latest stable JavaScript features
      </message>
      <message name="IDS_FLAGS_JAVASCRIPT_HARMONY_SHIPPING_DESCRIPTION" desc="Description for the flag for latest (non-experimental) JavaScript fatures">
        Some web pages use legacy or non-standard JavaScript extensions that may conflict with the latest JavaScript features. This flag allows disabling support of those features for compatibility with such pages.
      </message>
      <message name="IDS_FLAGS_JAVASCRIPT_HARMONY_NAME" desc="Title for the flag to enable JavaScript Harmony features.">
        Experimental JavaScript
      </message>
      <message name="IDS_FLAGS_JAVASCRIPT_HARMONY_DESCRIPTION" desc="Description for the flag to enable JavaScript Harmony features.">
        Enable web pages to use experimental JavaScript features.
      </message>
      <message name="IDS_FLAGS_DOWNLOAD_RESUMPTION_NAME" desc="Title for the flag to enable the download resume feature.">
        Download Resumption
      </message>
      <message name="IDS_FLAGS_DOWNLOAD_RESUMPTION_DESCRIPTION" desc="Description for the flag to enable the download resume feature.">
        Allow downloads that have been interrupted to be continued or restarted, using the Resume context menu item.
      </message>
      <message name="IDS_FLAGS_DOWNLOAD_NOTIFICATION_NAME" desc="Title for the flag to enable experimental download notification feature.">
        Download Status in Notification Center
      </message>
      <message name="IDS_FLAGS_DOWNLOAD_NOTIFICATION_DESCRIPTION" desc="Description for the flag to enable experimental download notification feature.">
        Download status is displayed as a notification, instead of an item in download bar.
      </message>
      <message name="IDS_FLAGS_SOFTWARE_RASTERIZER_NAME" desc="Title for the flag for using a software rasterizer.">
        3D software rasterizer
      </message>
      <message name="IDS_FLAGS_SOFTWARE_RASTERIZER_DESCRIPTION" desc="Description for the flag for using a software renderer.">
        Fall back to a 3D software rasterizer when the GPU cannot be used.
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_NAME" desc="Title for the flag to enable GPU rasterization.">
        GPU rasterization
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_DESCRIPTION" desc="Description for the flag to enable GPU rasterizer.">
        Use GPU to rasterize web content. Requires impl-side painting.
      </message>
      <message name="IDS_FLAGS_FORCE_GPU_RASTERIZATION" desc="Description of the 'Force GPU rasterization' experiment">
        Force-enabled for all layers
      </message>
      <message name="IDS_FLAGS_THREADED_GPU_RASTERIZATION_NAME" desc="Title for the flag to enable threaded GPU rasterization.">
        Threaded GPU rasterization
      </message>
      <message name="IDS_FLAGS_THREADED_GPU_RASTERIZATION_DESCRIPTION" desc="Description for the flag to enable threaded GPU rasterizer.">
        Use secondary thread for GPU rasterization of web content. Requires GPU rasterization to be enabled.
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_NAME" desc="Name of about:flags option for number of GPU rasterization MSAA samples.">
        GPU rasterization MSAA sample count.
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_DESCRIPTION" desc="Description of about:flags option for number of GPU rasterization MSAA samples.">
        Specify the number of MSAA samples for GPU rasterization.
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_ZERO" desc="">
        0
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_TWO" desc="">
        2
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_FOUR" desc="">
        4
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_EIGHT" desc="">
        8
      </message>
      <message name="IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_SIXTEEN" desc="">
        16
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_SECURITY_FEATURES_NAME" desc="Name for the flag to enable experimental security features.">
        Potentially annoying security features
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_SECURITY_FEATURES_DESCRIPTION" desc="Description for the flag to enable experimental security features.">
        Enables several security features that will likely break one or more pages that you visit on a daily basis. Strict mixed content checking, for example. And locking powerful features to secure contexts. This flag will probably annoy you.
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_NAME" desc="Name for the flag to enable experimental Web Platform features.">
        Experimental Web Platform features
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION" desc="Description for the flag to enable experimental Web Platform features.">
        Enables experimental Web Platform features that are in development.
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_FRAMEWORK_NAME" desc="Name for the flag to enable the Experimental Framework.">
        Experimental Framework.
      </message>
      <message name="IDS_FLAGS_EXPERIMENTAL_FRAMEWORK_DESCRIPTION" desc="Description for the flag to enable the Experimental Framework.">
        Enables the Experimental Framework for controlling access to API experiments.
      </message>
      <message name="IDS_FLAGS_WEB_BLUETOOTH_NAME" desc="Name for the flag to enable Web Bluetooth.">
        Web Bluetooth
      </message>
      <message name="IDS_FLAGS_WEB_BLUETOOTH_DESCRIPTION" desc="Description for the flag to enable Web Bluetooth.">
        Enables Web Bluetooth which could allow websites to connect to and control Bluetooth devices around you. Including keyboards, cameras, microphones, etc.
      </message>
      <message name="IDS_FLAGS_BLE_ADVERTISING_IN_EXTENSIONS_NAME" desc="Name for the flag for BLE Advertising">
        BLE Advertising in Chrome Apps
      </message>
      <message name="IDS_FLAGS_BLE_ADVERTISING_IN_EXTENSIONS_DESCRIPTION" desc="Description of the flag to enable BLE Advertising">
        Enables BLE Advertising in Chrome Apps. BLE Advertising might interfere with regular use of Bluetooth Low Energy features.
      </message>
      <message name="IDS_FLAGS_DEVTOOLS_EXPERIMENTS_NAME" desc="Name for the flag to enable experiments in Developer Tools">
        Developer Tools experiments
      </message>
      <message name="IDS_FLAGS_DEVTOOLS_EXPERIMENTS_DESCRIPTION" desc="Description for the flag to enable experiments in Developer Tools.">
        Enables Developer Tools experiments. Use Settings panel in Developer Tools to toggle individual experiments.
      </message>
      <message name="IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_NAME" desc="Name for the flag to enable silent debugging via chrome.debugger extension API.">
        Silent Debugging
      </message>
      <message name="IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_DESCRIPTION" desc="Description for the flag to enable silent debugging via chrome.debugger extension API.">
        Do not show the infobar when an extension attaches to a page via chrome.debugger API. This is required to debug extension background pages.
      </message>
      <message name="IDS_FLAGS_ENABLE_MULTILINGUAL_SPELLCHECKER_NAME" desc="Title for the flag to turn on multilingual spellchecker.">
        Enable Multilingual Spellchecker
      </message>
      <message name="IDS_FLAGS_ENABLE_MULTILINGUAL_SPELLCHECKER_DESCRIPTION" desc="Description for the flag to turn on multilingual spellchecker.">
        Turn on support for spellchecking in multiple languages at the same time.
      </message>
      <if expr="use_ash">
        <message name="IDS_FLAGS_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_NAME" desc="Name for the flag which allows to minimize a window upon launcher item click under certain conditions.">
          Shelf minimize-on-click
        </message>
        <message name="IDS_FLAGS_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_DESCRIPTION" desc="Description for the flag which allows to minimize a window upon launcher item click under certain conditions.">
          Allows the shelf to minimize a window if a shelf item gets clicked which has only a single, already active, window associated with it.
        </message>
      </if>

      <message name="IDS_FLAGS_SHOW_TOUCH_HUD_NAME" desc="Name for the flag to show a heads-up display for tracking touch-points.">
        Show HUD for touch points
      </message>
      <message name="IDS_FLAGS_SHOW_TOUCH_HUD_DESCRIPTION" desc="Description for the flag to show a heads-up display for tracking touch-points.">
        Enables a heads-up display at the top-left corner of the screen that lists information about the touch-points on the screen.
      </message>
      <message name="IDS_FLAGS_ALLOW_NACL_SOCKET_API_NAME" desc="Name for the NaCl Socket API feature.">
        NaCl Socket API.
      </message>
      <message name="IDS_FLAGS_ALLOW_NACL_SOCKET_API_DESCRIPTION" desc="Description for the NaCl Socket API feature.">
        Allows applications to use NaCl Socket API. Use only to test NaCl plugins.
      </message>
      <message name="IDS_FLAGS_PINCH_SCALE_NAME" desc="Name of the flag to turn on experiental pinch to scale.">
        Pinch scale
      </message>
      <message name="IDS_FLAGS_PINCH_SCALE_DESCRIPTION" desc="Description of the flag to turn on experiental pinch to scale.">
        Enables experimental support for scale using pinch.
      </message>
      <message name="IDS_FLAGS_PINCH_VIRTUAL_VIEWPORT_NAME" desc="Name of the flag to turn on experimental pinch virtual viewport.">
        Pinch virtual viewport
      </message>
      <message name="IDS_FLAGS_PINCH_VIRTUAL_VIEWPORT_DESCRIPTION" desc="Description of the flag to turn on experimental pinch virtual viewport.">
        When zoomed in, fixed-position elements and scaled scrollbars attach to this viewport.
      </message>
      <message name="IDS_FLAGS_CREDENTIAL_MANAGER_API_NAME" desc="Name for the flag to enable 'navigator.credentials'.">
        Experimental Credential Manager API
      </message>
      <message name="IDS_FLAGS_CREDENTIAL_MANAGER_API_DESCRIPTION" desc="Description for the flag to enable 'navigator.credentials'.">
        Enables an experimental implementation of the Credential Manager API. Don't enable this unless you know what you're doing.
      </message>
      <message name="IDS_FLAGS_REDUCED_REFERRER_GRANULARITY_NAME" desc="Name for the flag to reduce referer granularity.">
        Reduce default 'referer' header granularity.
      </message>
      <message name="IDS_FLAGS_REDUCED_REFERRER_GRANULARITY_DESCRIPTION" desc="Description for the flag to reduce referer granularity.">
        If a page hasn't set an explicit referrer policy, setting this flag will reduce the amount of information in the 'referer' header for cross-origin requests.
      </message>

      <if expr="chromeos">
        <message name="IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_NAME" desc="Name for the flag to enable touchpad three finger click as middle button.">
          Touchpad three-finger-click
        </message>
        <message name="IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_DESCRIPTION" desc="Description for the flag to enable touchpad three finger click as middle button.">
          Enables touchpad three-finger-click as middle button.
        </message>
        <message name="IDS_FLAGS_ASH_ENABLE_UNIFIED_DESKTOP_NAME" desc="Name for the flag to enable unified desktop mode.">
          Unified desktop mode
        </message>
        <message name="IDS_FLAGS_ASH_ENABLE_UNIFIED_DESKTOP_DESCRIPTION" desc="Description for the flag to enable unified desktop mode.">
          Enable unified desktop mode which allows a window to span multiple displays.
        </message>
        <message name="IDS_FLAGS_BOOT_ANIMATION" desc="Name for the flag for wallpaper boot animation (except for OOBE).">
          Boot animation
        </message>
        <message name="IDS_FLAGS_BOOT_ANIMATION_DESCRIPTION" desc="Description for the flag for wallpaper boot animation (except for OOBE).">
          Wallpaper boot animation (except for OOBE case).
        </message>
      </if>
      <message name="IDS_FLAGS_CHILD_ACCOUNT_DETECTION_NAME" desc="Name of the flag to enable detection of child accounts.">
        Child account detection
      </message>
      <message name="IDS_FLAGS_CHILD_ACCOUNT_DETECTION_DESCRIPTION" desc="Description for the flag to enable detection of child accounts.">
        Enable detection of child accounts on sign-in and startup, as well as periodically.
      </message>
      <message name="IDS_FLAGS_ACCELERATED_VIDEO_DECODE_NAME" desc="Name of the flag for accelerated video decode where available.">
        Hardware-accelerated video decode
      </message>
      <message name="IDS_FLAGS_ACCELERATED_VIDEO_DECODE_DESCRIPTION" desc="Description for the flag for accelerated video decode where available.">
        Hardware-accelerated video decode where available.
      </message>
      <message name="IDS_FLAGS_CLOUD_IMPORT" desc="Name for the flag for cloud import feature.">
        Cloud Import
      </message>
      <message name="IDS_FLAGS_CLOUD_IMPORT_DESCRIPTION" desc="Description for the flag for cloud import.">
        Allows the cloud-import feature.
      </message>
      <message name="IDS_FLAGS_REQUEST_TABLET_SITE_NAME" desc="Name for the flag to set to enable Request Tablet Site in the wrench menu.">
        Request tablet site option in the settings menu
      </message>
      <message name="IDS_FLAGS_REQUEST_TABLET_SITE_DESCRIPTION" desc="Description for the flag to set to enable Request Tablet Site in the wrench menu.">
        Allows the user to request tablet site. Web content is often optimized for tablet devices. When this option is selected the user agent string is changed to indicate a tablet device. Web content optimized for tablets is received there after for the current tab.
      </message>
      <message name="IDS_FLAGS_DEBUG_PACKED_APP_NAME" desc="Name of the flag to enable debugging context menu options for packed apps.">
        Debugging for packed apps
      </message>
      <message name="IDS_FLAGS_DEBUG_PACKED_APP_DESCRIPTION" desc="Description of the flag to enable debugging context menu options for packed apps.">
        Enables debugging context menu options such as Inspect Element for packed applications.
      </message>
      <message name="IDS_FLAGS_DROP_SYNC_CREDENTIAL_NAME" desc="Name of the flag to enable drop sync credential">
        Drop sync credentials from password manager
      </message>
      <message name="IDS_FLAGS_DROP_SYNC_CREDENTIAL_DESCRIPTION" desc="Description of the flag to enable drop sync credential">
        The password manager will not offer to save the credential used to sync.
      </message>
      <message name="IDS_FLAGS_PASSWORD_GENERATION_NAME" desc="Name of the flag to enable password generation.">
        Password generation
      </message>
      <message name="IDS_FLAGS_PASSWORD_GENERATION_DESCRIPTION" desc="Description of flag to enable password generation.">
        Allow the user to have Chrome generate passwords when it detects account creation pages.
      </message>
      <message name="IDS_FLAGS_AUTOMATIC_PASSWORD_SAVING_NAME" desc="Name of the flag to automatically save password.">
        Save passwords automatically
      </message>
      <message name="IDS_FLAGS_AUTOMATIC_PASSWORD_SAVING_DESCRIPTION" desc="Description of the flag to automatically save password.">
        Skip the passwords prompt and save passwords automatically.
      </message>
      <message name="IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_NAME" desc="Name of the flag for the password manager reauthentication option.">
        Password Manager Reauthentication
      </message>
      <message name="IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_DESCRIPTION" desc="Description of the flag for the password manager reauthentication option.">
        Disable prompting the user for their OS password before revealing passwords on the passwords page.
      </message>
      <message name="IDS_FLAGS_PASSWORD_CHANGE_SUPPORT_NAME" desc="Name of the flag for the password manager's password change support option.">
        Change password support
      </message>
      <message name="IDS_FLAGS_PASSWORD_CHANGE_SUPPORT_DESCRIPTION" desc="Description of the flag for the password manager's change password support option.">
        Enable updating a password in the password manager after submitting a "change password" form.
      </message>
      <message name="IDS_FLAGS_PASSWORD_FORCE_SAVING_NAME" desc="Name of the flag for the password manager's force-saving option.">
        Force-saving of passwords
      </message>
      <message name="IDS_FLAGS_PASSWORD_FORCE_SAVING_DESCRIPTION" desc="Description of the flag for the password manager's force-saving option.">
        Allow the user to manually enforce password saving instead of relying on password manager's heuristics.
      </message>
      <message name="IDS_FLAGS_PASSWORD_MANAGER_LINK_NAME" desc="Name of the flag to enable showing a link to account central on password settings page">
        Remote password management link
      </message>
      <message name="IDS_FLAGS_PASSWORD_MANAGER_LINK_DESCRIPTION" desc="Description of the flag to enable showing a link to account central on password settings page">
        Show a link in the password manager settings page to manage your synced passwords online.
      </message>
      <message name="IDS_PASSWORD_MANAGER_ACCOUNT_CHOOSER_TITLE" desc="The title of the account chooser bubble/infobar.">
        Choose your account from <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Chrome</ex></ph> to sign in
      </message>
      <message name="IDS_PASSWORD_MANAGER_SAVE_PROMPT_FIRST_RUN_EXPERIENCE" desc="The message which explains to the user what is Smart Lock, when the user sees the branded title of the Save prompt for the first time.">
        Smart Lock helps you quickly sign in to apps and sites using passwords you have saved with Google.
      </message>
      <message name="IDS_SAVE_PASSWORD" desc="The title of the save password bubble when a password can be saved.">
        Do you want <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Chrome</ex></ph> to save your password for this site?
      </message>
      <message name="IDS_SAVE_ACCOUNT" desc="The title of the save password bubble when a federated credential can be saved.">
        Do you want <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Chrome</ex></ph> to save your account for this site?
      </message>
      <message name="IDS_UPDATE_PASSWORD" desc="The title of the save password bubble when a password can be updated.">
        Do you want <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Chrome</ex></ph> to update your password for this site?
      </message>
      <message name="IDS_PASSWORD_MANAGER_SMART_LOCK_FOR_PASSWORDS" desc="The more descriptive brand name of the password manager when the user is signed in. Used in various UI elements, can be in link format.">
        Google Smart Lock for Passwords
      </message>
      <message name="IDS_PASSWORD_MANAGER_SMART_LOCK_WELCOME" desc="A warm welcome message displayed once in the Save password bubble for users which are signed-in to Chrome.">
        Smart Lock helps you quickly sign in to apps and sites using passwords you have saved with Google.
      </message>
      <message name="IDS_FLAGS_SUGGESTIONS_WITH_SUB_STRING_MATCH_NAME" desc="Name of the flag for substring matching for Autofill suggestions.">
        Substring matching for Autofill suggestions
      </message>
      <message name="IDS_FLAGS_SUGGESTIONS_WITH_SUB_STRING_MATCH_DESCRIPTION" desc="Description of the flag for substring matching for Autofill suggestions.">
        Match Autofill suggestions based on substrings (token prefixes) rather than just prefixes.
      </message>
      <message name="IDS_FLAGS_AFFILIATION_BASED_MATCHING_NAME" desc="Name of the flag to enable affiliation based matching, so that credentials stored for an Android application will also be considered matches for, and be filled into corresponding websites (so-called 'affiliated' websites).">
        Affiliation based matching in password manager
      </message>
      <message name="IDS_FLAGS_AFFILIATION_BASED_MATCHING_DESCRIPTION" desc="Description of the flag to enable affiliation based matching, so that credentials stored for an Android application will also be considered matches for, and be filled into corresponding websites (so-called 'affiliated' websites).">
        Allow credentials stored for Android applications to be filled into corresponding websites.
      </message>
      <message name="IDS_FLAGS_AUTOFILL_SYNC_CREDENTIAL_NAME" desc="Name of the flag specifying how the browser will handle autofilling the users sync credential.">
        Autofill sync credential
      </message>
      <message name="IDS_FLAGS_AUTOFILL_SYNC_CREDENTIAL_DESCRIPTION" desc="Description of the flag specifying how the browser will handle autofilling the users sync credential.">
        How the password manager handles autofill for the sync credential.
      </message>
      <message name="IDS_FLAGS_ICON_NTP_NAME" desc="Name of the flag to enable large icons on the NTP.">
        Large icons on the New Tab page
      </message>
      <message name="IDS_FLAGS_ICON_NTP_DESCRIPTION" desc="Description for the flag to enable large icons on the NTP.">
        Enable the experimental New Tab page using large icons.
      </message>
      <message name="IDS_FLAGS_PUSH_API_BACKGROUND_MODE_NAME" desc="Name of the flag to enable background mode for the Push API.">
        Enable Push API background mode
      </message>
      <message name="IDS_FLAGS_PUSH_API_BACKGROUND_MODE_DESCRIPTION" desc="Description for the flag to enable background mode for the Push API.">
        Enable background mode for the Push API. This allows Chrome to continue running after the last window is closed, and to launch at OS startup, if the Push API needs it.
      </message>
      <if expr="not is_ios">
        <message name="IDS_FLAGS_ENABLE_STALE_WHILE_REVALIDATE_NAME" desc="Name of the flag to enable the &quot;stale-while-revalidate&quot; cache directive. This message is intended for web developers who are familiar with technical terms. &quot;stale-while-revalidate&quot; here is the literal string sent by the HTTP server, and so should be untranslated where possible. &quot;cache&quot; here refers to an HTTP cache. &quot;directive&quot; here is an instruction sent by an HTTP server to indicate what caching behaviour should be used.">
          Enable the "stale-while-revalidate" cache directive
        </message>
        <message name="IDS_FLAGS_ENABLE_STALE_WHILE_REVALIDATE_DESCRIPTION" desc="Description of the flag to enable the &quot;stale-while-revalidate&quot; cache directive. This message is intended for web developers who are familiar with technical terms. &quot;Cache-Control: stale-while-revalidate&quot; is the literal string sent by the HTTP server, and so should be untranslated where possible. If necessary for translation it can be split into the HTTP header name part &quot;Cache-Control&quot; and the value part &quot;stale-while-revalidate&quot;. &quot;directive&quot; here is an instruction sent by an HTTP server to indicate what caching behaviour should be used. The directive is typically configured by the server administrator. &quot;servers&quot; here refers to HTTP server software. &quot;resources&quot; here means individual files served by HTTP servers and cached by the browser. &quot;be revalidated&quot; means &quot;be checked with the HTTP server whether or not the browser has the latest version&quot;. &quot;in the background&quot; here means without making the user wait. &quot;latency&quot; here refers to the time the user waits for a web page to be loaded or become usable.">
          Enable the experimental implementation of the "Cache-Control: stale-while-revalidate" directive. This permits servers to specify that some resources may be revalidated in the background to improve latency. 
        </message>
      </if>
      <message name="IDS_FLAGS_ENABLE_NAVIGATION_TRACING" desc="Name of the flag to enable navigation tracing">
        Enable navigation tracing
      </message>
      <message name="IDS_FLAGS_ENABLE_NAVIGATION_TRACING_DESCRIPTION" desc="Description of the flag to enable navigation tracing">
        This is to be used in conjunction with the trace-upload-url flag.
        WARNING: When enabled, Chrome will record performance data for every navigation and upload it to the URL specified by the trace-upload-url flag. The trace may include personally identifiable information (PII) such as the titles and URLs of websites you visit.
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_ENABLE_NON_VALIDATING_RELOAD_ON_REFRESH_CONTENT_NAME" desc="Name of the flag to enable non-validating reload on pull-to-refresh">
          Enable non-validating reload on pull-to-refresh
        </message>
        <message name="IDS_FLAGS_ENABLE_NON_VALIDATING_RELOAD_ON_REFRESH_CONTENT_DESCRIPTION" desc="Description of the flag to enable non-validating reload on pull-to-refresh">
          Forces pull-to-refresh trigger non-validating reload (while it usually means regular, cache-validating reload when the flag is disabled).
        </message>
      </if>
      <message name="IDS_FLAGS_TRACE_UPLOAD_URL" desc="Name of the flag to set the trace upload url">
        Trace label for navigation tracing
      </message>
      <message name="IDS_FLAGS_TRACE_UPLOAD_URL_DESCRIPTION" desc="Description of the flag to set the trace upload url">
        This is to be used in conjunction with the enable-navigation-tracing flag.
        Please select the label that best describes the recorded traces. This will choose the destination the traces are uploaded to. If you are not sure, select other. If left empty, no traces will be uploaded.
      </message>
      <message name="IDS_TRACE_UPLOAD_URL_CHOICE_OTHER">
        Other
      </message>
      <message name="IDS_TRACE_UPLOAD_URL_CHOICE_EMLOADING">
        emloading
      </message>
      <message name="IDS_TRACE_UPLOAD_URL_CHOICE_QA">
        QA
      </message>
      <message name="IDS_TRACE_UPLOAD_URL_CHOICE_TESTING">
        Testing
      </message>
      <message name="IDS_FLAGS_STALE_WHILE_REVALIDATE_DESCRIPTION" desc="Description for the flag to enable the stale-while-revalidate cache directive.">
        Enable the experimental implementation of the Cache-Control: stale-while-revalidate directive. This permits servers to specify that some resources may be revalidated in the background to improve latency.
      </message>
      <message name="IDS_FLAGS_SUPERVISED_USER_MANAGED_BOOKMARKS_FOLDER_NAME" desc="Name of the flag to enable the managed bookmarks folder for supervised users.">
        Managed bookmarks for supervised users
      </message>
      <message name="IDS_FLAGS_SUPERVISED_USER_MANAGED_BOOKMARKS_FOLDER_DESCRIPTION" desc="Description for the flag to enable the managed bookmarks folder for supervised users.">
        Enable the managed bookmarks folder for supervised users.
      </message>
      <message name="IDS_FLAGS_SYNC_APP_LIST_NAME" desc="Name of the flag to enable syncing the app list.">
        App Launcher sync
      </message>
      <message name="IDS_FLAGS_SYNC_APP_LIST_DESCRIPTION" desc="Description for the flag to enable syncing the app list.">
        Enable App Launcher sync. This also enables Folders where available (non OSX).
      </message>
      <message name="IDS_FLAGS_DRIVE_SEARCH_IN_CHROME_LAUNCHER" desc="Name of the flag for drive search in chrome launcher.">
        Drive Search in Chrome App Launcher
      </message>
      <message name="IDS_FLAGS_DRIVE_SEARCH_IN_CHROME_LAUNCHER_DESCRIPTION" desc="Description for the flag for drive search in chrome launcher.">
        Files from Drive will show up when searching the Chrome App Launcher.
      </message>
      <if expr="is_macosx">
        <message name="IDS_FLAGS_AVFOUNDATION_NAME" desc="Name of the flag to enable Mac AVFoundation.">
          Use of Mac OS X AVFoundation APIs, instead of QTKit
        </message>
        <message name="IDS_FLAGS_AVFOUNDATION_DESCRIPTION" desc="Description of flag to enable Mac AVFoundation.">
          Enable AVFoundation use for video capture and video device monitoring on OS X >= 10.7. QTKit will be used otherwise.
        </message>
      </if>
      <message name="IDS_FLAGS_DISABLE_DELAY_AGNOSTIC_AEC_NAME" desc="Name of the flag for DA-AEC in WebRTC.">
        Disable delay Agnostic AEC in WebRTC
      </message>
      <message name="IDS_FLAGS_DISABLE_DELAY_AGNOSTIC_AEC_DESCRIPTION" desc="Description for the flag for DA-AEC in WebRTC.">
        Disable Delay Agnostic AEC in WebRTC. Use if reported system delays are very trusted, or if others experience echo from your machine.
      </message>
      <message name="IDS_FLAGS_ENABLE_DELAY_AGNOSTIC_AEC_NAME" desc="Name of the flag to enable DA-AEC in WebRTC.">
        Enable Delay Agnostic AEC in WebRTC.
      </message>
      <message name="IDS_FLAGS_ENABLE_DELAY_AGNOSTIC_AEC_DESCRIPTION" desc="Description for the flag to enable DA-AEC in WebRTC.">
        Enable Delay Agnostic AEC in WebRTC. Use if reported system delays are untrusted. Specifically applies to Mac OS X and CrOS, but also if audio is routed through a different device like TV. enable-delay-agnostic-aec overrides disable-delay-agnostic-aec.
      </message>
      <message name="IDS_FLAGS_V8_PAC_MOJO_OUT_OF_PROCESS_NAME" desc="Name of the flag to enable out-of-process V8 proxy resolver.">
        Out-of-process V8 Proxy Resolver.
      </message>
      <message name="IDS_FLAGS_V8_PAC_MOJO_OUT_OF_PROCESS_DESCRIPTION" desc="Description for the flag to enable out-of-process V8 proxy resolver.">
        Enable Out-of-process V8 Proxy Resolver. Runs the V8 proxy resolver in a utility process instead of inside the browser process.
      </message>
      <message name="IDS_FLAGS_V8_CACHE_OPTIONS_NAME" desc="Name of the about::flags setting for V8 cache options. The V8 JavaScript engine supports three caching modes: disabled; parser; code. This is the option to choose among them.">
        V8 caching mode.
      </message>
      <message name="IDS_FLAGS_V8_CACHE_OPTIONS_DESCRIPTION" desc="Description of the about::flags setting for V8 cache options. The V8 JavaScript engine supports three caching modes: disabled; parser; code.">
        Caching mode for the V8 JavaScript engine.
      </message>
      <message name="IDS_FLAGS_V8_CACHE_OPTIONS_PARSE" desc="The V8 JavaScript engine supports three 'caching' modes: disabled; caching data generated by the JavaScript parser; or caching data generated by the JavaScript compiler. This option describes the 2nd of these, caching data generated by the parser.">
        Cache V8 parser data.
      </message>
      <message name="IDS_FLAGS_V8_CACHE_OPTIONS_CODE" desc="The V8 JavaScript engine supports three 'caching' modes: disabled; caching data generated by the JavaScript parser; or caching data generated by the JavaScript compiler. This option describes the 3rd of these, caching data generated by the compiler.">
        Cache V8 compiler data.
      </message>

      <!-- Data Reduction Proxy -->
      <if expr="is_android">
        <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_DEV_NAME" desc="An about::flags experiment title to enable/disable the development version of the data reduction proxy" translateable="false">
          Experiment Data Reduction Proxy
        </message>
        <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_DEV_DESCRIPTION" desc="Describes an about:flags experiment to enable/disable the development version of the data reduction proxy" translateable="false">
         Enable or disable using the development version of the data reduction proxy.
        </message>
        <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_BYPASS_WARNING_NAME" desc="Name of the flag to enable using data reduction proxy warnings" translateable="false">
          Data Saver proxy bypass warnings
        </message>
        <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_BYPASS_WARNING_DESCRIPTION" desc="Description of the flag to enable using data reduction proxy warnings" translateable="false">
          Use Data Saver with bypass warnings. The proxy must be enabled in settings for this flag to take effect.
        </message>
      </if>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_NAME" desc="An about::flags experiment title to enable/disable Data Saver Lo-Fi" translateable="false">
         Data Saver Lo-Fi mode
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_DESCRIPTION" desc="Describes an about::flags experiment to enable/disable Data Saver Lo-Fi" translateable="false">
         Forces Data Saver Lo-Fi mode to be always enabled, enabled only on cellular connections, or disabled. Data Saver must be enabled for Lo-Fi mode to be used.
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_ALWAYS_ON" desc="Option for IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_NAME to enable Lo-Fi always on" translateable="false">
         Always on
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_CELLULAR_ONLY" desc="Option for IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_NAME to enable Lo-Fi only on celluar connections" translateable="false">
         Cellular only
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_DISABLED" desc="Option for IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_NAME to disable Lo-Fi" translateable="false">
         Disable
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_SLOW_CONNECTIONS_ONLY" desc="Option for IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_LO_FI_NAME to enable Lo-Fi only on slow connections" translateable="false">
         Slow connections only
      </message>
      <message name="IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_LO_FI_PREVIEW_NAME" desc="An about::flags experiment title to enable previews Data Saver Lo-Fi" translateable="false">
         Previews for Data Saver Lo-Fi mode
      </message>
      <message name="IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_LO_FI_PREVIEW_DESCRIPTION" desc="Describes an about::flags experiment to enable previews for Data Saver Lo-Fi" translateable="false">
         Enable previews in Data Saver Lo-Fi mode. Previews of pages will be shown instead of placeholders when Lo-Fi is on. Data Saver and Lo-Fi must be enabled for previews to be shown.
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_RESET_SAVINGS_NAME" desc="Title in about::flags to clear data savings obtained with data reduction proxy when Chrome restarts" translateable="false">
         Clear data savings on startup
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_RESET_SAVINGS_DESCRIPTION" desc="Description in about::flags to clear data savings obtained with data reduction proxy when Chrome restarts" translateable="false">
         Clears data savings obtained by using data reduction proxy when chrome starts.
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_CARRIER_TEST_NAME" desc="An about::flags experiment title to enable using the carrier test data reduction proxy" translateable="false">
        Enable a carrier-specific Data Reduction Proxy for testing.
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_CARRIER_TEST_DESCRIPTION" desc="Describes an about:flags experiment to enable using the carrier test data reduction proxy" translateable="false">
        Use a carrier-specific Data Reduction Proxy for testing.
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_CONFIG_CLIENT_NAME" desc="Title in about::flags to use the Data Reduction Proxy configuration service" translateable="false">
         Enable Data Reduction Proxy configuration service client.
      </message>
      <message name="IDS_FLAGS_DATA_REDUCTION_PROXY_CONFIG_CLIENT_DESCRIPTION" desc="Description in about::flags to use the Data Reduction Proxy configuration service" translateable="false">
         Uses the Data Reduction Proxy configuration service for authentication and proxy configuration.
      </message>
      <message name="IDS_FLAGS_LCD_TEXT_NAME" desc="Name of about:flags option for LCD text.">
        LCD text antialiasing
      </message>
      <message name="IDS_FLAGS_LCD_TEXT_DESCRIPTION" desc="Description of about:flags option for LCD text.">
        If disabled, text is rendered with grayscale antialiasing instead of LCD (subpixel) when doing accelerated compositing.
      </message>
      <message name="IDS_FLAGS_DISTANCE_FIELD_TEXT_NAME" desc="Name of about:flags option for distance field text.">
        Distance field text
      </message>
      <message name="IDS_FLAGS_DISTANCE_FIELD_TEXT_DESCRIPTION" desc="Description of about:flags option for distance field text.">
        Text is rendered with signed distance fields rather than bitmap alpha masks.
      </message>
      <message name="IDS_FLAGS_ZERO_COPY_NAME" desc="Name of about:flags option for zero-copy rasterizer.">
        Zero-copy rasterizer
      </message>
      <message name="IDS_FLAGS_ZERO_COPY_DESCRIPTION" desc="Description of about:flags option for zero-copy rasterizer.">
        Raster threads write directly to GPU memory associated with tiles.
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_UPSCALE_QUALITY_NAME" desc="">
        Tab capture upscaling quality.
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_UPSCALE_QUALITY_DESCRIPTION" desc="">
        Specifies quality setting for images captured if scaling up.
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_DOWNSCALE_QUALITY_NAME" desc="">
        Tab capture downscaling quality.
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_DOWNSCALE_QUALITY_DESCRIPTION" desc="">
        Specifies quality setting for images captured if scaling down.
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST" desc="">
        fast
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD" desc="">
        good
      </message>
      <message name="IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST" desc="">
        best
      </message>
      <message name="IDS_FLAGS_HIDE_INACTIVE_STACKED_TAB_CLOSE_BUTTONS_NAME" desc="">
        Hiding close buttons on inactive tabs when stacked
      </message>
      <message name="IDS_FLAGS_HIDE_INACTIVE_STACKED_TAB_CLOSE_BUTTONS_DESCRIPTION" desc="">
        Hides the close buttons of inactive tabs when the tabstrip is in stacked mode.
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_WIDTH_NAME" desc="Name of about:flags option for default tile width.">
        Default tile width
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_WIDTH_DESCRIPTION" desc="Description of about:flags option for default tile width.">
        Specify the default tile width.
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_WIDTH_SHORT" desc="">
        128
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_WIDTH_TALL" desc="">
        256
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_WIDTH_GRANDE" desc="">
        512
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_WIDTH_VENTI" desc="">
        1024
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_HEIGHT_NAME" desc="Name of about:flags option for default tile height.">
        Default tile height
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_HEIGHT_DESCRIPTION" desc="Description of about:flags option for default tile height.">
        Specify the default tile height.
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_HEIGHT_SHORT" desc="">
        128
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_HEIGHT_TALL" desc="">
        256
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_HEIGHT_GRANDE" desc="">
        512
      </message>
      <message name="IDS_FLAGS_DEFAULT_TILE_HEIGHT_VENTI" desc="">
        1024
      </message>
      <message name="IDS_FLAGS_NUM_RASTER_THREADS_NAME" desc="Name of about:flags option for number of raster threads.">
        Number of raster threads
      </message>
      <message name="IDS_FLAGS_NUM_RASTER_THREADS_DESCRIPTION" desc="Description of about:flags option for number of raster threads.">
        Specify the number of raster threads.
      </message>
      <message name="IDS_FLAGS_NUM_RASTER_THREADS_ONE" desc="">
        1
      </message>
      <message name="IDS_FLAGS_NUM_RASTER_THREADS_TWO" desc="">
        2
      </message>
      <message name="IDS_FLAGS_NUM_RASTER_THREADS_THREE" desc="">
        3
      </message>
      <message name="IDS_FLAGS_NUM_RASTER_THREADS_FOUR" desc="">
        4
      </message>
      <message name="IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_NAME" desc="Name of the flag to reset the app launcher install state.">
        Reset the App Launcher install state on every restart.
      </message>
      <message name="IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_DESCRIPTION" desc="Description of the flag to reset the app launcher install state.">
        Reset the App Launcher install state on every restart. While this flag is set, Chrome will forget the launcher has been installed each time it starts. This is used for testing the App Launcher install flow.
      </message>
      <if expr="enable_app_list">
        <message name="IDS_FLAGS_EXPERIMENTAL_APP_LIST_NAME" desc="Name of the flag to enable the experimental app launcher.">
          Experimental App Launcher
        </message>
        <message name="IDS_FLAGS_EXPERIMENTAL_APP_LIST_DESCRIPTION" desc="Description of the flag to enable the experimental app launcher.">
          Enable the experimental version of the App Launcher.
        </message>
        <message name="IDS_FLAGS_CENTERED_APP_LIST_NAME" desc="Name of the flag to center the app launcher.">
          Center the App Launcher.
        </message>
        <message name="IDS_FLAGS_CENTERED_APP_LIST_DESCRIPTION" desc="Description of the flag to center the app launcher and make it wide instead of tall.">
          Positions the App Launcher in the center of the screen with a landscape aspect.
        </message>
        <message name="IDS_FLAGS_NEW_APP_LIST_MIXER_NAME" desc="Name of the flag to enable the new mixing algorithm in the app launcher.">
          New App Launcher mixer algorithm
        </message>
        <message name="IDS_FLAGS_NEW_APP_LIST_MIXER_DESCRIPTION" desc="Description of the flag to enable the new mixing algorithm in the app launcher.">
          This enables a new search result selecting and ranking algorithm in the App Launcher.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_FLAGS_FIRST_RUN_UI_TRANSITIONS_NAME" desc="Name of the flag to enable animated transitions for the first-run tutorial.">
          Animated transitions in the first-run tutorial
        </message>
        <message name="IDS_FLAGS_FIRST_RUN_UI_TRANSITIONS_DESCRIPTION" desc="Description for the flag to enable animated transition in the first-run tutorial.">
          Transitions during first-run tutorial are animated.
        </message>
      </if>
      <message name="IDS_FLAGS_NEW_BOOKMARK_APPS_NAME" desc="Name of the flag to enable the new bookmark app system.">
        The new bookmark app system
      </message>
      <message name="IDS_FLAGS_NEW_BOOKMARK_APPS_DESCRIPTION" desc="Description for the flag to enable the new bookmark app system.">
        Enables the new system for creating bookmark apps.
      </message>
      <if expr="is_macosx">
        <message name="IDS_FLAGS_HOSTED_APPS_IN_WINDOWS_NAME" desc="Name of the flag to allow hosted apps opening in windows.">
          Allow hosted apps to be opened in windows
        </message>
        <message name="IDS_FLAGS_HOSTED_APPS_IN_WINDOWS_DESCRIPTION" desc="Description for the flag to allow hosted apps opening in windows">
          Allows hosted apps to be opened in windows instead of being limited to tabs.
        </message>
      </if>
      <message name="IDS_FLAGS_HOSTED_APP_SHIM_CREATION_NAME" desc="Name of the flag to enable creation of app shims for hosted apps on Mac.">
        Creation of app shims for hosted apps on Mac
      </message>
      <message name="IDS_FLAGS_HOSTED_APP_SHIM_CREATION_DESCRIPTION" desc="Description for the flag to enable creation of app shims for hosted apps on Mac.">
        Create app shims on Mac when creating a hosted app.
      </message>
      <message name="IDS_FLAGS_HOSTED_APP_QUIT_NOTIFICATION_NAME" desc="Name of the flag to enable a notification when quitting with hosted apps.">
        Quit notification for hosted apps
      </message>
      <message name="IDS_FLAGS_HOSTED_APP_QUIT_NOTIFICATION_DESCRIPTION" desc="Description for the flag to enable a notification when quitting with hosted apps.">
        Display a notification when quitting Chrome if hosted apps are currently running.
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_PULL_TO_REFRESH_EFFECT_NAME" desc="Name of the flag for the pull-to-refresh effect.">
          The pull-to-refresh effect
        </message>
        <message name="IDS_FLAGS_PULL_TO_REFRESH_EFFECT_DESCRIPTION" desc="Description of the flag for the pull-to-refresh effect.">
          Page reloads triggered by vertically overscrolling content.
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_FLAGS_TRANSLATE_NEW_UX_NAME" desc="Name of the flag to enable the new Translate UX.">
          New Translate UX
        </message>
        <message name="IDS_FLAGS_TRANSLATE_NEW_UX_DESCRIPTION" desc="Description for the flag to enable the new Translate UX.">
          Enable the new Translate bubble UX is offered instead of the infobar.
        </message>
      </if>
      <message name="IDS_FLAGS_VIEWS_RECT_BASED_TARGETING_NAME" desc="Name of about:flags option for rect-based targeting in views">
        Rect-based targeting in views
      </message>
      <message name="IDS_FLAGS_VIEWS_RECT_BASED_TARGETING_DESCRIPTION" desc="Description of about:flags option for rect-based targeting in views">
        Rect-based targeting uses a heuristic to determine the most probable target of a gesture, where the touch region is represented by a rectangle.
      </message>
      <message name="IDS_FLAGS_APPS_SHOW_ON_FIRST_PAINT_NAME" desc="Name of the flag to enable show-on-first-paint for apps.">
        Show-on-first-paint for apps
      </message>
      <message name="IDS_FLAGS_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION" desc="Description of flag to enable show-on-first-paint for apps.">
        Show apps windows after the first paint. Windows will be shown significantly later for heavy apps loading resources synchronously but it will be insignificant for apps that load most of their resources asynchronously.
      </message>
      <message name="IDS_FLAGS_PERMISSIONS_BLACKLIST_NAME" desc="Title for the flag to enable the permissions blacklist.">
        Permissions Blacklist
      </message>
      <message name="IDS_FLAGS_PERMISSIONS_BLACKLIST_DESCRIPTION" desc="Description for the flag to enable the permissions blacklist.">
        Enables the Permissions Blacklist, which blocks permissions for blacklisted sites for Safe Browsing users.
      </message>
      <message name="IDS_FLAGS_SITE_ENGAGEMENT_SERVICE_NAME" desc="Title for the flag to enable the site engagement service.">
        Site Engagement Service
      </message>
      <message name="IDS_FLAGS_SITE_ENGAGEMENT_SERVICE_DESCRIPTION" desc="Description for the flag to enable the site engagement service.">
        Enables the Site Engagement Service, which records interaction with sites and allocates resources accordingly.
      </message>
      <message name="IDS_FLAGS_THREADED_SCROLLING_NAME" desc="Title for the flag for threaded scrolling.">
        Threaded scrolling
      </message>
      <message name="IDS_FLAGS_THREADED_SCROLLING_DESCRIPTION" desc="Description for the flag for threaded scrolling.">
        Threaded handling of scroll-related input events. Disabling this will force all such scroll events to be handled on the main thread. Note that this can dramatically hurt scrolling performance of most websites and is intended for testing purposes only.
      </message>
      <message name="IDS_FLAGS_BLEEDING_RENDERER_NAME" desc="Name of the 'Stacked Tabs' lab.">
        Bleeding Edge Renderer Paths - LIKELY TO CRASH YOUR BROWSER
      </message>
      <message name="IDS_FLAGS_BLEEDING_RENDERER_DESCRIPTION" desc="Description of the 'Bleeding edge' lab.">
        Use bleeding-edge code to make Chrome draw content faster. The changes
        behind this path are very likely to break lots of content.
      </message>
      <message name="IDS_FLAGS_APPS_FILE_ASSOCIATIONS_NAME" desc="Name for file associations for Chrome Apps.">
        Apps file associations
      </message>
      <message name="IDS_FLAGS_APPS_FILE_ASSOCIATIONS_DESCRIPTION" desc="Description for a flag to enable file associations for Chrome Apps.">
        Enable OS integration of file associations for Chrome Apps.
      </message>
      <message name="IDS_FLAGS_HARFBUZZ_RENDERTEXT_NAME" desc="Name of the about:flags HarfBuzz RenderText experiment.">
        HarfBuzz for UI text
      </message>
      <message name="IDS_FLAGS_HARFBUZZ_RENDERTEXT_DESCRIPTION" desc="Description of the about:flags HarfBuzz RenderText experiment.">
        Enable cross-platform HarfBuzz layout engine for UI text. Doesn't affect web content.
      </message>
      <message name="IDS_FLAGS_EMBEDDED_EXTENSION_OPTIONS_NAME" desc="Name of the flag that enables embedding extension options in chrome://extensions.">
        Embedded extension options
      </message>
      <message name="IDS_FLAGS_EMBEDDED_EXTENSION_OPTIONS_DESCRIPTION" desc="Description of the flag that enables embedding extension options in chrome://extensions.">
        Display extension options as an embedded element in chrome://extensions rather than opening a new tab.
      </message>
      <message name="IDS_FLAGS_EXTENSION_ACTION_REDESIGN_NAME" desc="Name of the flag to enable the extension toolbar redesign">
        Extension toolbar redesign
      </message>
      <message name="IDS_FLAGS_EXTENSION_ACTION_REDESIGN_DESCRIPTION" desc="Description for the flag to enable the extension toolbar redesign">
        Enables the (in development) new extension toolbar toolbar design.
      </message>
      <if expr="use_ash">
        <message name="IDS_FLAGS_WEB_APP_FRAME_NAME" desc="Name of the flag that enables the web app style frame for hosted apps.">
          Enables the web app style frame for hosted apps
        </message>
      </if>
      <message name="IDS_FLAGS_WEB_APP_FRAME_DESCRIPTION" desc="Description of the flag that enables the web app style frame for hosted apps.">
        Enables the web app style frame for hosted apps, including bookmark apps. This is currently only available for Ash.
      </message>
      <message name="IDS_FLAGS_TAB_AUDIO_MUTING_NAME" desc="Name of the flag that enables the tab audio muting UI experiment in chrome://extensions.">
        Tab audio muting UI control
      </message>
      <message name="IDS_FLAGS_TAB_AUDIO_MUTING_DESCRIPTION" desc="Description of the flag that enables the tab audio muting UI experiment in chrome://extensions.">
        When enabled, the audio indicators in the tab strip double as tab audio mute controls.  This also adds commands in the tab context menu for quickly muting multiple selected tabs.
      </message>
      <message name="IDS_FLAGS_EASY_UNLOCK_BLUETOOTH_LOW_ENERGY_DISCOVERY_NAME" desc="Title for the flag to enable Smart Lock to discover phones over Bluetooth Low Energy in order to unlock the Chromebook.">
        Smart Lock Bluetooth Low Energy Discovery
      </message>
      <message name="IDS_FLAGS_EASY_UNLOCK_BLUETOOTH_LOW_ENERGY_DISCOVERY_DESCRIPTION" desc="Description for the flag for Smart Lock to discover phones over Bluetooth Low Energy in order to unlock the Chromebook.">
        Enables a Smart Lock setting that allows Chromebook to discover phones over Bluetooth Low Energy in order to unlock the Chromebook when the phone is in its proximity.
      </message>
      <message name="IDS_FLAGS_EASY_UNLOCK_PROXIMITY_DETECTION_NAME" desc="Title for the flag to enable Smart Lock to require close proximity between the phone and the Chromebook in order to unlock the Chromebook.">
        Smart Lock proximity detection
      </message>
      <message name="IDS_FLAGS_EASY_UNLOCK_PROXIMITY_DETECTION_DESCRIPTION" desc="Description for the flag that enables Smart Lock to require close proximity between the phone and the Chromebook in order to unlock the Chromebook.">
        Enables a Smart Lock setting that restricts unlocking to only work when your phone is very close to (roughly, within an arm's length of) the Chrome device.
      </message>
      <if expr="toolkit_views">
        <message name="IDS_FLAGS_LINK_DISAMBIGUATION_POPUP_NAME" desc="Title for the flag to enable the Link Disambiguation Popup, a bubble that appears over the web content screen when the user uses a touchscreen to touch a link but accidentally touches more than one link in a single gesture. The bubble appears with a zoomed-in view of the area around their touch, allowing them to more easily select the element they wanted.">
          Link Disambiguation Popup
        </message>
        <message name="IDS_FLAGS_LINK_DISAMBIGUATION_POPUP_DESCRIPTION" desc="Description for the flag to enable the Link Disambiguation Popup, a feature on touchscreens that when enabled will cause a small zoomed popup to appear over a group of links the user has touched, allowing for selection of links on pages not yet optimized for touch input.">
          Enable the zoomed bubble that appears on touchscreens when accidentally touching more than one link at a time.
        </message>
      </if>
      <message name="IDS_FLAGS_WIFI_CREDENTIAL_SYNC_NAME" desc="Title for the flag to enable WiFi credential sync, a feature which enables synchronizing WiFi network settings across devices.">
        WiFi credential sync
      </message>
      <message name="IDS_FLAGS_WIFI_CREDENTIAL_SYNC_DESCRIPTION" desc="Decription for the flag to enable WiFi credential sync, a feature which enables synchronizing WiFi network settings across devices.">
        Enables synchronizing WiFi network settings across devices. When enabled, the WiFi credential datatype is registered with Chrome Sync, and WiFi credentials are synchronized subject to user preferences. (See also, chrome://settings/syncSetup.)
      </message>
      <if expr="is_win">
        <message name="IDS_FLAGS_WINDOWS_DESKTOP_SEARCH_REDIRECTION_DESCRIPTION" desc="Description for the flag to enable a preference that allows redirection of Windows desktop searches to the default search engine.">
          Enables a preference that allows redirection of Windows desktop searches to the default search engine.
        </message>
        <message name="IDS_FLAGS_WINDOWS_DESKTOP_SEARCH_REDIRECTION_NAME" desc="Title for the flag to enable a preference that allows redirection of Windows desktop searches to the default search engine.">
          Windows desktop search redirection preference
        </message>
      </if>
      <message name="IDS_FLAGS_SYNC_SANDBOX_NAME" desc="Name for the flag that causes Chrome to use the sandbox (testing) server for Sync.">
        Use Chrome Sync sandbox
      </message>
      <message name="IDS_FLAGS_SYNC_SANDBOX_DESCRIPTION" desc="Description for the flag that causes Chrome to use the sandbox (testing) server for Sync.">
        Connects to the testing server for Chrome Sync.
      </message>
      <if expr="chromeos">
        <message name="IDS_FLAGS_OZONE_TEST_SINGLE_HARDWARE_OVERLAY" desc="Name of the 'Ozone hardware overlay' lab.">
          Ozone hardware overlay
        </message>
        <message name="IDS_FLAGS_OZONE_TEST_SINGLE_HARDWARE_OVERLAY_DESCRIPTION" desc="Description of the 'Ozone hardware overlay' lab.">
          Enables compositing with an addition of one hardware overlay when possible.
        </message>
      </if>
      <message name="IDS_FLAGS_DATASAVER_PROMPT_NAME" desc="Title for the flag to enable a prompt to install Data Saver when a cellular network is detected." translateable="false">
        Cellular Data Saver Prompt
      </message>
      <message name="IDS_FLAGS_DATASAVER_PROMPT_DESCRIPTION" desc="Decription for the flag to enable a prompt to install Data Saver when a cellular network is detected." translateable="false">
        Enables a prompt, which appears when a cellular network connection is detected, to take the user to the Data Saver extension page on Chrome Web Store.
      </message>
      <message name="IDS_FLAGS_DATASAVER_PROMPT_DEMO_MODE" desc="The value of the Data Saver prompt flag which always shows prompt on network properties change.">
        Demo mode
      </message>
      <message name="IDS_FLAGS_SUPERVISED_USER_SAFESITES_NAME" desc="Name of the flag to enable/disable the supervised user SafeSites filtering feature.">
        Child account SafeSites filtering
      </message>
      <message name="IDS_FLAGS_SUPERVISED_USER_SAFESITES_DESCRIPTION" desc="Description for the flag to enable/disable the supervised user SafeSites filtering feature.">
        Enable or disable SafeSites filtering for child accounts.
      </message>
      <message name="IDS_SUPERVISED_USER_SAFESITES_BLACKLIST_ONLY" desc="Description for the choice to enable only the static blacklist in the supervised user SafeSites filtering feature.">
        Static blacklist only
      </message>
      <message name="IDS_SUPERVISED_USER_SAFESITES_ONLINE_CHECK_ONLY" desc="Description for the choice to enable only the online check in the supervised user SafeSites filtering feature.">
        Online check only
      </message>
      <message name="IDS_FLAGS_ENABLE_UNIFIED_MEDIA_PIPELINE_NAME" desc="Title for the flag to enable the unified media pipeline on Android.">
        Enables the unified media pipeline on Android.
      </message>
      <message name="IDS_FLAGS_ENABLE_UNIFIED_MEDIA_PIPELINE_DESCRIPTION" desc="Description for the flag to enable the unified media pipeline on Android.">
        Enables the unified (Android and desktop) media pipeline on Android.
      </message>
      <message name="IDS_FLAGS_TRY_SUPPORTED_CHANNEL_LAYOUTS_NAME" desc="Title for the flag to enable support for trying supported channel layouts.">
        Causes audio output streams to check if channel layouts other than the default hardware layout are available.
      </message>
      <message name="IDS_FLAGS_TRY_SUPPORTED_CHANNEL_LAYOUTS_DESCRIPTION" desc="Description for the flag to enable support for trying supported channel layouts.">
        Causes audio output streams to check if channel layouts other than the default hardware layout are available. Turning this on will allow the OS to do stereo to surround expansion if supported. May expose third party driver bugs, use with caution.
      </message>
      <if expr="is_macosx">
        <message name="IDS_FLAGS_APP_INFO_DIALOG_NAME" desc="Name of the flag to enable or disable the toolkit-views App Info dialog on Mac.">
          Toolkit-Views App Info Dialog.
        </message>
        <message name="IDS_FLAGS_APP_INFO_DIALOG_DESCRIPTION" desc="Description of flag to enable or disable the toolkit-views App Info dialog on Mac.">
          Makes the Toolkit-Views based App Info dialog accessible from chrome://apps or chrome://extensions in place of the native extension permissions dialog, or the details link (which is a link to the Web Store).
        </message>
        <message name="IDS_FLAGS_MAC_VIEWS_NATIVE_APP_WINDOWS_NAME" desc="Name of the flag to enable or disable toolkit-views Chrome App windows on Mac.">
          Toolkit-Views App Windows.
        </message>
        <message name="IDS_FLAGS_MAC_VIEWS_NATIVE_APP_WINDOWS_DESCRIPTION" desc="Description of flag to enable or disable toolkit-views Chrome App windows on Mac.">
          Controls whether to use Toolkit-Views based Chrome App windows.
        </message>
        <message name="IDS_FLAGS_APP_WINDOW_CYCLING_NAME" desc="Name of the flag to enable or disable custom Cmd+` App window cycling on Mac.">
          Custom Window Cycling for Chrome Apps.
        </message>
        <message name="IDS_FLAGS_APP_WINDOW_CYCLING_DESCRIPTION" desc="Description of flag to enable or disable custom Cmd+` App window cycling on Mac.">
          Changes the behavior of Cmd+` when a Chrome App becomes active. When enabled, Chrome Apps will not be cycled when Cmd+` is pressed from a browser window, and browser windows will not be cycled when a Chrome App is active.
        </message>
        <message name="IDS_FLAGS_MAC_VIEWS_DIALOGS_NAME" desc="Name of the flag to enable toolkit-views browser dialogs on Mac.">
          Toolkit-Views Browser Dialogs.
        </message>
        <message name="IDS_FLAGS_MAC_VIEWS_DIALOGS_DESCRIPTION" desc="Description of the flag to enable toolkit-views browser dialogs on Mac.">
          Causes Chrome on Mac to use a toolkit-views browser dialog when available, in place of the equivalent Cocoa dialog.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_FLAGS_ACCELERATED_MJPEG_DECODE_NAME" desc="Name of the flag to enable accelerated mjpeg decode for captured frame where available.">
          Hardware-accelerated mjpeg decode for captured frame
        </message>
        <message name="IDS_FLAGS_ACCELERATED_MJPEG_DECODE_DESCRIPTION" desc="Description for the flag to enable accelerated mjpeg decode for captured frame where available.">
          Enable hardware-accelerated mjpeg decode for captured frame where available.
        </message>
      </if>
      <message name="IDS_FLAGS_RESTRICT_IFRAME_PERMISSIONS_NAME" desc="Name of the flag to enable the restricted iframe permissions model.">
        Restrict iframe permissions.
      </message>
      <message name="IDS_FLAGS_RESTRICT_IFRAME_PERMISSIONS_DESCRIPTION" desc="Description of the flag to enable the restricted iframe permissions model.">
        Causes all iframes to be denied all permissions by default. Allowing particular permissions for an iframe may involve listing the names of these permissions as values of new iframe attributes.
      </message>
      <if expr="enable_task_manager">
        <message name="IDS_FLAGS_NEW_TASK_MANAGER_NAME" desc="Name of the flag for the new implementation of the task manager.">
          New task manager
        </message>
        <message name="IDS_FLAGS_NEW_TASK_MANAGER_DESCRIPTION" desc="Description of the flag for the new implementation of the task manager.">
          Use the new and optimized implementation of the chrome task manager.
        </message>
      </if>
      <message name="IDS_FLAGS_SIMPLIFIED_FULLSCREEN_UI_NAME" desc="Name of the flag to enable the new simplified fullscreen and mouse lock UI.">
        Simplified fullscreen / mouse lock UI.
      </message>
      <message name="IDS_FLAGS_SIMPLIFIED_FULLSCREEN_UI_DESCRIPTION" desc="Description of the flag to enable the new simplified fullscreen and mouse lock UI.">
        An experimental new user experience when entering page-triggered fullscreen or mouse pointer lock states.
      </message>
      <if expr="is_android">
        <message name="IDS_FLAGS_PROGRESS_BAR_ANIMATION_NAME" desc="Name of the flag to configure Android page loading progress bar animation.">
          Android phone page loading progress bar animation
        </message>
        <message name="IDS_FLAGS_PROGRESS_BAR_ANIMATION_DESCRIPTION" desc="Description of the flag to configure Android page loading progress bar animation.">
          Configures Android phone page loading progress bar animation.
        </message>
        <message name="IDS_FLAGS_PROGRESS_BAR_ANIMATION_LINEAR" desc="Linear progress bar animation style">
          Linear
        </message>
        <message name="IDS_FLAGS_PROGRESS_BAR_ANIMATION_SMOOTH" desc="Smooth progress bar animation style">
          Smooth
        </message>
        <message name="IDS_FLAGS_PROGRESS_BAR_ANIMATION_FAST_START" desc="Fast start progress bar animation style">
          Fast start
        </message>
      </if>
      <message name="IDS_FLAGS_LOW_PRIORITY_IFRAMES_UI_NAME" desc="Name of the flag to enable the low priority iframes experiment.">
        Low priority iframes.
      </message>
      <message name="IDS_FLAGS_LOW_PRIORITY_IFRAMES_UI_DESCRIPTION" desc="Description of the flag to enable the low priority iframes experiment.">
        Reduces the load priority of iframe resources.
      </message>
      <if expr="is_win">
        <message name="IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_NAME" desc="Name of the flag to enable PPAPI win32k lockdown experiment.">
          Enable PPAPI Win32k Lockdown.
        </message>
        <message name="IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_DESCRIPTION" desc="Description of the flag to enable PPAPI win32k lockdown experiment.">
          Specify the PPAPI plugins which will be run within the Win32k lockdown sandbox policy.
        </message>
        <message name="IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_FLASH_ONLY" desc="Enable Win32k lockdown for Flash">
          Flash only
        </message>
        <message name="IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_PDF_ONLY" desc="Enable Win32k lockdown for PDF">
          PDF only
        </message>
        <message name="IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_FLASH_AND_PDF" desc="Enable Win32k lockdown for Flash and PDF">
          Flash and PDF
        </message>
        <message name="IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_ALL" desc="Enable Win32k lockdown for all plugins">
          All plugins
        </message>
        <message name="IDS_FLAGS_ENABLE_APPCONTAINER_NAME" desc="Name of the flag to enable AppContainer lockdown experiment.">
          Enable AppContainer Lockdown.
        </message>
        <message name="IDS_FLAGS_ENABLE_APPCONTAINER_DESCRIPTION" desc="Description of the flag to enable AppContainer lockdown experiment.">
          Enables the use of an AppContainer on sandboxed processes to improve security.
        </message>
      </if>
      <if expr="toolkit_views or is_android">
        <message name="IDS_FLAGS_AUTOFILL_CREDIT_CARD_UPLOAD_NAME" desc="Name of the flag to enable uploading Autofill credit cards.">
          Enable offering upload of Autofilled credit cards
        </message>
        <message name="IDS_FLAGS_AUTOFILL_CREDIT_CARD_UPLOAD_DESCRIPTION" desc="Description of the flag to enable uploading Autofill credit cards.">
          Enables a new option to upload credit cards to Google Payments for sync to all Chrome devices.
        </message>
      </if>
      <message name="IDS_FLAGS_FORCE_UI_DIRECTION_NAME" desc="Name for the flag to force a specific UI direction.">
          Force UI direction
      </message>
      <message name="IDS_FLAGS_FORCE_UI_DIRECTION_DESCRIPTION" desc="Description for the flag to force a specific UI direction.">
          Explicitly force the UI to left-to-right or right-to-left mode, overriding the default direction of the UI language.
      </message>
      <message name="IDS_FLAGS_FORCE_UI_DIRECTION_LTR" desc="Name for the option to force left-to-right UI direction mode.">
          Left-to-right
      </message>
      <message name="IDS_FLAGS_FORCE_UI_DIRECTION_RTL" desc="Name for the option to force right-to-left UI direction mode.">
          Right-to-left
      </message>
      <if expr="is_win or is_linux">
        <message name="IDS_FLAGS_ENABLE_INPUT_IME_API_NAME" desc="Name of the flag to enable che chrome.input.ime API.">
          Enable Input IME API
        </message>
        <message name="IDS_FLAGS_ENABLE_INPUT_IME_API_DESCRIPTION" desc="Description of the flag to enable the chrome.input.ime API.">
          Enable the use of chrome.input.ime API.
        </message>
      </if>
      <message name="IDS_FLAGS_ENABLE_GROUPED_HISTORY_NAME" desc="Enables grouping websites by domain on chrome://history.">
        Group history by domain
      </message>
      <message name="IDS_FLAGS_ENABLE_GROUPED_HISTORY_DESCRIPTION" desc="Description of the 'group by domain' feature on chrome://history">
        Group history by website domain (i.e. google.com) on chrome://history.
      </message>

      <!-- WebRTC logs -->
      <message name="IDS_WEBRTC_LOGS_TITLE" desc="Title for the chrome://webrtc-logs page.">
        WebRTC logs
      </message>
      <message name="IDS_WEBRTC_LOGS_LOG_COUNT_BANNER_FORMAT" desc="Format for WebRTC log count banner on chrome://webrtc-logs">
        WebRTC logs (<ph name="WEBRTC_LOG_COUNT">$1<ex>3</ex></ph>)
      </message>
      <message name="IDS_WEBRTC_LOGS_LOG_HEADER_FORMAT" desc="Format for uploaded log entry headings on chrome://webrtc-logs">
        WebRTC log captured <ph name="WEBRTC_LOG_CAPTURE_TIME">$1<ex>Tuesday, January 25, 2011 2:58:02 PM</ex></ph>
      </message>
      <message name="IDS_WEBRTC_LOGS_LOG_LOCAL_FILE_LABEL_FORMAT" desc="Format for local log entry label on chrome://webrtc-logs">
        Local file:
      </message>
      <message name="IDS_WEBRTC_LOGS_NO_LOCAL_LOG_FILE_MESSAGE" desc="The explanatory message for chrome://webrtc-logs when there is no local log file">
        No local log file.
      </message>
      <message name="IDS_WEBRTC_LOGS_LOG_UPLOAD_TIME_FORMAT" desc="Format for uploaded log entry upload time on chrome://webrtc-logs">
        Uploaded <ph name="WEBRTC_LOG_UPLOAD_TIME">$1<ex>Tuesday, January 25, 2011 2:58:02 PM</ex></ph>
      </message>
      <message name="IDS_WEBRTC_LOGS_LOG_REPORT_ID_FORMAT" desc="Format for uploaded log entry report ID on chrome://webrtc-logs">
        Report ID <ph name="WEBRTC_LOG_REPORT_ID">$1<ex>8fa95dbb6f2ec862</ex></ph>
      </message>
      <message name="IDS_WEBRTC_LOGS_BUG_LINK_LABEL" desc="Link text for filing a bug on chrome://webrtc-logs">
        File bug
      </message>
      <message name="IDS_WEBRTC_LOGS_LOG_NOT_UPLOADED_MESSAGE" desc="The explanatory message for chrome://webrtc-logs when the log has not been uploaded">
        Log not uploaded.
      </message>
      <message name="IDS_WEBRTC_LOGS_NO_LOGS_MESSAGE" desc="The explanatory message for chrome://webrtc-logs when there are no captured logs">
        You have no recently captured WebRTC logs.
      </message>

      <!-- Custom dictionary page -->
      <message name="IDS_LANGUAGE_DICTIONARY_OVERLAY_TITLE" desc="Title for the chrome://settings/editDictionary page, where a user can add and remove words in the dictionary used for spelling">
        Custom spelling dictionary
      </message>
      <message name="IDS_LANGUAGE_DICTIONARY_OVERLAY_ADD_WORD_LABEL" desc="Label for adding a new word to the dictionary on the chrome://settings/editDictionary page">
        Add a new word
      </message>
      <message name="IDS_LANGUAGE_DICTIONARY_OVERLAY_SEARCH_PLACEHOLDER" desc="Text placeholder for an empty search field on the chrome://settings/editDictionary page">
        Search dictionary
      </message>
      <message name="IDS_LANGUAGE_DICTIONARY_OVERLAY_NO_MATCHES" desc="Text description of a search that has no results on the chrome://settings/editDictionary page">
        No matches were found.
      </message>

      <!-- Search -->
      <message name="IDS_SEARCH_PREF_EXPLANATION" desc="Description of the search engine preference">
        Set which search engine is used when searching from the
        <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>omnibox<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
      </message>
      <message name="IDS_HOTWORD_SEARCH_PREF_CHKBOX" desc="A checkbox on the Settings page to allow audio capture devices to initiate searches.">
        Enable "Ok Google" to start a voice search.
      </message>
      <if expr="chromeos">
        <message name="IDS_HOTWORD_SEARCH_NO_DSP_DESCRIPTION" desc="Description of the hotword search preference for devices with no DSP.">
          Say "Ok Google" in a new tab, google.com, and the App Launcher
        </message>
      </if>
      <if expr="not chromeos">
        <message name="IDS_HOTWORD_SEARCH_NO_DSP_DESCRIPTION" desc="Description of the hotword search preference for devices with no DSP.">
          Say "Ok Google" in a new tab and google.com
        </message>
      </if>
      <message name="IDS_HOTWORD_SEARCH_ALWAYS_ON_DESCRIPTION" desc="Description of the hotword-always-on search preference.">
        Say "Ok Google" when the screen is on and unlocked.
      </message>
      <message name="IDS_HOTWORD_RETRAIN_LINK" desc="Link to retrain the hotword voice model.">
        Retrain voice model
      </message>
      <message name="IDS_HOTWORD_SEARCH_PREF_DESCRIPTION" desc="Description of the hotword search preference">
        When you say "Ok Google," Chrome will search for what you say next.
      </message>
      <message name="IDS_HOTWORD_AUDIO_HISTORY_ENABLED" desc="Text to display when the user has audio history enabled.">
        Voice &amp; Audio Activity is enabled for <ph name="USER_EMAIL">$1<ex>joe@gmail.com</ex></ph>.
      </message>
      <message name="IDS_HOTWORD_ALWAYS_ON_AUDIO_HISTORY_DESCRIPTION" desc="Description for the audio history message when always-on is enabled.">
        Voice &amp; Audio Activity is required to use "Ok Google"
      </message>
      <message name="IDS_HOTWORD_AUDIO_HISTORY_MANAGE_LINK" desc="Text for link to manage audio history.">
        Manage Voice &amp; Audio Activity
      </message>
      <message name="IDS_HOTWORD_CONFIRM_BUBBLE_TITLE" desc="The title text for the bubble to enable the hotword voice search trigger.">
        Ok Google
      </message>
      <message name="IDS_HOTWORD_CONFIRM_BUBBLE_ENABLE" desc="The button text that allows the hotword voice search trigger.">
        OK
      </message>
      <message name="IDS_HOTWORD_CONFIRM_BUBBLE_DISABLE" desc="The button text that disallows the hotword voice search trigger.">
        Cancel
      </message>
      <message name="IDS_HOTWORD_GENERIC_ERROR_MESSAGE" desc="The default error message text when no additional details are known.">
        This feature is temporarily unavailable. <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>Help<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
      </message>
      <message name="IDS_HOTWORD_NACL_DISABLED_ERROR_MESSAGE" desc="The error message text when hotwording fails because NaCl is disabled.">
        <ph name="BEGIN_LINK">&lt;a target="_blank" href="chrome://plugins"&gt;</ph>Native Client plugin<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph> needs to be enabled to use this feature.
      </message>
      <message name="IDS_HOTWORD_MICROPHONE_ERROR_MESSAGE" desc="The error message text when hotwording fails because the microphone isn't working.">
        Microphone is currently unavailable. <ph name="BEGIN_LINK">&lt;a target="_blank" href="chrome://settings/content#media-stream-settings"&gt;</ph>Manage microphone<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
      </message>
      <message name="IDS_HOTWORD_AUDIO_LOGGING_ENABLE" desc="A checkbox in the hotword confirm dialog that allows for sending audio of 'Ok, Google' plus a few seconds before back to Google to improve voice search.">
        Improve voice search by sending the sound of "Ok Google," and a few seconds before, to Google.
      </message>
      <message name="IDS_HOTWORD_HELP_LINK" desc="Text that provides a link to the help center troubleshooting page.">
        <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>Help<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
      </message>

      <if expr="is_win">
        <!-- Conflicts page -->
        <message name="IDS_CONFLICTS_CHECK_PAGE_TABLE_TITLE_SUFFIX_ONE" desc="What gets appended after the page title if no conflicts were found.">
          Modules (<ph name="TOTAL_COUNT">$1<ex>50</ex></ph>) - No conflicts detected
        </message>
        <message name="IDS_CONFLICTS_CHECK_PAGE_TABLE_TITLE_SUFFIX_TWO" desc="What gets appended after the page title (number of conflicts found).">
          Modules (<ph name="TOTAL_COUNT">$1<ex>50</ex></ph>) - Known conflicts: <ph name="BAD_COUNT">$2<ex>3</ex></ph>, suspected: <ph name="SUSPICIOUS_COUNT">$3<ex>2</ex></ph>
        </message>
        <message name="IDS_CONFLICTS_EXPLANATION_TEXT" desc="The text blurb explaining what the compatibility page is.">
          This page lists all modules loaded into the main process and modules registered to load at a later point.
        </message>
        <message name="IDS_CONFLICTS_CHECK_INVESTIGATING" desc="A label on the compatibility page saying we are investigating.">
          We are currently investigating this issue.
        </message>
        <message name="IDS_CONFLICTS_CHECK_POSSIBLE_ACTIONS" desc="A label on the compatibility page describing possible resolutions.">
          If you are experiencing frequent problems, you could try the following to resolve the issue with this module:
        </message>
        <message name="IDS_CONFLICTS_CHECK_POSSIBLE_ACTION_UNINSTALL" desc="An uninstall label. 'It' refers to 'a module'.">
          Uninstalling
        </message>
        <message name="IDS_CONFLICTS_CHECK_POSSIBLE_ACTION_UPDATE" desc="An update label. 'It' refers to 'a module'.">
          Updating
        </message>
        <message name="IDS_CONFLICTS_CHECK_POSSIBLE_ACTION_DISABLE" desc="A disable label. 'It' refers to 'a module'.">
          Disabling
        </message>
        <message name="IDS_CONFLICTS_CHECK_POSSIBLE_ACTION_SEPARATOR" desc="The separator separating the words 'Uninstalling it', 'Updating it' and 'Disabling it'">
          /
        </message>
        <message name="IDS_CONFLICTS_NO_MODULES_LOADED" desc="Error message for when no modules were found in the process">
          Unable to detect any modules loaded.
        </message>
        <message name="IDS_CONFLICTS_HEADER_SOFTWARE" desc="The 'Software' header for each module item in the list">
          Software
        </message>
        <message name="IDS_CONFLICTS_HEADER_SIGNED_BY" desc="The 'Signed by' header for each module item in the list">
          Signed by
        </message>
        <message name="IDS_CONFLICTS_HEADER_LOCATION" desc="The 'Location' header for each module item in the list">
          Location
        </message>
        <message name="IDS_CONFLICTS_HEADER_VERSION" desc="The 'Version' header for each module item in the list">
          Version
        </message>
        <message name="IDS_CONFLICTS_HEADER_HELP_TIP" desc="The 'Help tip:' header for each module item in the list">
          Help tip
        </message>
        <message name="IDS_CONFLICTS_LOADING_MESSAGE" desc="Shown while loading until full list of modules is retrieved">
          Loading...
        </message>
        <message name="IDS_CONFLICTS_NOT_LOADED_YET" desc="Shown next to a module that has not been loaded into memory yet">
          Not loaded yet
        </message>
        <message name="IDS_HELP_CENTER_VIEW_CONFLICTS" desc="The url of the Help center article for the View Conflicts page" translateable="false">
          https://support.google.com/chrome/?p=<ph name="NAME">$1<ex>Hash</ex></ph>&amp;l=<ph name="LOCATION">$2<ex>Hash</ex></ph>&amp;d=<ph name="DESC">$3<ex>Hash</ex></ph>&amp;s=<ph name="SIGNER">$4<ex>Hash</ex></ph>
        </message>
        <if expr="use_titlecase">
        <message name="IDS_CONFLICTS_LEARN_MORE" desc="The Learn More button in the conflicting module bubble">
            Learn More
        </message>
        <message name="IDS_CONFLICTS_NOT_NOW" desc="The Not Now button in the conflicting module bubble">
            Not Now
        </message>
        </if>
        <if expr="not use_titlecase">
        <message name="IDS_CONFLICTS_LEARN_MORE" desc="The Learn More button in the conflicting module bubble">
            Learn more
        </message>
        <message name="IDS_CONFLICTS_NOT_NOW" desc="The Not Now button in the conflicting module bubble">
            Not now
        </message>
        </if>
      </if> <!-- is_win -->

      <!-- Plugin placeholders -->
      <message name="IDS_PLUGIN_HIDE" desc="The tooltip for hiding a blocked plugin, displayed in the click to play UI.">
        Hide this plugin
      </message>
      <message name="IDS_PLUGIN_UPDATE" desc="The link for updating an outdated plugin.">
        Update plugin...
      </message>
      <message name="IDS_PLUGIN_NOT_SUPPORTED_METRO" desc="The placeholder text for a plugin that can't run in Windows Metro mode.">
        This plugin only works on the desktop.
      </message>
      <if expr="is_macosx">
        <message name="IDS_PLUGIN_BLOCKED" desc="The placeholder text for a blocked plugin.">
          Control-click to play <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>.
        </message>
      </if>
      <if expr="not is_macosx">
        <message name="IDS_PLUGIN_BLOCKED" desc="The placeholder text for a blocked plugin.">
          Right-click to play <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>.
        </message>
      </if>
      <message name="IDS_PLUGIN_BLOCKED_BY_POLICY" desc="The placeholder text for a plugin blocked by enterprise policy.">
        <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph> is not allowed.
      </message>
      <if expr="chromeos">
        <message name="IDS_NACL_PLUGIN_BLOCKED" desc="The placeholder text for a blocked plugin.">
          This app is not currently supported on this device but the Chrome gnomes are hard at work to make it work soon.
        </message>
      </if>
      <message name="IDS_PLUGIN_OUTDATED" desc="The placeholder text for an outdated plugin.">
        <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph> is out of date.
      </message>
      <message name="IDS_PLUGIN_NOT_AUTHORIZED" desc="The placeholder text for a plugin that requires user permission to run.">
        <ph name="PLUGIN_NAME">$1<ex>Java</ex></ph> needs your permission to run.
      </message>
      <message name="IDS_PLUGIN_NOT_SUPPORTED" desc="The placeholder text for an unsupported plugin.">
        This plugin is not supported.
      </message>
      <message name="IDS_PLUGIN_NOT_FOUND" desc="The placeholder text for an unknown plugin that is not installed.">
        No plugin available to display this content.
      </message>
      <message name="IDS_PLUGIN_DOWNLOADING" desc="The placeholder text when downloading a missing plugin.">
        Downloading <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph>...
      </message>
      <message name="IDS_PLUGIN_DOWNLOAD_ERROR" desc="The placeholder text when there was an error download a missing plugin.">
        There was an error (<ph name="ERROR">$1<ex>net::ERR_TOO_MANY_GOATS</ex></ph>) while downloading the plugin.
      </message>
      <message name="IDS_PLUGIN_DOWNLOAD_ERROR_SHORT" desc="The placeholder text when there was an error download a missing plugin.">
        <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph> download failed.
      </message>
      <message name="IDS_PLUGIN_DOWNLOAD_CANCELLED" desc="The placeholder text when the user canceled downloading the plugin.">
        <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph> download was canceled.
      </message>
      <message name="IDS_PLUGIN_INSTALLING" desc="The placeholder text when installing a missing plugin.">
        When <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph> has finished installing, reload the page to activate it.
      </message>
      <message name="IDS_PLUGIN_UPDATING" desc="The placeholder text when updating an out-of-date plugin.">
        When <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph> has finished updating, reload the page to activate it.
      </message>
      <message name="IDS_PLUGIN_FOUND" desc="The placeholder text for a known plugin that is not installed.">
        <ph name="PLUGIN_NAME">$1<ex>Quicktime</ex></ph> is required to display this content.
      </message>
      <message name="IDS_PLUGIN_CONFIRM_INSTALL_DIALOG_TITLE" desc="Title of the plugin installation confirmation dialog.">
        Install <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph>
      </message>
      <message name="IDS_PLUGIN_CONFIRM_INSTALL_DIALOG_MSG" desc="Message of the plugin installation confirmation dialog.">
        Are you sure you want to install <ph name="PLUGIN_NAME">$1<ex>Realplayer</ex></ph>? You should only install plugins that you trust.
      </message>
      <message name="IDS_PLUGIN_CONFIRM_INSTALL_DIALOG_ACCEPT_BUTTON" desc="Button title to install a missing plugin.">
        Install
      </message>
      <message name="IDS_PLUGIN_DISABLED" desc="The placeholder text for a disabled plugin.">
        <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph> has been disabled. To re-enable it, please go to <ph name="CHROME_PLUGINS_LINK">chrome://plugins</ph>.
      </message>

      <!-- Session Crashed Info Bar/Bubble-->
      <message name="IDS_SESSION_CRASHED_VIEW_RESTORE_BUTTON" desc="Title of the restore button in the session crashed view.">
        Restore
      </message>
      <message name="IDS_SESSION_CRASHED_BUBBLE_TITLE" desc="Title of the session crashed bubble view.">
        Restore pages?
      </message>
      <message name="IDS_SESSION_CRASHED_BUBBLE_UMA_LINK_TEXT" desc="The text attached to the link that explains UMA optin option">
        usage statistics
      </message>
      <message name="IDS_FLAGS_SESSION_CRASHED_BUBBLE_NAME" desc="Title for the flag to enable showing session restore request in bubbles.">
        Session restore bubble UI
      </message>
      <message name="IDS_FLAGS_SESSION_CRASHED_BUBBLE_DESCRIPTION" desc="Description for the flag to enable showing session restore request in bubbles.">
        The session restore UI will be shown in a bubble instead of an info bar.
      </message>


      <!-- Bad Flags Info Bar-->
      <message name="IDS_BAD_FLAGS_WARNING_MESSAGE" desc="Message shown when an unsupported command-line flag is used. [Keep it short so it fits in the infobar.]">
        You are using an unsupported command-line flag: <ph name="BAD_FLAG">$1<ex>--no-sandbox</ex></ph>. Stability and security will suffer.
      </message>

      <!-- Pepper Broker Info bar -->
      <if expr="is_android">
        <message name="IDS_PEPPER_BROKER_MESSAGE" desc="Mobile: Message shown when a pepper plugin wants to launch its broker. This message is followed by a 'Learn more' link.">
          <ph name="PEPPER_PLUGIN_NAME">$1<ex>Shockwave Flash</ex></ph> on <ph name="PEPPER_PLUGIN_DOMAIN">$2<ex>example.com</ex></ph> wants to access your device.
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_PEPPER_BROKER_MESSAGE" desc="Message shown when a pepper plugin wants to launch its broker. This message is followed by a 'Learn more' link.">
          <ph name="PEPPER_PLUGIN_NAME">$1<ex>Shockwave Flash</ex></ph> on <ph name="PEPPER_PLUGIN_DOMAIN">$2<ex>example.com</ex></ph> wants to access your computer.
        </message>
      </if>
      <message name="IDS_PEPPER_BROKER_ALLOW_BUTTON" desc="Text for the allow button on the pepper broker launch prompt">
        Allow
      </message>
      <message name="IDS_PEPPER_BROKER_DENY_BUTTON" desc="Text for the deny button on the pepper broker launch prompt">
        Deny
      </message>
      <message name="IDS_BLOCKED_PPAPI_BROKER_TITLE" desc="Title for the page action when Pepper broker access was blocked">
        An unsandboxed plugin was prevented from running on this page.
      </message>
      <message name="IDS_ALLOWED_PPAPI_BROKER_TITLE" desc="Title for the page action when Pepper broker access was allowed">
        An unsandboxed plugin was allowed to run on this page.
      </message>
      <message name="IDS_BLOCKED_PPAPI_BROKER_UNBLOCK" desc="Radio button to unblock the Pepper broker">
        Always allow unsandboxed plugins on <ph name="HOST">$1<ex>example.com</ex></ph>
      </message>
      <message name="IDS_BLOCKED_PPAPI_BROKER_NO_ACTION" desc="Radio button to keep blocking the Pepper broker">
        Continue blocking unsandboxed plugins
      </message>
      <message name="IDS_ALLOWED_PPAPI_BROKER_NO_ACTION" desc="Radio button to keep allowing the Pepper broker">
        Continue allowing unsandboxed plugins
      </message>
      <message name="IDS_ALLOWED_PPAPI_BROKER_BLOCK" desc="Radio button to block the Pepper broker">
        Always block unsandboxed plugins on <ph name="HOST">$1<ex>example.com</ex></ph>
      </message>
      <message name="IDS_PPAPI_BROKER_BUBBLE_MANAGE_LINK" desc="Link title to manage Pepper broker settings">
        Manage unsandboxed plugin blocking...
      </message>

      <!-- Blocked Displaying/Running Insecure Content info bar -->
      <message name="IDS_BLOCKED_DISPLAYING_INSECURE_CONTENT" desc="Message shown when a website has asked Chrome to display mixed content.  The message is followed by a learn more link and an allow button.">
        This page is trying to load scripts from unauthenticated sources.
      </message>
      <if expr="use_titlecase">
        <message name="IDS_ALLOW_INSECURE_CONTENT_BUTTON" desc="Button to allow insecure content to be displayed">
          Load unsafe scripts
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_ALLOW_INSECURE_CONTENT_BUTTON" desc="Button to allow insecure content to be displayed">
          Load unsafe scripts
        </message>
      </if>
      <if expr="not is_android and use_titlecase">
        <message name="IDS_BLOCK_INSECURE_CONTENT_BUTTON" desc="Button to prevent insecure content from being displayed">
          Don't Load (Recommended)
        </message>
      </if>
      <if expr="not is_android and not use_titlecase">
        <message name="IDS_BLOCK_INSECURE_CONTENT_BUTTON" desc="Button to prevent insecure content from being displayed">
          Don't load (recommended)
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_BLOCK_INSECURE_CONTENT_BUTTON" desc="Mobile: Button to prevent insecure content from being displayed">
          Don't load
        </message>
      </if>

      <!-- chromeos bookmark app add to shelf strings -->
      <message name="IDS_ADD_TO_SHELF_INFOBAR_TITLE" desc="Label displayed in an infobar asking users to add to the site to their shelf">
        Add this site to your shelf to use it any time.
      </message>
      <message name="IDS_ADD_TO_SHELF_INFOBAR_ADD_BUTTON" desc="Text displayed on the button to allow users to add to the site to their shelf">
        Add
      </message>

      <!-- about:system strings -->
      <if expr="not is_android">
        <message name="IDS_ABOUT_SYS_TITLE" desc="about:system page title">
          About System
        </message>
        <message name="IDS_ABOUT_SYS_DESC" desc="about:system page description">
          System diagnostic data
        </message>
        <message name="IDS_ABOUT_SYS_TABLE_TITLE" desc="Title of a table that contains system details">
          Details
        </message>
        <message name="IDS_ABOUT_SYS_LOG_FILE_TABLE_TITLE" desc="Title of a table that contains details from an uploaded log">
          Details: <ph name="FILE_NAME">$1<ex>Log.txt</ex></ph>
        </message>
        <message name="IDS_ABOUT_SYS_EXPAND_ALL" desc="name of a button that shows (expands) all system details">
          Expand all...
        </message>
        <message name="IDS_ABOUT_SYS_COLLAPSE_ALL" desc="name of a button that hides (collapses) all system details">
          Collapse all...
        </message>
        <message name="IDS_ABOUT_SYS_EXPAND" desc="name of a button that shows (expands) specific system details">
          Expand...
        </message>
        <message name="IDS_ABOUT_SYS_COLLAPSE" desc="name of a button that hides (collapses) specific system details">
          Collapse...
        </message>
        <message name="IDS_ABOUT_SYS_PARSE_ERROR" desc="error message displayed if parsing of custom uploaded log fails">
          Unable to parse file: <ph name="FILE_NAME">$1<ex>Log.txt</ex></ph>
        </message>
      </if>

      <!-- chrome://flash strings -->
      <message name="IDS_FLASH_LOADING_MESSAGE" desc="Shown while loading until full list of modules is retrieved">
      Loading...
      </message>
      <message name="IDS_FLASH_TITLE_MESSAGE" desc="Shown while loading until full list of modules is retrieved">
      About Flash
      </message>

      <!-- NaCl plugin strings -->
      <message name="IDS_NACL_APP_MISSING_ARCH_MESSAGE" desc="Shown if a Native Client app does not support the current architecture">
        This page uses a Native Client app that doesn't work on your computer.
      </message>

      <!-- chrome://voicesearch strings -->
      <if expr="chromeos">
        <message name="IDS_VOICESEARCH_LOADING_MESSAGE" desc="Shown while loading until full list of modules is retrieved">
          Loading...
        </message>
        <message name="IDS_VOICESEARCH_TITLE_MESSAGE" desc="Shown while loading until full list of modules is retrieved">
          About Voice Search
        </message>
      </if>

      <!-- About box strings -->
      <if expr="is_win">
        <message name="IDS_ABOUT_BOX_ERROR_DURING_UPDATE_CHECK" desc="The error label for errors that occurred while checking for updates in the About box.">
          An error occurred while checking for updates: <ph name="ERROR">$1<ex>Unable to contact Google Update</ex></ph>
        </message>
        <message name="IDS_ABOUT_BOX_ERROR_UPDATE_CHECK_FAILED" desc="The error message for the specific case when we cannot create the Google Update component">
          Update check failed to start (error code <ph name="ERROR">$1<ex>0x80000005</ex></ph>).
        </message>
        <message name="IDS_ABOUT_BOX_EXTERNAL_UPDATE_IS_RUNNING" desc="The external updater is running independently.">
          The updater is currently running. Refresh in a minute to check again.
        </message>
        <message name="IDS_ABOUT_BOX_GOOGLE_UPDATE_ERROR" desc="An error message from Google Update with details.">
          <ph name="ERROR">$1<ex>An error message from Google Update.</ex></ph> (error code <ph name="ERROR_CODE">$2<ex>7: 0x80000005</ex></ph>).
        </message>
      </if>

      <!-- Omnibox -->
      <if expr="not use_titlecase">
        <message name="IDS_PASTE_AND_GO" desc="The text label of the Paste And Go menu item when the clipboard contains a URL">
          Pa&amp;ste and go
        </message>
        <message name="IDS_PASTE_AND_SEARCH" desc="The text label of the Paste And Go menu item when the clipboard contains a string to search for">
          Pa&amp;ste and search
        </message>
        <message name="IDS_SHOW_URL" desc="The text label of the Show URL item in the omnibox context menu, when the omnibox is showing search terms instead of the underlying search URL.">
          Show URL
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_PASTE_AND_GO" desc="In Title Case: The text label of the Paste And Go menu item when the clipboard contains a URL">
          Pa&amp;ste and Go
        </message>
        <message name="IDS_PASTE_AND_SEARCH" desc="In Title Case: The text label of the Paste And Go menu item when the clipboard contains a string to search for">
          Pa&amp;ste and Search
        </message>
        <message name="IDS_SHOW_URL" desc="In Title Case: The text label of the Show URL item in the omnibox context menu, when the omnibox is showing search terms instead of the underlying search URL.">
          Show URL
        </message>
      </if>
      <message name="IDS_OMNIBOX_KEYWORD_HINT" desc="Shown to the user when the url in the omnibox has a keyword associated with it. $1 is replaced with an image showing the tab key. $2 is replaced with the description of the keyword.">
        Press <ph name="SEARCH_KEY">$1<ex>Tab</ex></ph> to search <ph name="SITE_NAME">$2<ex>google.com</ex></ph>
      </message>
      <message name="IDS_OMNIBOX_EXTENSION_KEYWORD_HINT" desc="Shown to the user when the word(s) in the omnibox has an extension keyword associated with it. $1 is replaced with an image showing the tab key. $2 is replaced with the description of the keyword.">
        Press <ph name="SEARCH_KEY">$1<ex>Tab</ex></ph> to send commands to <ph name="EXTENSION_NAME">$2<ex>Google Talk</ex></ph>
      </message>
      <message name="IDS_OMNIBOX_KEYWORD_TEXT" desc="Text shown in the search button at the front of the omnibox when the user has selected a keyword">
        Search <ph name="SITE_NAME">$1<ex>google.com</ex></ph>:
      </message>
      <message name="IDS_SEARCH_BOX_EMPTY_HINT" desc="The text displayed in the fakebox when it is empty, which includes the name of the default search provider.">
        Search <ph name="ENGINE">$1<ex>Google</ex></ph> or type URL
      </message>
      <if expr="is_ios">
        <message name="IDS_OMNIBOX_EMPTY_HINT" desc="The text displayed in the omnibox when it is empty.">
          Search or type URL
        </message>
      </if>
      <message name="IDS_OMNIBOX_ACCESSIBLE_ANSWER" desc="Readable text represening a query typed by the user in the omnibox, followed by an indication that an answer to that query will follow, followed by the answer. The commas are significant as they will introduce a pause in the spoken text.">
        <ph name="QUERY">$1<ex>weather in los angeles</ex></ph>, answer, <ph name="ANSWER">$2<ex>sunny and 84 degrees</ex></ph>
      </message>

      <!--Tooltip strings-->
      <message name="IDS_TOOLTIP_BACK" desc="The tooltip for back button">
        Click to go back, hold to see history
      </message>
      <message name="IDS_ACCNAME_TOOLTIP_BACK" desc="The tooltip for back button suited for non-mouse users">
        Press to go back, use context menu to see history
      </message>
      <message name="IDS_TOOLTIP_FORWARD" desc="The tooltip for forward button">
        Click to go forward, hold to see history
      </message>
      <message name="IDS_ACCNAME_TOOLTIP_FORWARD" desc="The tooltip for forward button  suited for non-mouse users">
        Press to go forward, context menu to see history
      </message>
      <message name="IDS_TOOLTIP_HOME" desc="The tooltip for the home button">
        Open the home page
      </message>
      <message name="IDS_TOOLTIP_RELOAD" desc="The tooltip for reload button">
        Reload this page
      </message>
      <message name="IDS_TOOLTIP_RELOAD_WITH_MENU" desc="The tooltip for reload button with menu in DevTools mode">
        Reload this page, hold to see more options
      </message>
      <message name="IDS_TOOLTIP_STOP" desc="The tooltip for the stop button">
        Stop loading this page
      </message>
      <if expr="is_macosx">
        <message name="IDS_TOOLTIP_CLOSE_TAB" desc="The tooltip for the close tab button">
          Close
        </message>
      </if>
      <message name="IDS_TOOLTIP_LOCATION_ICON" desc="The tooltip for location icon in the omnibox">
        View site information
      </message>
      <if expr="not use_titlecase">
        <message name="IDS_TOOLTIP_NEW_TAB" desc="The tooltip for the new tab button">
          New tab
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_TOOLTIP_NEW_TAB" desc="The tooltip for the new tab button">
          New Tab
        </message>
       </if>
      <message name="IDS_TOOLTIP_MIC_SEARCH" desc="The tooltip for search-by-voice button">
        Search by voice
      </message>
      <if expr="not use_titlecase">
        <message name="IDS_TOOLTIP_SAVE_CREDIT_CARD" desc="The tooltip for the icon that shows the save credit card bubble">
          Save credit card
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_TOOLTIP_SAVE_CREDIT_CARD" desc="In Title Case: The tooltip for the icon that shows the save credit card bubble">
          Save Credit Card
        </message>
       </if>
      <message name="IDS_TOOLTIP_TRANSLATE" desc="The tooltip for translate">
        Translate this page
      </message>
      <message name="IDS_TOOLTIP_ZOOM" desc="The tooltip for the zoom bubble">
        Zoom: <ph name="VALUE">$1<ex>100</ex></ph>%
      </message>
      <message name="IDS_TOOLTIP_ZOOM_EXTENSION_ICON" desc="The tooltip for the extension icon in the zoom bubble">
        This page was zoomed by the "<ph name="NAME">$1<ex>Google Cast</ex></ph>" extension
      </message>
      <if expr="not use_titlecase">
        <message name="IDS_ZOOM_SET_DEFAULT" desc="The text label of a button which, when clicked, returns the page to default zoom">
          Reset to default
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_ZOOM_SET_DEFAULT" desc="In Title Case: The text label of a button which, when clicked, returns the page to default zoom">
          Reset to Default
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_ZOOM_SET_DEFAULT_SHORT" desc="In Title Case: The short text label of a button which, when clicked, returns the page to default zoom">
          Reset
        </message>
      </if>

      <message name="IDS_SITE_CHIP_EV_SSL_LABEL" desc="Formatting for the string displayed in the EV SSL site chip next to the omnibox.">
        <ph name="ORGNAME">$1<ex>Google, Inc. [US]</ex></ph> <ph name="HOSTNAME">$2<ex>google.com</ex></ph>
      </message>

      <!--Accessible name/action strings-->
      <message name="IDS_ACCESSIBLE_INCOGNITO_WINDOW_TITLE_FORMAT" desc="The format for the accessible title of an incognito window">
        <ph name="WINDOW_TITLE">$1</ph> (Incognito)
      </message>
      <message name="IDS_ACCNAME_APP_UPGRADE_RECOMMENDED" desc="The accessible name for the app menu when software update is available.">
        <ph name="ACCNAME_APP">$1<ex>Chrome</ex></ph> (Update is available)
      </message>
      <message name="IDS_ACCNAME_BACK" desc="The accessible name for the back button.">
        Back
      </message>
      <message name="IDS_ACCNAME_FORWARD" desc="The accessible name for the forward button.">
        Forward
      </message>
      <message name="IDS_ACCNAME_FULLSCREEN" desc="The accessible name of the fullscreen button in the new merged menu">
        Full screen
      </message>
      <message name="IDS_ACCNAME_HOME" desc="The accessible name for the home button">
        Home
      </message>
      <message name="IDS_ACCNAME_RELOAD" desc="The accessible name for the reload/stop button.">
        Reload
      </message>
      <message name="IDS_ACCNAME_LOCATION" desc="The accessible name for the editable-text portion of the omnibox.">
        Address and search bar
      </message>
      <message name="IDS_ACCNAME_ZOOM" desc="The accessible name for the zoom button.">
        Zoom
      </message>
      <message name="IDS_ACCNAME_OPEN_PDF_IN_READER" desc="The accessible name for the Open PDF in Reader button.">
        Open PDF in Reader
      </message>
      <message name="IDS_ACCNAME_FIND" desc="The accessible name for the find button.">
        Find
      </message>
      <message name="IDS_ACCNAME_PREVIOUS" desc="The accessible name for the previous button.">
        Previous
      </message>
      <message name="IDS_ACCNAME_NEXT" desc="The accessible name for the next button.">
        Next
      </message>
      <message name="IDS_ACCNAME_BOOKMARKS" desc="The accessible name for the Bookmarks toolbar.">
        Bookmarks
      </message>
      <message name="IDS_ACCNAME_BOOKMARKS_CHEVRON" desc="The accessible name for the chevron visible if not all the bookmark buttons fit.">
        Menu containing hidden bookmarks
      </message>
      <message name="IDS_ACCNAME_SEPARATOR" desc="The accessible name for a separator.">
        Separator
      </message>
      <message name="IDS_ACCNAME_EXTENSIONS" desc="The accessible name for the Extensions toolbar.">
        Extensions
      </message>
      <message name="IDS_ACCNAME_EXTENSIONS_CHEVRON" desc="The accessible name for the chevron visible if not all the extension buttons fit.">
        Menu containing hidden extensions
      </message>
      <message name="IDS_ACCNAME_NEWTAB" desc="The accessible name for the New Tab (+) button.">
        New Tab
      </message>
      <message name="IDS_ACCNAME_MINIMIZE" desc="The accessible name for the Minimize button.">
        Minimize
      </message>
      <message name="IDS_ACCNAME_MAXIMIZE" desc="The accessible name for the Maximize button.">
        Maximize
      </message>
      <message name="IDS_ACCNAME_RESTORE" desc="The accessible name for the Restore button.">
        Restore
      </message>
      <message name="IDS_ACCNAME_CLOSE" desc="The accessible name for the Close button.">
        Close
      </message>
      <message name="IDS_ACCNAME_CLOSE_TAB" desc="The accessible name for the button that is used to close a specific tab.">
        Close <ph name="TAB_NAME">$1<ex>Google Search</ex></ph>
      </message>
      <if expr="is_ios">
        <message name="IDS_ACCNAME_CLEAR_TEXT" desc="The accessibility label for the clear text button in the location bar [Length: unlimited].">
          Clear Text
        </message>
        <message name="IDS_ACCNAME_VOICE_SEARCH" desc="The accessibility label for the voice search button in the location bar [Length: unlimited]">
          Voice Search
        </message>
      </if>

      <!-- Browser Hung Plugin Detector -->
      <if expr="is_win">
        <message name="IDS_UNKNOWN_PLUGIN_NAME" desc="Name for a plugin whose name could not be determined">
          Unknown
        </message>
        <message name="IDS_BROWSER_HANGMONITOR_TITLE" desc="Title for the hung plugin message">
          Plugin Unresponsive
        </message>
        <message name="IDS_BROWSER_HANGMONITOR" desc="A plugin on a page has hung">
  The following plugin is unresponsive: <ph name="PLUGIN_NAME">$1
  <ex>Shockwave
  </ex></ph>Would you like to stop it?
        </message>
      </if>
      <message name="IDS_BROWSER_HANGMONITOR_RENDERER_TITLE" desc="The title of the 'A renderer has hung' dialog. NOTE: If having no explicit # makes the phrasing awkward, feel free to add a # as necessary. [ICU Syntax]">
        {NUM_PAGES, plural,
        =1 {Page Unresponsive}
        other {Pages Unresponsive}}
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_RENDERER" desc="A renderer has hung. NOTE: If having no explicit # makes the phrasing awkward, feel free to add a # as necessary. [ICU Syntax]">
        {NUM_PAGES, plural,
        =1 {The following page has become unresponsive. You can wait for it to become responsive or kill it.}
        other {The following pages have become unresponsive. You can wait for them to become responsive or kill them.}}
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_RENDERER_INFOBAR" desc="The text of the infobar notifying the user that the renderer is unresponsive.">
        The page has become unresponsive. You can wait for it to become responsive or close it.
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_RENDERER_INFOBAR_END" desc="The label of the 'close' button for the hung renderer infobar">
        Close
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_RENDERER_WAIT" desc="The label of the 'wait' button">
        Wait
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_RENDERER_END" desc="The label of the 'kill' button">
        Kill
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_PLUGIN_INFOBAR" desc="The text of the infobar notifying the user that a plugin has hung">
        A plugin (<ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>) isn't responding.
      </message>
      <message name="IDS_BROWSER_HANGMONITOR_PLUGIN_INFOBAR_KILLBUTTON" desc="The button on the hung plugin infobar (...PLUGIN_INFOBAR above) to terminate the plugin">
        Stop plugin
      </message>

      <!-- Passwords and Exceptions Dialog -->
      <message name="IDS_PASSWORDS_EXCEPTIONS_WINDOW_TITLE" desc="Title for 'Passwords and exceptions dialog'">
        Passwords
      </message>
      <message name="IDS_PASSWORDS_AUTO_SIGNIN_TITLE" desc="Title for 'Auto sign-in' checkbox in the password dialog">
        Auto Sign-in
      </message>
      <message name="IDS_PASSWORDS_AUTO_SIGNIN_DESCRIPTION" desc="Text under 'Auto sign-in' checkbox">
        Automatically sign in to websites using stored credential. When the feature is off, you'll be asked for verification every time before signing in to a website.
      </message>
      <message name="IDS_PASSWORDS_SHOW_PASSWORDS_TAB_TITLE" desc="Title for 'Saved passwords' tab">
        Saved passwords
      </message>
      <message name="IDS_PASSWORDS_EXCEPTIONS_TAB_TITLE" desc="Title for 'Never saved' tab">
        Never saved
      </message>
      <message name="IDS_PASSWORDS_VIA_FEDERATION" desc="Text for federated credential's value.">
        via <ph name="PROVIDER">$1<ex>facebook.com</ex></ph>
      </message>
      <message name="IDS_PASSWORDS_PAGE_SEARCH_PASSWORDS" desc="Placeholder text shown in password table search box">
        Search passwords
      </message>
      <message name="IDS_PASSWORDS_PAGE_VIEW_SHOW_BUTTON" desc="Text for passwords page view's button to show a stored password">
        Show
      </message>
      <message name="IDS_PASSWORDS_PAGE_VIEW_HIDE_BUTTON" desc="Text for passwords page view's button to hide a stored password">
        Hide
      </message>
      <message name="IDS_PASSWORDS_PAGE_VIEW_NO_PASSWORDS_DESCRIPTION" desc="Text for passwords page view when there are no passwords to show.">
        Your saved passwords will appear here.
      </message>
      <message name="IDS_PASSWORDS_PAGE_VIEW_NO_EXCEPTIONS_DESCRIPTION" desc="Text for passwords page view when there are no password exceptions to show.">
        Sites which never save passwords will appear here.
      </message>

      <!-- Confirm MessageBox Dialog -->
      <message name="IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL" desc="Confirm MessageBox Dialog's 'Yes' button text">
        Yes
      </message>
      <message name="IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL" desc="Confirm MessageBox Dialog's 'No' button text">
        No
      </message>

      <!-- Password Manager -->
      <message name="IDS_FILL_ON_ACCOUNT_SELECT_NAME" desc="Name of the experiment for the password manager to fill on account selection rather than page load">
        Fill passwords on account selection
      </message>
      <message name="IDS_FILL_ON_ACCOUNT_SELECT_DESCRIPTION" desc="Description of the experiment for the password manager to fill on account selection rather than page load">
        Filling of passwords when an account is explicitly selected by the user rather than autofilling credentials on page load.
      </message>
      <message name="IDS_FLAGS_FILL_ON_ACCOUNT_SELECT_ENABLE_HIGHLIGHTING" desc="Option to enable fill on account select with field highlighting">
        Enable with field highlighting
      </message>
      <message name="IDS_FLAGS_FILL_ON_ACCOUNT_SELECT_ENABLE_NO_HIGHLIGHTING" desc="Option to enable fill on account select with no field highlighting">
        Enable with no field highlighting
      </message>
      <if expr="not is_android">
        <message name="IDS_PASSWORD_MANAGER_SAVE_BUTTON" desc="Save button text for password manager">
          Save
        </message>
        <message name="IDS_PASSWORD_MANAGER_UPDATE_BUTTON" desc="Update button text for password manager">
          Update password
        </message>
        <message name="IDS_PASSWORD_MANAGER_BLACKLIST_BUTTON" desc="Button text for the 'Save Password' infobar's 'Never remember for this site' option">
          Never for this site
        </message>
        <message name="IDS_PASSWORD_MANAGER_BUBBLE_BLACKLIST_BUTTON" desc="Button text for the 'Save Password' bubble's 'Never remember for this site' option">
          Never
        </message>
        <message name="IDS_PASSWORD_MANAGER_CANCEL_BUTTON" desc="Text for the 'Manage Passwords' bubble's 'Not now' option">
          Nope
        </message>
        <message name="IDS_PASSWORD_MANAGER_TOOLTIP_SAVE" desc="Text for the 'Manage Passwords' icon's 'password to be saved' state">
          Save your password
        </message>
        <message name="IDS_PASSWORD_MANAGER_TOOLTIP_MANAGE" desc="Text for the 'Manage Passwords' icon's 'saving passwords' state">
          Manage your passwords
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_PASSWORD_MANAGER_SAVE_BUTTON" desc="Mobile: Button text for the 'Save Password' infobar's 'Remember password' option">
          Save
        </message>
        <message name="IDS_PASSWORD_MANAGER_BLACKLIST_BUTTON" desc="Mobile: Button text for the 'Save Password' infobar's 'Never remember for this site' option">
          Never
        </message>
      </if>

      <!-- Android uses custom UI for Bookmark importing -->
      <if expr="not is_android">
        <!-- Import Settings Dialog -->
        <message name="IDS_IMPORT_SETTINGS_TITLE" desc="Dialog title for import dialog">
          Import bookmarks and settings
        </message>
        <message name="IDS_IMPORT_FROM_LABEL" desc="Label before profile select combo box">
          From:
        </message>
        <if expr="is_win">
          <message name="IDS_IMPORT_FROM_IE" desc="browser combo box: Microsoft Internet Explorer">
            Microsoft Internet Explorer
          </message>
          <message name="IDS_IMPORT_FROM_EDGE" desc="browser combo box: Microsoft Edge">
            Microsoft Edge
          </message>
        </if>
        <message name="IDS_IMPORT_FROM_FIREFOX" desc="browser combo box: Mozilla Firefox">
          Mozilla Firefox
        </message>
        <!-- TODO(thestig) Should this be Linux only? Add #ifdefs to external_process_importer_client.cc -->
        <message name="IDS_IMPORT_FROM_ICEWEASEL" desc="browser combo box: Iceweasel">
          Iceweasel
        </message>
        <!-- TODO(thestig) Should this be Mac or Win+Mac only? -->
        <message name="IDS_IMPORT_FROM_SAFARI" desc="browser combo box: Safari">
          Safari
        </message>
        <message name="IDS_IMPORT_FROM_BOOKMARKS_HTML_FILE" desc="browser combo box: Bookmarks HTML File">
          Bookmarks HTML File
        </message>
        <message name="IDS_IMPORT_ITEMS_LABEL" desc="Label before item select checkboxes">
          Select items to import:
        </message>
        <message name="IDS_IMPORT_HISTORY_CHKBOX" desc="Checkbox for importing browsing history">
          Browsing history
        </message>
        <message name="IDS_IMPORT_FAVORITES_CHKBOX" desc="Checkbox for importing favorites">
          Favorites/Bookmarks
        </message>
        <message name="IDS_IMPORT_PASSWORDS_CHKBOX" desc="Checkbox for importing saved passwords">
          Saved passwords
        </message>
        <message name="IDS_IMPORT_SEARCH_ENGINES_CHKBOX" desc="Checkbox for importing search engines">
          Search engines
        </message>
        <message name="IDS_IMPORT_AUTOFILL_FORM_DATA_CHKBOX" desc="Checkbox for importing form data for autofill">
          Autofill form data
        </message>
        <message name="IDS_IMPORT_LOADING_PROFILES" desc="Status text to notify the user that profiles are being loaded">
          Loading...
        </message>
        <message name="IDS_IMPORT_SUCCEEDED" desc="Status text to notify the user that the import succeeded">
          Success!
        </message>

        <message name="IDS_IMPORT_COMMIT" desc="Text for OK button on dialog">
          Import
        </message>
        <message name="IDS_IMPORT_CHOOSE_FILE" desc="Text for the Choose File on dialog">
          Choose File
        </message>

        <message name="IDS_IMPORT_NO_PROFILE_FOUND" desc="Message displayed when we do not find any supported browser to import from.">
          No supported browser found
        </message>

        <!-- Import progress popup -->
        <if expr="is_macosx">
          <message name="IDS_IMPORT_PROGRESS_TITLE" desc="Title for the importing progress dialog">
            Importing
          </message>
          <message name="IDS_IMPORT_SETTINGS_MENU_MAC" desc="The text label for the Import menu item.">
            Import Bookmarks and Settings...
          </message>
          <message name="IDS_IMPORT_PROGRESS_STATUS_BOOKMARKS" desc="Import status for bookmarks">
            Favorites/Bookmarks
          </message>
          <message name="IDS_IMPORT_PROGRESS_STATUS_SEARCH" desc="Import status for search engines">
            Search settings
          </message>
          <message name="IDS_IMPORT_PROGRESS_STATUS_PASSWORDS" desc="Import status for passwords">
            Saved passwords
          </message>
          <message name="IDS_IMPORT_PROGRESS_STATUS_HISTORY" desc="Import status for history">
            Browsing history
          </message>
        </if> <!-- is_macosx -->
      </if> <!-- not is_android -->

      <if expr="is_macosx">
        <!-- Confirm to quit panel -->
        <message name="IDS_CONFIRM_TO_QUIT_DESCRIPTION" desc="Instructions for how the user should confirm quitting.">
          Hold <ph name="KEY_EQUIVALENT">$1<ex>⌘Q</ex></ph> to Quit.
        </message>
        <message name="IDS_CONFIRM_TO_QUIT_OPTION" desc="The label of the checkbox preference that enables the confirm-to-quit feature.">
          Warn Before Quitting (<ph name="KEY_EQUIVALENT">$1<ex>⌘Q</ex></ph>)
        </message>
      </if>

      <!-- Importer Lock Dialog -->
      <message name="IDS_IMPORTER_LOCK_TITLE" desc="Dialog title for importer lock dialog">
        Close Firefox Before Importing
      </message>
      <message name="IDS_IMPORTER_LOCK_OK" desc="Text for OK button on dialog">
        Continue
      </message>
      <message name="IDS_IMPORTER_LOCK_CANCEL" desc="Text for Cancel button on dialog">
        Skip Import
      </message>

      <if expr="enable_extensions">
        <!-- Feedback Dialog -->
        <message name="IDS_FEEDBACK_REPORT_PAGE_TITLE" desc="Label showing the title of the page that will be reported">
          Tell us what is happening.
        </message>
        <message name="IDS_FEEDBACK_REPORT_URL_LABEL" desc="Label showing the URL that will be reported">
          URL (optional):
        </message>
        <message name="IDS_FEEDBACK_USER_EMAIL_LABEL" desc="Label showing the e-mail address that will be reported">
          Email (optional):
        </message>
        <message name="IDS_FEEDBACK_SCREENSHOT_LABEL" desc="Label for the screenshot field if current screenshots are being shown">
          Include this screenshot:
        </message>
        <message name="IDS_FEEDBACK_INCLUDE_PERFORMANCE_TRACE_CHECKBOX" desc="Checkbox for including system performance data on the bug report dialog box">
          Send performance trace data
        </message>
        <if expr="not chromeos">
          <message name="IDS_FEEDBACK_INCLUDE_SYSTEM_INFORMATION_CHKBOX" desc="Checkbox for including system information on the bug report dialog box">
            Send <ph name="BEGIN_LINK1">&lt;a href="#" id="sys-info-url"&gt;</ph>system information<ph name="END_LINK1">&lt;/a&gt;</ph>
          </message>
        </if>
        <if expr="chromeos">
          <message name="IDS_FEEDBACK_INCLUDE_SYSTEM_INFORMATION_AND_METRICS_CHKBOX" desc="Checkbox for including system information and metrics on the bug report dialog box">
            Send <ph name="BEGIN_LINK1">&lt;a href="#" id="sys-info-url"&gt;</ph>system information<ph name="END_LINK1">&lt;/a&gt;</ph> and <ph name="BEGIN_LINK2">&lt;a href="#" id="histograms-url"&gt;</ph>metrics<ph name="END_LINK2">&lt;/a&gt;</ph>
          </message>
        </if>
        <message name="IDS_FEEDBACK_ATTACH_FILE_NOTE" desc="Text for describing the maximum size for an attached file">
          The attached file is uploaded to Google servers for debugging.
        </message>
        <message name="IDS_FEEDBACK_ATTACH_FILE_LABEL" desc="Text for the label for the attached filename">
          Attach file:
        </message>
        <message name="IDS_FEEDBACK_READING_FILE" desc="Text to display if reading a file when the user clicks the send report button">
          Reading file..
        </message>
        <message name="IDS_FEEDBACK_ATTACH_FILE_TO_BIG" desc="Text to display if the file being attached is too big">
          Selected file is too big (max size: 3mb).
        </message>
        <message name="IDS_FEEDBACK_PRIVACY_NOTE" desc="Text for the privacy note included with Chrome OS">
          Your Chrome and operating system version will be submitted in addition
          to any information you choose to include above. If you include your email
          address, Google may contact you regarding your feedback report. This feedback
          is used to diagnose problems and help improve Chrome. Any personal information
          you submit, whether explicitly or incidentally will be protected in
          accordance with our privacy policies.<ph name="BEGIN_BOLD">&lt;strong&gt;
          </ph> By submitting this feedback, you agree that Google may use feedback
          that you provide to improve any Google product or service.
          <ph name="END_BOLD">&lt;/strong&gt;</ph>
        </message>
        <message name="IDS_FEEDBACK_NO_DESCRIPTION" desc="Message shown when no text is entered before hitting send feedback">
          Please tell us what is happening before sending the feedback.
        </message>
        <message name="IDS_FEEDBACK_SEND_REPORT" desc="Text for OK button of the send feedback dialog">
          Send feedback
        </message>
        <message name="IDS_FEEDBACK_SYSINFO_PAGE_TITLE" desc="The title of the system information preview page">
          System Information Preview
        </message>
        <message name="IDS_FEEDBACK_SYSINFO_PAGE_LOADING" desc="The message showing the status of the system information preview page that it is still loading">
          Loading...
        </message>
      </if>

      <!-- Clear Browsing Data -->
      <message name="IDS_CLEAR_BROWSING_DATA_TITLE" desc="Dialog title">
        Clear browsing data
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_INFO_BAR_TEXT" desc="The text of the infobar that is displayed in the clear browsing data dialog. This infobar remindes users that they can use the incognito mode instead of clearing their browsing data.">
        Psst! Incognito mode (<ph name="INCOGNITO_MODE_SHORTCUT">$1<ex>Shift+Ctrl+N</ex></ph>) may come in handy next time.
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_LABEL" desc="Label at the top of the client area of the dialog, preceding the period combo box">
        Obliterate the following items from:
      </message>
      <message name="IDS_DEL_BROWSING_HISTORY_CHKBOX" desc="Checkbox for deleting Browsing History">
        Browsing history
      </message>
      <message name="IDS_DEL_DOWNLOAD_HISTORY_CHKBOX" desc="Checkbox for deleting Download History">
        Download history
      </message>
      <message name="IDS_DEL_CACHE_CHKBOX" desc="Checkbox for deleting Cache">
        Cached images and files
      </message>
      <message name="IDS_DEL_COOKIES_CHKBOX" desc="Checkbox for deleting Cookies and other site data">
        Cookies and other site data
      </message>
      <message name="IDS_DEL_COOKIES_FLASH_CHKBOX" desc="Checkbox for deleting Cookies and other site data">
        Cookies and other site and plugin data
      </message>
      <message name="IDS_DEL_PASSWORDS_CHKBOX" desc="Checkbox for deleting Passwords">
        Passwords
      </message>
      <message name="IDS_DEL_FORM_DATA_CHKBOX" desc="Checkbox for deleting form data saved for Autofill">
        Autofill form data
      </message>
      <message name="IDS_DEL_HOSTED_APPS_DATA_CHKBOX" desc="Checkbox for deleting data of hosted apps">
        Hosted app data
      </message>
      <message name="IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX" desc="Checkbox for deauthorizing content licenses (DRM videos, etc.)">
        Content licenses
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_COMMIT" desc="Title for OK button on dialog">
        Clear browsing data
      </message>
      <message name="IDS_FLASH_STORAGE_SETTINGS" desc="Link for opening Adobe Flash Player storage settings">
        Adobe Flash Player storage settings...
      </message>
      <message name="IDS_CLEAR_DATA_HOUR" desc="deletion period combo box: hour. In English this finishes the sentence that starts with 'Delete the following items from'.">
        the past hour
      </message>
      <message name="IDS_CLEAR_DATA_DAY" desc="deletion period combo box: day. In English this finishes the sentence that starts with 'Delete the following items from'.">
        the past day
      </message>
      <message name="IDS_CLEAR_DATA_WEEK" desc="deletion period combo box: week. In English this finishes the sentence that starts with 'Delete the following items from'.">
        the past week
      </message>
      <message name="IDS_CLEAR_DATA_4WEEKS" desc="deletion period combo box: 4 weeks. In English this finishes the sentence that starts with 'Delete the following items from'.">
        the last 4 weeks
      </message>
      <message name="IDS_CLEAR_DATA_EVERYTHING" desc="deletion period combo box: everything. In English this finishes the sentence that starts with 'Delete the following items from'.">
        the beginning of time
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_SOME_STUFF_REMAINS" desc="Information that some data may remain even though the user clears their browsing history. The text in '|'s and '#'s will be turned into buttons. The translated text should contain exactly one phrase in '|'s and one in '#'s.">
        Saved |content settings| and #search engines# will not be cleared and may reflect your browsing habits.
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_SOME_STUFF_REMAINS_SIMPLE" desc="A text shown at the bottom of the Clear Browsing Data dialog, informing the user that some data types will not be cleared.">
        Some settings that may reflect browsing habits will not be cleared.
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_SYNCED_DELETION" desc="Information that data which is synced across user's devices will be deleted from all those devices.">
        This clears synced data from all devices.
      </message>
      <message name="IDS_FLAGS_ENABLE_CLEAR_BROWSING_DATA_COUNTERS_NAME" desc="Name of the flag that enables the data volume counters in the Clear browsing data dialog.">
        Enable Clear browsing data counters.
      </message>
      <message name="IDS_FLAGS_ENABLE_CLEAR_BROWSING_DATA_COUNTERS_DESCRIPTION" desc="Description of the flag that enables the data volume counters in the Clear browsing data dialog.">
        Shows data volume counters in the Clear browsing data dialog.
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_CALCULATING" desc="A text that is shown while the data volume is being counted.">
        Calculating...
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_UNKNOWN_SIZE" desc="A text that is shown when the data volume could not be calculated. This string refers to uncountable objects, such as cache.">
        unknown size
      </message>
      <message name="IDS_CLEAR_BROWSING_DATA_UNKNOWN_AMOUNT" desc="A text that is shown when the data volume could not be calculated. This string refers to countable objects, such as history entries or passwords.">
        unknown amount
      </message>
      <message name="IDS_DEL_BROWSING_HISTORY_COUNTER" desc="A counter showing how many items of browsing history the user has.">
        {COUNT, plural,
         =0 {none}
         =1 {1 item}
         other {# items}}
      </message>
      <message name="IDS_DEL_BROWSING_HISTORY_COUNTER_SYNCED" desc="A counter showing the user how many local items of browsing history they have, and informing them that more items might be synced. In the case when COUNT is zero, the counter only mentions existence of synced items.">
        {COUNT, plural,
         =0 {at least 1 item on synced devices}
         =1 {1 item (and more on synced devices)}
         other {# items (and more on synced devices)}}
      </message>
      <message name="IDS_DEL_CACHE_COUNTER_UPPER_ESTIMATE" desc="A counter showing that the user has less than X megabytes of cache. The value X will be substituted.">
        less than <ph name="UPPER_ESTIMATE">$1<ex>328 MB</ex></ph>
      </message>
      <message name="IDS_DEL_CACHE_COUNTER_ALMOST_EMPTY" desc="A counter showing that the user's cache is almost empty, having less than 1 MB of data.">
        less than 1 MB
      </message>
      <message name="IDS_DEL_PASSWORDS_COUNTER" desc="A counter showing how many passwords the user has.">
        {COUNT, plural,
         =0 {none}
         =1 {1}
         other {#}}
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_EMPTY" desc="A counter showing that the user has no form data stored.">
        none
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_CREDIT_CARDS" desc="A counter showing how many credit cards the user has.">
        {COUNT, plural,
         =1 {1 credit card}
         other {# credit cards}}
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_ADDRESSES" desc="A counter showing how many addresses the user has.">
        {COUNT, plural,
         =1 {1 address}
         other {# addresses}}
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS" desc="A counter showing how many form autocompletion suggestions the user has.">
        {COUNT, plural,
         =1 {1 suggestion}
         other {# suggestions}}
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_LONG" desc="A counter showing how many other form autocompletion suggestions the user has. Note that this message is shown at the end of an enumeration of form data types, such as '2 addresses, 5 others suggestions'.">
        {COUNT, plural,
         =1 {1 other suggestion}
         other {# other suggestions}}
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_SHORT" desc="A counter showing how many other items of form data the user has. Note that this message is shown at the end of an enumeration of form data types, such as '3 credit cards, 2 addresses, 5 others'.">
        {COUNT, plural,
         =1 {1 other}
         other {# others}}
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_TWO_TYPES" desc="A counter showing that the user has two types of form data. The types and their counts will be substituted, this message only provides the comma separator.">
        <ph name="TYPE_1">$1<ex>2 credit cards</ex></ph>, <ph name="TYPE_2">$2<ex>1 address</ex></ph>
      </message>
      <message name="IDS_DEL_AUTOFILL_COUNTER_THREE_TYPES" desc="A counter showing that the user has three types of form data. The types and their counts will be substituted, this message only provides the comma separators.">
        <ph name="TYPE_1">$1<ex>2 credit cards</ex></ph>, <ph name="TYPE_2">$2<ex>1 address</ex></ph>, <ph name="TYPE_3">$3<ex>5 others</ex></ph>
      </message>

      <!-- Supervised User (Legacy and Accounts for Kids) Avatar Menu -->
      <message name="IDS_LEGACY_SUPERVISED_USER_INFO" desc="Text which explains that a supervised user is managed by a custodian.">
        Usage and history can be reviewed by the manager (<ph name="CUSTODIAN_EMAIL">$1<ex>Jane.Doe@gmail.com</ex></ph>) on chrome.com.
      </message>
      <message name="IDS_CHILD_INFO_ONE_CUSTODIAN" desc="Text which explains that a child user is managed by a single parent.">
        This is an account for kids managed by <ph name="CUSTODIAN_EMAIL">$1<ex>Jane.Doe@gmail.com</ex></ph>.
      </message>
      <message name="IDS_CHILD_INFO_TWO_CUSTODIANS" desc="Text which explains that a child user is managed by two parents.">
        This is an account for kids managed by <ph name="CUSTODIAN_EMAIL">$1<ex>John.Doe@gmail.com</ex></ph> and <ph name="SECOND_CUSTODIAN_EMAIL">$2<ex>Jane.Doe@gmail.com</ex></ph>.
      </message>
      <message name="IDS_LEGACY_SUPERVISED_USER_AVATAR_LABEL" desc="A label for the supervised user which is used in the avatar menu and as a label in the titlebar.">
        Supervised user
      </message>
      <message name="IDS_LEGACY_SUPERVISED_USER_NEW_AVATAR_LABEL" desc="Label shown in the new avatar menu for a supervised user.">
        <ph name="PROFILE_DISPLAY_NAME">$1<ex>Markus</ex></ph> (Supervised)
      </message>
      <message name="IDS_CHILD_AVATAR_LABEL" desc="Label shown in the new avatar menu for a child user.">
        <ph name="PROFILE_DISPLAY_NAME">$1<ex>Markus</ex></ph> (Account for kids)
      </message>

      <!-- Supervised User Block Interstitial data -->
      <message name="IDS_BLOCK_INTERSTITIAL_TITLE" desc="A title for the supervised-user block interstitial page.">
        Page blocked
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_MESSAGE" desc="A message for the supervised user when they attempt to visit a site that is not permitted by the manager.">
        Oops! You need permission from <ph name="NAME">$1<ex>John Doe</ex></ph> to access this page.
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_MESSAGE_SINGLE_PARENT" desc="A message for the child user when they attempt to visit a site that is not permitted by their parent.">
        Oops! You need to ask your parent if it's OK to visit this page.
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_MESSAGE_MULTI_PARENT" desc="A message for the child user when they attempt to visit a site that is not permitted by their parents.">
        Oops! You need to ask your parents if it's OK to visit this page.
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_MESSAGE_ACCESS_REQUESTS_DISABLED" desc="A message for the supervised user when they attempt to visit a site that is not permitted by the manager (and they can't ask for permission).">
        Oops, looks like you don't have permission to access this page.
      </message>
      <message name="IDS_BACK_BUTTON" desc="A button for going back to the last safe url after being blocked.">
        Go back
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_REQUEST_ACCESS_BUTTON" desc="A button for requesting access to blocked sites.">
        Ask permission
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_ACCESS_BUTTON" desc="A button for requesting access to blocked sites.">
        Ask permission
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE" desc="The text that tells the supervised user that a request has been sent.">
        Your request to access this site has been sent to <ph name="NAME">$1<ex>John Doe</ex></ph>.
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE" desc="The text that tells the supervised user that a request could not be sent.">
        Your request to access this site could not be sent to <ph name="NAME">$1<ex>John Doe</ex></ph>. Please try again.
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE_SINGLE_PARENT" desc="The text that tells the child user that a request has been sent to his/her parent.">
        You asked your parent if it's ok to visit this page.
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE_MULTI_PARENT" desc="The text that tells the child user that a request has been sent to his/her parents.">
        You asked your parents if it's ok to visit this page.
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE_SINGLE_PARENT" desc="The text that tells the child user that a request to his/her parent failed.">
        We could not reach your parent at the moment. Please try again.
      </message>
      <message name="IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE_MULTI_PARENT" desc="The text that tells the child user that a request to his/her parents failed.">
        We could not reach your parents at the moment. Please try again.
      </message>
      <message name="IDS_CHILD_BLOCK_MESSAGE_DEFAULT_SINGLE_PARENT" desc="Message to be shown when a site was blocked due to the default fallback behavior and the child has one parent.">
        You're seeing this message because your parent needs to approve new sites on your first visit.
      </message>
      <message name="IDS_CHILD_BLOCK_MESSAGE_DEFAULT_MULTI_PARENT" desc="Message to be shown when a site was blocked due to the default fallback behavior and the child has two parents.">
        You're seeing this message because your parents need to approve new sites on your first visit.
      </message>
      <message name="IDS_SUPERVISED_USER_BLOCK_MESSAGE_DEFAULT" desc="Message to be show to a supervised user when a site was blocked due to the default fallback behaviour.">
        You're seeing this message because your manager needs to approve new sites on your first visit.
      </message>
      <message name="IDS_SUPERVISED_USER_BLOCK_HEADER_DEFAULT" desc="Header for the message to be shown when a site was blocked due to the default fallback behaviour.">
        Not approved
      </message>
      <message name="IDS_SUPERVISED_USER_BLOCK_MESSAGE_SAFE_SITES" desc="Message to be shown when a site was blocked due to the SafeSites safety check.">
        You're seeing this message because Google SafeSites is enabled.
      </message>
      <message name="IDS_SUPERVISED_USER_BLOCK_HEADER_SAFE_SITES" desc="Header for the message to be shown when a site was blocked due to the SafeSites safety check.">
        SafeSites
      </message>
      <message name="IDS_CHILD_BLOCK_MESSAGE_MANUAL_SINGLE_PARENT" desc="Message to be shown to a child when a site was blocked due to a manual blacklist entry and the child has one parent.">
        You're seeing this message because your parent blocked this site.
      </message>
      <message name="IDS_CHILD_BLOCK_MESSAGE_MANUAL_MULTI_PARENT" desc="Message to be shown to a child when a site was blocked due to a manual blacklist entry and the child has two parents.">
        You're seeing this message because one of your parents blocked this site.
      </message>
      <message name="IDS_SUPERVISED_USER_BLOCK_MESSAGE_MANUAL" desc="Message to be shown to a supervised user when a site is blocked due to a manual blacklist entry">
        You're seeing this message because your manager blocked this site.
      </message>
      <message name="IDS_SUPERVISED_USER_BLOCK_HEADER_MANUAL" desc="Header for the message to be shown when a site was blocked due to a manual blacklist entry.">
        Blocked
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_SEND_FEEDBACK" desc="The text for a link to submit feedback about a blocked site.">
        Was this unexpected? Tell us about it!
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_SHOW_DETAILS" desc="The text for the link to show details about the interstitial.">
        Details
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_HIDE_DETAILS" desc="The text for the link to hide details about the interstitial.">
        Hide details
      </message>
      <message name="IDS_BLOCK_INTERSTITIAL_DEFAULT_FEEDBACK_TEXT" desc="The default text for feedback about a blocked site.">
        <ph name="REASON">$1<ex>This site was blocked due to the SafeSites filter.</ex></ph>
I don't think this site should be blocked!
      </message>

      <message name="IDS_SECURE_CONNECTION_EV" desc="Short text shown in the location bar when the connection is secure with an EV cert.">
        <ph name="ORGANIZATION">$1<ex>Paypal Inc.</ex></ph> [<ph name="COUNTRY">$2<ex>US</ex></ph>]
      </message>

      <!-- Content Settings dialog data -->
      <message name="IDS_CONTENT_SETTINGS_TITLE" desc="Title for content settings dialog">
        Content settings
      </message>
      <message name="IDS_COOKIES_TAB_LABEL" desc="Label for Cookies tab on Content Settings dialog">
        Cookies
      </message>
      <message name="IDS_COOKIES_HEADER" desc="Header for cookie exception management page on Content Settings dialog">
        Cookie and site data exceptions
      </message>
      <message name="IDS_COOKIES_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing cookies and other site data to be stored on your computer.">
        Allow local data to be set (recommended)
      </message>
      <message name="IDS_COOKIES_SESSION_ONLY_RADIO" desc="A radio button in the Content Settings dialog for allowing cookies and other site data for the current session only.">
        Keep local data only until you quit your browser
      </message>
      <message name="IDS_COOKIES_BLOCK_RADIO" desc="A radio button in the Content Settings dialog for blocking cookies and other site data from being stored on your computer.">
        Block sites from setting any data
      </message>
      <message name="IDS_COOKIES_BLOCK_3RDPARTY_CHKBOX" desc="A checkbox in the Content Settings dialog for blocking all 3rd party cookies.">
        Block third-party cookies and site data
      </message>
      <message name="IDS_MEDIA_STREAM_MIC_TAB_LABEL" desc="Label for the microphone tab on Content Settings dialog">
        Microphone
      </message>
      <message name="IDS_MEDIA_STREAM_CAMERA_TAB_LABEL" desc="Label for the camera tab on Content Settings dialog">
        Camera
      </message>
      <message name="IDS_MEDIA_STREAM_MIC_HEADER" desc="Header for microphone exception management page on Content Settings dialog">
        Microphone exceptions
      </message>
      <message name="IDS_MEDIA_STREAM_CAMERA_HEADER" desc="Header for camera exception management page on Content Settings dialog">
        Camera exceptions
      </message>
      <message name="IDS_MEDIA_STREAM_BLOCK_RADIO" desc="A radio button in Content Settings dialog to deny all sites to access any capture device.">
        Do not allow sites to access your camera and microphone
      </message>
      <message name="IDS_MEDIA_STREAM_ASK_RADIO" desc="A radio button in Content Settings dialog to allow site to query the permision to access capture devices.">
        Ask when a site requires access to your camera and microphone (recommended)
      </message>
      <message name="IDS_MEDIA_STREAM_BLOCK_AUDIO_ONLY_RADIO" desc="A radio button in Content Settings dialog to deny all sites to access audio capture device.">
        Do not allow sites to access your microphone
      </message>
      <message name="IDS_MEDIA_STREAM_ASK_AUDIO_ONLY_RADIO" desc="A radio button in Content Settings dialog to allow site to query the permision to access audio capture devices.">
        Ask when a site requires access to your microphone (recommended)
      </message>
      <message name="IDS_MEDIA_STREAM_BLOCK_VIDEO_ONLY_RADIO" desc="A radio button in Content Settings dialog to deny all sites to access video capture device.">
        Do not allow sites to access your camera
      </message>
      <message name="IDS_MEDIA_STREAM_ASK_VIDEO_ONLY_RADIO" desc="A radio button in Content Settings dialog to allow site to query the permision to access video capture devices.">
        Ask when a site requires access to your camera (recommended)
      </message>
      <message name="IDS_MEDIA_STREAM_AUDIO_MANAGED" desc="A notification bubble shown if the access to audio capture devices is controlled through policy.">
        Access to your microphone is controlled by your administrator.
      </message>
      <message name="IDS_MEDIA_STREAM_VIDEO_MANAGED" desc="A notification bubble shown if the access to video capture devices is controlled through policy.">
        Access to your camera is controlled by your administrator.
      </message>
      <message name="IDS_MEDIA_SELECTED_MIC_LABEL" desc="The label of the 'microphone device' select menu">
        Microphone:
      </message>
      <message name="IDS_MEDIA_SELECTED_CAMERA_LABEL" desc="The label of the 'camera device' select menu">
        Camera:
      </message>
      <message name="IDS_MEDIA_MENU_NO_DEVICE_TITLE" desc="The title of the media select menu if there is no microphone or camera available on the machine">
        None available
      </message>
      <message name="IDS_MEDIA_PEPPER_FLASH_MIC_DEFAULT_DIVERGED_LABEL" desc="The label in Content Settings dialog informing that Pepper Flash uses different default permission for microphone than the default media permission.">
        Adobe Flash Player microphone settings are different.
      </message>
      <message name="IDS_MEDIA_PEPPER_FLASH_CAMERA_DEFAULT_DIVERGED_LABEL" desc="The label in Content Settings dialog informing that Pepper Flash uses different default permission for camera than the default media permission.">
        Adobe Flash Player camera settings are different.
      </message>
      <message name="IDS_MEDIA_PEPPER_FLASH_MIC_EXCEPTIONS_DIVERGED_LABEL" desc="The label in the media device exception management page informing that Pepper Flash uses different exceptions for microphone than the ones listed on the page.">
        Adobe Flash Player microphone exceptions are different.
      </message>
      <message name="IDS_MEDIA_PEPPER_FLASH_CAMERA_EXCEPTIONS_DIVERGED_LABEL" desc="The label in the media device exception management page informing that Pepper Flash uses different exceptions for camera than the ones listed on the page.">
        Adobe Flash Player camera exceptions are different.
      </message>
      <message name="IDS_MEDIA_PEPPER_FLASH_CHANGE_LINK" desc="The link to change Pepper Flash camera and microphone settings.">
        Change
      </message>
      <message name="IDS_CONTENT_SETTING_CHANGED_INFOBAR_BUTTON" desc="The string used in the infobar button allowing the user to reload the page directly from the infobar.">
        Reload
      </message>

      <message name="IDS_IMAGES_TAB_LABEL" desc="Label for Images tab on Content Settings dialog">
        Images
      </message>
      <message name="IDS_IMAGES_HEADER" desc="Header for image exception management page on Content Settings dialog">
        Image exceptions
      </message>
      <message name="IDS_IMAGES_LOAD_RADIO" desc="A radio button in the Content Settings dialog for allowing all images to be loaded.">
        Show all images (recommended)
      </message>
      <message name="IDS_IMAGES_NOLOAD_RADIO" desc="A radio button in the Content Settings dialog for preventing loading any image.">
        Do not show any images
      </message>
      <message name="IDS_POPUP_TAB_LABEL" desc="Label for Pop-up Windows tab on Content Settings dialog">
        Pop-ups
      </message>
      <message name="IDS_POPUP_HEADER" desc="Header for popup exception management page on Content Settings dialog">
        Pop-up exceptions
      </message>
      <message name="IDS_POPUP_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing pop-up windows in the browser.">
        Allow all sites to show pop-ups
      </message>
      <message name="IDS_POPUP_BLOCK_RADIO" desc="A radio button in the Content Settings dialog for preventing showing pop-up windows on any sites.">
        Do not allow any site to show pop-ups (recommended)
      </message>
      <if expr="is_android">
        <message name="IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW" desc="Pop-up Blocking Show Button [CHAR-LIMIT=32]">
          Always show
        </message>
        <message name="IDS_POPUPS_BLOCKED_INFOBAR_TEXT" desc="Pop-up Blocking Title [CHAR-LIMIT=32]">
          Pop-ups blocked (<ph name="POP_UP_COUNT">$1<ex>3</ex></ph>)
        </message>
      </if>
      <message name="IDS_PLUGIN_TAB_LABEL" desc="Label for Plugins tab on Content Settings dialog">
        Plugins
      </message>
      <message name="IDS_PLUGIN_HEADER" desc="Header for plugin exception management page on Content Settings dialog">
        Plugin exceptions
      </message>
      <message name="IDS_PLUGIN_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing plugins use on any site.">
        Run all plugin content
      </message>
      <message name="IDS_PLUGIN_DETECT_RECOMMENDED_RADIO" desc="A radio button in the Content Settings dialog for detecting and running important plugin content only. This is the behavior Chrome recommends.">
        Detect and run important plugin content (recommended)
      </message>
      <message name="IDS_PLUGIN_BLOCK_RADIO" desc="A radio button in the Content Settings dialog for gating plugins on a context menu activation.">
        Let me choose when to run plugin content
      </message>
      <message name="IDS_PLUGIN_MANAGE_INDIVIDUAL" desc="Link to manage individual plugins">
        Manage individual plugins...
      </message>
      <message name="IDS_JAVASCRIPT_TAB_LABEL" desc="Label for JavaScript tab on Content Settings dialog">
        JavaScript
      </message>
      <message name="IDS_JAVASCRIPT_HEADER" desc="Label for JavaScript exception management page on Content Settings dialog">
        JavaScript exceptions
      </message>
      <message name="IDS_JS_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing JavaScript use on any site.">
        Allow all sites to run JavaScript (recommended)
      </message>
      <message name="IDS_JS_DONOTALLOW_RADIO" desc="A radio button in the Content Settings dialog for preventing JavaScript use on any site.">
        Do not allow any site to run JavaScript
      </message>
      <message name="IDS_KEYGEN_TAB_LABEL" desc="Label for key generation tab on Content Settings dialog">
        Key generation
      </message>
      <message name="IDS_KEYGEN_HEADER" desc="Label for key generation exception management page on Content Settings dialog">
        Key generation exceptions
      </message>
      <message name="IDS_KEYGEN_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing forms to use key generation on any site.">
        Allow all sites to use key generation in forms.
      </message>
      <message name="IDS_KEYGEN_DONOTALLOW_RADIO" desc="A radio button in the Content Settings dialog for preventing forms from using key generation on any site.">
        Do not allow any site to use key generation in forms (recommended)
      </message>
      <message name="IDS_HANDLERS_TAB_LABEL" desc="Label for Handlers tab on Content Settings dialog">
        Handlers
      </message>
      <message name="IDS_HANDLERS_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing sites to register themselves as handlers for protocols.">
        Allow sites to ask to become default handlers for protocols (recommended)
      </message>
      <message name="IDS_HANDLERS_DONOTALLOW_RADIO" desc="A radio button in the Content Settings dialog for preventing sites from registering themselves as handlers for protocols.">
        Do not allow any site to handle protocols
      </message>
    <message name="IDS_HANDLERS_BUBBLE_MANAGE_LINK" desc="Link on the register protocol handler bubble that opens up the Content Settings management dialog.">
      Manage handler settings...
    </message>
    <message name="IDS_HANDLERS_TYPE_COLUMN_HEADER" desc="Header on the settings page for the column showing handler protocols.">
        Type
    </message>
    <message name="IDS_HANDLERS_SITE_COLUMN_HEADER" desc="Header on the settings page for the column showing handler sites.">
        Site
    </message>
    <message name="IDS_HANDLERS_REMOVE_HANDLER_LINK" desc="Text on the link that removes a registered protocol handler from a user's settings.">
        remove this site
    </message>
    <message name="IDS_HANDLERS_NONE_HANDLER" desc="Text in the dropdown for handlers for a given protocol that indicates that the protocol shouldn't be handled.">
        (none)
    </message>
    <message name="IDS_HANDLERS_ACTIVE_HEADING" desc="Header for the section of the handlers settings page that lists handlers that are active, that is, can be used to handle links.">
        Active protocol handlers
    </message>
    <message name="IDS_HANDLERS_IGNORED_HEADING" desc="Header for the section of the handlers settings page that lists handlers that are ignored.">
        Ignored protocol handlers
    </message>

    <message name="IDS_HANDLER_OPTIONS_WINDOW_TITLE" desc="The title of the window that lets a user change what handlers they have registered for various protocols / mimetypes.">
      Protocol handlers
    </message>
      <message name="IDS_GEOLOCATION_TAB_LABEL" desc="Label for Geolocation tab on Content Settings dialog">
        Location
      </message>
      <message name="IDS_GEOLOCATION_HEADER" desc="Label for Geolocation exception management page on Content Settings dialog">
        Geolocation exceptions
      </message>
      <message name="IDS_GEOLOCATION_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing all sites access to geolocation data.">
        Allow all sites to track your physical location
      </message>
      <message name="IDS_GEOLOCATION_ASK_RADIO" desc="A radio button in the Content Settings dialog for asking before allowing sites access to gelocation data.">
        Ask when a site tries to track your physical location (recommended)
      </message>
      <message name="IDS_GEOLOCATION_BLOCK_RADIO" desc="A radio button in the Content Settings dialog for blocking sites from accessing geolocation data.">
        Do not allow any site to track your physical location
      </message>
      <message name="IDS_GEOLOCATION_GOOGLE_ACCESS_ENABLE_CHKBOX" desc="The label of the 'Allow Google services to access your location' checkbox">
        Allow Google services to access your location
      </message>
      <message name="IDS_GEOLOCATION_SET_BY_HOVER" desc="Hover text for URL in a list of exceptions, preceding the name of the granting hosted app.">
        Set by app:
      </message>
      <message name="IDS_NOTIFICATIONS_TAB_LABEL" desc="Label for Notifications tab on Content Settings dialog">
        Notifications
      </message>
      <message name="IDS_NOTIFICATIONS_HEADER" desc="Label for Notifications exception management page on Content Settings dialog">
        Notifications exceptions
      </message>
      <message name="IDS_NOTIFICATIONS_ALLOW_RADIO" desc="A radio button in Content Settings dialog to allow all sites to show notifications.">
        Allow all sites to show notifications
      </message>
      <message name="IDS_NOTIFICATIONS_BLOCK_RADIO" desc="A radio button in Content Settings dialog to deny all sites to show notifications.">
        Do not allow any site to show notifications
      </message>
      <message name="IDS_NOTIFICATIONS_ASK_RADIO" desc="A radio button in Content Settings dialog to configure notifications per-site.">
        Ask when a site wants to show notifications (recommended)
      </message>
      <message name="IDS_NOTIFICATIONS_NATIVE_FLAG" desc="Name of the flag to enable native notifications.">
        Enable native notifications.
      </message>
      <message name="IDS_NOTIFICATIONS_NATIVE_FLAG_DESCRIPTION" desc="Description of the flag to enable native notifications.">
        Enable support for using the native notification toasts and notification center on platforms where these are available.
      </message>
      <message name="IDS_FULLSCREEN_TAB_LABEL" desc="Label for Fullscreen tab on Content Settings dialog">
        Fullscreen
      </message>
      <message name="IDS_FULLSCREEN_HEADER" desc="Header for fullscreen exception management page on Content Settings dialog">
        Fullscreen exceptions
      </message>
      <message name="IDS_EXCEPTIONS_PATTERN_HEADER" desc="A column header for the pattern column of the cookie/image/javascript/plugins exceptions dialog">
        Hostname pattern
      </message>
      <message name="IDS_EXCEPTIONS_ACTION_HEADER" desc="A column header for the action column of the cookie/image/javascript/plugins exceptions dialog">
        Behavior
      </message>
      <message name="IDS_EXCEPTIONS_USB_DEVICE_HEADER" desc="A column headers for the exceptions dialog indicating the name of a device the page has access to (e.g. 'Nexus 5')">
        Device
      </message>
      <message name="IDS_EXCEPTIONS_ZOOM_HEADER" desc="A column header for the exceptions dialog indicating the zoom level of pages (e.g. 110% magnification)">
        Zoom
      </message>
      <message name="IDS_EXCEPTIONS_ALLOW_BUTTON" desc="A label to display in the exception page's action column when a site's content setting is allowed for a given domain">
        Allow
      </message>
      <message name="IDS_EXCEPTIONS_BLOCK_BUTTON" desc="A label to display in the exception page's action column when a site's content setting is blocked for a given domain.">
        Block
      </message>
      <message name="IDS_EXCEPTIONS_ASK_BUTTON" desc="A label to display in the exception page's action column when a site's content setting is set to prompt for a given domain.">
        Ask
      </message>
      <message name="IDS_EXCEPTIONS_SESSION_ONLY_BUTTON" desc="A label to display in the exception page's action column when a site's content setting is allow but only for the duration of the session for a given domain.">
        Clear on exit
      </message>
      <message name="IDS_EXCEPTIONS_DETECT_IMPORTANT_CONTENT_BUTTON" desc="A label to display in the exception page's action column when only important content is allowed.">
        Detect content
      </message>
      <message name="IDS_EXCEPTIONS_OTR_LABEL" desc="A label informing the user that the table below the label shows incognito-only exceptions">
        Exceptions below only apply to the current incognito session.
      </message>
      <message name="IDS_EXCEPTIONS_ADD_NEW_INSTRUCTIONS" desc="Placeholder text before the user adds a new exception" >
        [*.]example.com
      </message>
      <message name="IDS_EXCEPTIONS_GEOLOCATION_EMBEDDED_ON_HOST" desc="Template text for a child row in the Geolocation Exceptions page view. Controls the permission setting for the parent page when embedded on the specified site.">
        embedded on <ph name="URL">$1<ex>www.google.com</ex></ph>
      </message>
      <message name="IDS_MOUSE_LOCK_TAB_LABEL" desc="Label for Mouse Lock tab on Content Settings dialog">
        Mouse cursor
      </message>
      <message name="IDS_MOUSE_LOCK_HEADER" desc="Label for Mouse Lock exception management page on Content Settings dialog">
        Mouse cursor exceptions
      </message>
      <message name="IDS_MOUSE_LOCK_ALLOW_RADIO" desc="A radio button in the Content Settings dialog for allowing all sites ability to disable the mouse cursor.">
        Allow all sites to disable the mouse cursor
      </message>
      <message name="IDS_MOUSE_LOCK_ASK_RADIO" desc="A radio button in the Content Settings dialog for asking before allowing sites to disable the mouse cursor.">
        Ask when a site tries to disable the mouse cursor (recommended)
      </message>
      <message name="IDS_MOUSE_LOCK_BLOCK_RADIO" desc="A radio button in the Content Settings dialog for blocking all sites ability to disable the mouse cursor.">
        Do not allow any site to disable the mouse cursor
      </message>
      <if expr="chromeos or is_win">
        <message name="IDS_PROTECTED_CONTENT_TAB_LABEL" desc="Label for the Protected Content tab on the Content Settings dialog.">
          Protected content
        </message>
        <message name="IDS_PROTECTED_CONTENT_INFO" desc="Text that is displayed on the Protected Content tab of the Content Settings dialog. This text explains that enabling protected content may require using a uniquely identifiable machine identifier.">
          Some content services use machine identifiers to uniquely identify you for the purposes of authorizing access to protected content.
        </message>
        <message name="IDS_PROTECTED_CONTENT_ENABLE" desc="The label of the checkbox for enabling protected content.">
          Allow identifiers for protected content (computer restart may be required)
        </message>
        <message name="IDS_PROTECTED_CONTENT_HEADER" desc="Text label for the managing exceptions of Protected Content.">
          Protected content exceptions
        </message>
      </if>
      <message name="IDS_PPAPI_BROKER_TAB_LABEL" desc="Label for PPAPI broker tab on Content Settings dialog">
        Unsandboxed plugin access
      </message>
      <message name="IDS_PPAPI_BROKER_HEADER" desc="Label for PPAPI broker tab exception management page on Content Settings dialog">
        Unsandboxed plugin access exceptions
      </message>
      <message name="IDS_PPAPI_BROKER_ALLOW_RADIO" desc="A radio button in Content Settings dialog to allow all sites to access the PPAPI broker.">
        Allow all sites to use a plugin to access your computer
      </message>
      <message name="IDS_PPAPI_BROKER_BLOCK_RADIO" desc="A radio button in Content Settings dialog to deny all sites to access the PPAPI broker.">
        Do not allow any sites to use a plugin to access your computer
      </message>
      <message name="IDS_PPAPI_BROKER_ASK_RADIO" desc="A radio button in Content Settings dialog to allow site to query the permision to access the PPAPI broker.">
        Ask when a site wants to use a plugin to access your computer (recommended)
      </message>

      <message name="IDS_EXCEPTIONS_MANAGE" desc="The label on the button that launches the exceptions management page for a given content type">
        Manage exceptions...
      </message>
      <message name="IDS_COOKIES_SHOW_COOKIES_BUTTON" desc="A button in the Content Settings dialog for showing cookies and other stored site data.">
        All cookies and site data...
      </message>
      <message name="IDS_HANDLERS_MANAGE" desc="The label on the button that launches the exceptions management page for a given content type">
        Manage handlers...
      </message>

      <message name="IDS_USB_DEVICES_HEADER_AND_TAB_LABEL" desc="Label for USB devices tab and a header on the Content Settings dialog (a page may be granted permission to connect to individual USB devices).">
        USB Devices
      </message>
      <message name="IDS_USB_DEVICES_MANAGE_BUTTON" desc="Button on the Content Settings dialog that opens a dialog to manage USB devices pages have permission to connect to.">
        Manage...
      </message>

      <message name="IDS_ZOOMLEVELS_HEADER_AND_TAB_LABEL" desc="Label for Zoom Level tab and a header the on Content Settings dialog (zoom levels indicate that a page should be shown for example at 110% magnification).">
        Zoom Levels
      </message>
      <message name="IDS_ZOOMLEVELS_CHROME_ERROR_PAGES_LABEL" desc="Label for zoom level list entry for Chrome error pages.">
        (Chrome error pages)
      </message>
      <message name="IDS_ZOOMLEVELS_MANAGE_BUTTON" desc="Button on the Content Settings dialog that opens a dialog to manage your page zoom levels (zoom levels indicate that a page should be shown for example at 110% magnification).">
        Manage...
      </message>

      <!-- Automatic updates -->
      <if expr="is_macosx">
        <message name="IDS_PROMOTE_INFOBAR_TEXT" desc="The text to show in the automatic update setup info bar.  Mac-only.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> may not be able to keep itself updated.
        </message>
        <message name="IDS_PROMOTE_INFOBAR_PROMOTE_BUTTON" desc="The 'Set up automatic updates' button in the automatic update setup info bar.  Mac-only.">
          Set up automatic updates
        </message>
        <message name="IDS_PROMOTE_INFOBAR_DONT_ASK_BUTTON" desc="The 'Don't ask again' button in the automatic update setup info bar.  Mac-only.">
          Don't ask again
        </message>
        <message name="IDS_PROMOTE_AUTHENTICATION_PROMPT" desc="The prompt displayed in the authentication dialog when setting up automatic updates for all users.  The system will add a sentence asking for an administrator's name and password.  Mac-only.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will set up automatic updates for all users of this computer.
        </message>
      </if>

      <!-- About Chrome View -->
      <if expr="is_macosx">
        <message name="IDS_ABOUT_CHROME_PROMOTE_UPDATER" desc="The 'Set Up Automatic Updates for All Users' button in the About window.  Mac-only.">
          Set Up Automatic Updates for All Users
        </message>
      </if>
      <message name="IDS_UPGRADE_CHECK_STARTED" desc="Status label: About to start checking for updates">
        Checking for updates...
      </message>
      <if expr="is_win or is_macosx">
        <message name="IDS_UPGRADE_ERROR" desc="Status label: Error occurred during upgrade">
          Update failed (error: <ph name="ERROR_NUMBER">$1<ex>1</ex></ph>)
        </message>
      </if>
      <if expr="is_win or chromeos">
        <message name="IDS_UPGRADE_DISABLED_BY_POLICY" desc="Status label: Upgrades disabled by policy">
          Updates are disabled by your administrator.
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_UPGRADE_DISABLED_BY_POLICY_MANUAL" desc="Status label: Manual upgrades disabled by policy, automatic upgrades ok">
          Automatic updates are enabled. Manual updates are disabled by your administrator.
        </message>
      </if>
      <message name="IDS_REPORT_AN_ISSUE" desc="Text of the button which allows the user to report an issue with Chrome.">
        Report an issue
      </message>

      <!-- settings reset bubble messages -->
      <message name="IDS_RESETTING" desc="Text for the button, once the user clicked to reset settings.">
        Resetting...
      </message>
      <message name="IDS_NO_THANKS" desc="Text for the button the user clicks to refuse settings reset.">
        No thanks
      </message>
      <if expr="use_titlecase">
        <message name="IDS_RESET_SETTINGS_MENU_ITEM" desc="In Title Case: Text for the Chrome menu option replacing Update required.">
          Reset Altered <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> Settings
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_RESET_SETTINGS_MENU_ITEM" desc="Text for the Chrome menu option replacing Update required.">
          Reset altered <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> settings
        </message>
      </if>
      <message name="IDS_RESET_BUBBLE_TITLE" desc="Text for the title of the settings reset bubble view.">
        Reset altered <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> settings?
      </message>
      <message name="IDS_RESET_BUBBLE_TEXT" desc="Text for the settings reset bubble view full description.">
        <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> detected that your browser settings may have been changed without your knowledge. Would you like to reset them to their original defaults?
      </message>

      <!-- SRT bubble messages -->
      <message name="IDS_SRT_BUBBLE_DOWNLOAD_BUTTON_TEXT" desc="Download button of the Chrome Cleanup Tool bubble">
        Get the Chrome Cleanup Tool
      </message>
      <message name="IDS_SRT_BUBBLE_DISMISS" desc="Dismiss button text of the Chrome Cleanup Tool bubble">
        Dismiss
      </message>
      <message name="IDS_SRT_BUBBLE_RUN_BUTTON_TEXT" desc="Run button of the Chrome Cleanup Tool bubble">
        Run Chrome Cleanup Tool
      </message>
      <message name="IDS_SRT_BUBBLE_TEXT" desc="Text for the Chrome Cleanup Tool bubble view full description.">
          Is Chrome crashing, showing unusual startup pages, toolbars, or unexpected ads you can't get rid of, or otherwise changing your browsing experience? You may be able to fix the problem by running the Chrome Cleanup Tool.
      </message>
      <message name="IDS_SRT_BUBBLE_TEXT_WITH_UWS_NAME" desc="Text for the Chrome Cleanup Tool bubble view stating that a single piece of Unwanted Software was found.">
          Chrome found an unwanted program (<ph name="UWS_NAME">$1<ex>SoftwareName</ex></ph>) installed on your computer. You may be able to remove it by running the Chrome Cleanup Tool.
      </message>
      <message name="IDS_SRT_BUBBLE_TEXT_WITH_UWS_NAMES" desc="Text for the Chrome Cleanup Tool bubble view stating that two or more pieces of Unwanted Software were found.">
          Chrome found <ph name="NUMBER_OF_UWS_GREATER_THAN_ONE">$1<ex>3</ex></ph> unwanted programs (<ph name="IDS_SRT_BUBBLE_TEXT_2_UWS_NAMES">$1<ex>Software1 and Software2</ex></ph>) installed on your computer. You may be able to remove these programs by running the Chrome Cleanup Tool.
      </message>
      <message name="IDS_SRT_BUBBLE_TEXT_2_UWS_NAMES" desc="Text to put within IDS_SRT_BUBBLE_TEXT_WITH_UWS_NAME when there are 2 UwS found, e.g., Software1 and Software2.">
          <ph name="UWS_NAME">$1<ex>SoftwareName</ex></ph> and <ph name="UWS_NAME">$2<ex>Software2</ex></ph>
      </message>
      <message name="IDS_SRT_BUBBLE_TEXT_1_MORE_UWS_NAME" desc="Text to replace IDS_SRT_BUBBLE_TEXT_2_UWS_NAMES above when there are 3 found unwanted software, e.g., Software1, Software2, and one more.">
          <ph name="UWS_NAME">$1<ex>Software1</ex></ph>, <ph name="UWS_NAME">$2<ex>Software2</ex></ph>, and one more
      </message>
      <message name="IDS_SRT_BUBBLE_TEXT_MORE_UWS_NAMES" desc="Text to replace IDS_SRT_BUBBLE_TEXT_2_UWS_NAMES above when there are more than 2 found unwanted software, e.g., Software1, Software2, and 3 others.">
          <ph name="UWS_NAME">$1<ex>Software1</ex></ph>, <ph name="UWS_NAME">$2<ex>Software2</ex></ph>, and <ph name="NUMBER_OF_UWS_GREATER_THAN_ONE">$1<ex>3</ex></ph> others
      </message>
      <if expr="use_titlecase">
        <message name="IDS_SRT_MENU_ITEM" desc="In Title Case: Text for the Chrome menu option to be shown when unusual behavior was detected.">
          Unusual Behavior Detected
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_SRT_MENU_ITEM" desc="Text for the Chrome menu option to be shown when unusual behavior was detected.">
          Unusual behavior detected
        </message>
      </if>

      <!-- Upgrade bubble messages -->
      <message name="IDS_REENABLE_UPDATES" desc="Text for the button the user clicks to re-enable automatic updates.">
        Enable autoupdate
      </message>
      <message name="IDS_LATER" desc="Text for the button the user clicks to be reminded of reinstalling the app later.">
        Later
      </message>

      <!-- Print -->
      <message name="IDS_DEFAULT_PRINT_DOCUMENT_TITLE" desc="Default title for a print document">
        Untitled Document
      </message>
      <message name="IDS_PRINT_SPOOL_FAILED_TITLE_TEXT" desc="Title of a message box when printing fails because of printer issues.">
        Print Failed
      </message>
      <message name="IDS_PRINT_SPOOL_FAILED_ERROR_TEXT" desc="Text in a messagebox when printing fails because of printer issues.">
        Something went wrong when trying to print.  Please check your printer and try again.
      </message>

      <!-- Cloud Print proxy strings -->
      <message name="IDS_CLOUD_PRINT_CHROMEOS_OPTION_LABEL" desc="Label for the cloud print section of the Chrome OS advanced options dialog.">
        Set up or manage printers in <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph>.
      </message>
      <message name="IDS_CLOUD_PRINT_REGISTER_PRINTER_FAILED" desc="Status message to be sent to the server when we failed to retrieve information about a printer to register.">
        An error occurred while retrieving printer capabilities for printer <ph name="PRINTER_NAME">$1<ex>HP Laserjet 7900</ex></ph>. This printer could not be registered with <ph name="CLOUD_PRINT_NAME">$2<ex>Google Cloud Print</ex></ph>.
      </message>
      <message name="IDS_CLOUD_PRINT_ZOMBIE_PRINTER" desc="Status message to be sent to the server when we get a notification for a printer that we can't find locally.">
        Received a notification for an unknown printer.
      </message>
      <message name="IDS_CLOUD_PRINT_ENUM_FAILED" desc="Status message to be sent to the Cloud Print server when enumerating printers failed.">
        There was a problem listing printers. Some of your printers may not have registered successfully with <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph>.
      </message>
      <message name="IDS_SERVICE_CRASH_RECOVERY_CONTENT" desc="Text content telling the user the service process has crashed.">
        The <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph> connector process has crashed. Restart?
      </message>

      <!-- Print Preview -->
      <if expr="enable_printing">
        <message name="IDS_PRINT_INVALID_PRINTER_SETTINGS" desc="Message to display when selected printer is not reachable or its settings are invalid.">
          The selected printer is not available or not installed correctly.  Check your printer or try selecting another printer.
        </message>
      </if>
      <if expr="enable_print_preview">
        <message name="IDS_PRINT_PREVIEW_TITLE" desc="Fallback title for print preview page.">
          Print
        </message>
        <if expr="chromeos">
          <message name="IDS_PRINT_PREVIEW_GOOGLE_CLOUD_PRINT_TITLE" desc="Fallback title for print preview page on Chrome OS.">
            Google Cloud Print
          </message>
        </if>
        <message name="IDS_PRINT_PREVIEW_LOADING" desc="Message to display while the print preview is still loading.">
          Loading preview
        </message>
        <message name="IDS_PRINT_PREVIEW_FAILED" desc="Message to display when print preview fails.">
          Print preview failed.
        </message>
        <message name="IDS_PRINT_PREVIEW_PRINT_BUTTON" desc="Print button.">
          Print
        </message>
        <message name="IDS_PRINT_PREVIEW_SAVE_BUTTON" desc="Save button.">
          Save
        </message>
        <message name="IDS_PRINT_PREVIEW_PRINTING" desc="Text shown after the user clicks on the print button and before the print preview tab is closed to let him know that printing is in progress.">
          Printing...
        </message>
        <message name="IDS_PRINT_PREVIEW_PRINTING_TO_PDF_IN_PROGRESS" desc="Text shown after the user clicks on the print/save button while Save To PDF is selected, but the PDF file is not ready yet.">
          Saving to PDF in progress
        </message>
        <if expr="is_macosx">
          <message name="IDS_PRINT_PREVIEW_OPENING_PDF_IN_PREVIEW" desc="Text shown after the user clicks on the open pdf in preview button while the pdf file is not ready yet.">
          Opening PDF in Preview
          </message>
        </if>
        <message name="IDS_PRINT_PREVIEW_OPTION_ALL_PAGES" desc="Option to print all pages.">
          All
        </message>
        <message name="IDS_PRINT_PREVIEW_DESTINATION_LABEL" desc="Destination option label. It is displayed right on top of the available printers list.">
          Destination
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_BW" desc="Option to print in black and white.">
          Black and white
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_COLLATE" desc="Option to collate multiple copies.">
          Collate
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_COLOR" desc="Option to print in color.">
          Color
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_LANDSCAPE" desc="Option to print in landscape mode.">
          Landscape
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_PORTRAIT" desc="Option to print in portrait mode.">
          Portrait
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_TWO_SIDED" desc="Option to do two-sided (duplex) printing.">
          Two-sided
        </message>
        <message name="IDS_PRINT_PREVIEW_PAGES_LABEL" desc="Page range option label.">
          Pages
        </message>
        <message name="IDS_PRINT_PREVIEW_LAYOUT_LABEL" desc="Layout option label.">
          Layout
        </message>
        <message name="IDS_PRINT_PREVIEW_COPIES_LABEL" desc="Copies option label.">
          Copies
        </message>
        <message name="IDS_PRINT_PREVIEW_EXAMPLE_PAGE_RANGE_TEXT" desc="Example page range text.">
          e.g. 1-5, 8, 11-13
        </message>
        <message name="IDS_PRINT_PREVIEW_PAGE_RANGE_TEXT" desc="Aria-label page range text.">
          page range text box
        </message>
        <message name="IDS_PRINT_PREVIEW_PAGE_RANGE_RADIO" desc="Aria-label page range radio.">
          page range radio button
        </message>
        <message name="IDS_PRINT_PREVIEW_PRINT_TO_PDF"
                 desc="Option shown on printer drop-down list for saving previewed document as a PDF.">
          Save as PDF
        </message>
        <message name="IDS_PRINT_PREVIEW_PRINT_WITH_CLOUD_PRINT_WAIT"
            desc="Message shown in the print preview page after choosing cloud print before the dialog displays">
          Loading <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph>
        </message>
        <message name="IDS_PRINT_PREVIEW_SUMMARY_FORMAT_LONG" desc="Print summary, explaining to the user how many pages will be printed.">
          Total: <ph name="NUMBER_OF_SHEETS">$1<ex>10</ex></ph> <ph name="SHEETS_LABEL">$2<ex>sheets of paper</ex></ph> (<ph name="NUMBER_OF_PAGES">$3<ex>4</ex></ph> <ph name="PAGE_OR_PAGES_LABEL">$4<ex>Pages</ex></ph>)
        </message>
        <message name="IDS_PRINT_PREVIEW_SUMMARY_FORMAT_SHORT" desc="Print summary, explaining to the user how many pages will be printed.">
          Total: <ph name="NUMBER_OF_SHEETS">$1<ex>10</ex></ph> <ph name="SHEETS_LABEL">$2<ex>sheets of paper</ex></ph>
        </message>
        <message name="IDS_PRINT_PREVIEW_SHEETS_LABEL_PLURAL" desc="Label shown in the print preview summary.">
          sheets of paper
        </message>
        <message name="IDS_PRINT_PREVIEW_SHEETS_LABEL_SINGULAR" desc="Label shown in the print preview summary.">
          sheet of paper
        </message>
        <message name="IDS_PRINT_PREVIEW_PAGE_LABEL_SINGULAR" desc="Label shown in the print preview summary.">
          page
        </message>
        <message name="IDS_PRINT_PREVIEW_PAGE_LABEL_PLURAL" desc="Label shown in the print preview summary.">
          pages
        </message>
        <if expr="is_macosx">
          <message name="IDS_PRINT_PREVIEW_OPEN_PDF_IN_PREVIEW_APP" desc="Option allowing the user to open the pdf in native preview app">
          Open PDF in Preview
          </message>
        </if>
        <if expr="not chromeos">
          <message name="IDS_PRINT_PREVIEW_SYSTEM_DIALOG_OPTION" desc="Option allowing the user to access advanced printer settings using the native print system dialog instead of printing through the print preview mechanism. Shortcut key is not translated">
            Print using system dialog... <ph name="SHORTCUT_KEY">$1<ex>(Shift+Ctrl+P)</ex></ph>
          </message>
        </if>
        <message name="IDS_PRINT_PREVIEW_PAGE_RANGE_INSTRUCTION" desc="Instruction shown when the user enters an invalid page range.">
          Invalid page range, use <ph name="EXAMPLE_PAGE_RANGE">$1<ex>e.g. 1-5, 8, 11-13</ex></ph>
        </message>
        <message name="IDS_PRINT_PREVIEW_COPIES_INSTRUCTION" desc="Instruction shown when the user enters an invalid number of copies.">
          Use a number to indicate how many copies to print (1 or more).
        </message>
        <message name="IDS_PRINT_PREVIEW_INCREMENT_TITLE" desc="Title shown when the user hovers mouse over the increment button. Also added for improved accessibility">
          More copies
        </message>
        <message name="IDS_PRINT_PREVIEW_DECREMENT_TITLE" desc="Title shown when the user hovers mouse over the decrement button. Also added for improved accessibility">
          Less copies
        </message>
        <message name="IDS_PRINT_PREVIEW_PRINT_PAGES_LABEL" desc="ARIA label used by screen reader to explain the purpose of the page selection textbox">
          Print Specific Pages
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTIONS_LABEL" desc="Options label currently providing the choice to print headers and footers.">
          Options
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_DISTILL_PAGE" desc="Checkbox label that provides a choice to print a simplified version of the page.">
          Simplify page
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_HEADER_FOOTER" desc="Checkbox label that provides a choice to print the headers and footers.">
          Headers and footers
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_FIT_TO_PAGE" desc="Checkbox label shown in print preview page to auto fit the PDF page.">
          Fit to page
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_BACKGROUND_COLORS_AND_IMAGES" desc="Checkbox label shown in print preview page to print webpage backgrounds.">
          Background graphics
        </message>
        <message name="IDS_PRINT_PREVIEW_OPTION_SELECTION_ONLY" desc="Checkbox label shown in print preview page to print only selected content.">
          Selection only
        </message>
        <message name="IDS_PRINT_PREVIEW_MARGINS_LABEL" desc="Margins option label. Provides user the option to change the margins of the printed page.">
          Margins
        </message>
        <message name="IDS_PRINT_PREVIEW_DEFAULT_MARGINS" desc="Option that specifies the page be printed with default margins.">
          Default
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_MARGINS" desc="Option that specifies the page be printed with no margins.">
          None
        </message>
        <message name="IDS_PRINT_PREVIEW_CUSTOM_MARGINS" desc="Option that specifies the page be printed with user-specified custom margins.">
          Custom
        </message>
        <message name="IDS_PRINT_PREVIEW_MINIMUM_MARGINS" desc="Option that specifies the page be printed with the minimum allowed margins by the printer.">
          Minimum
        </message>
        <message name="IDS_PRINT_PREVIEW_TOP_MARGIN_LABEL" desc="ARIA label used by screen reader to explain the purpose of the top margin textbox.">
          Top margin
        </message>
        <message name="IDS_PRINT_PREVIEW_BOTTOM_MARGIN_LABEL" desc="ARIA label used by screen reader to explain the purpose of the bottom margin textbox.">
          Bottom margin
        </message>
        <message name="IDS_PRINT_PREVIEW_LEFT_MARGIN_LABEL" desc="ARIA label used by screen reader to explain the purpose of the left margin textbox.">
          Left margin
        </message>
        <message name="IDS_PRINT_PREVIEW_RIGHT_MARGIN_LABEL" desc="ARIA label used by screen reader to explain the purpose of the right margin textbox.">
          Right margin
        </message>
        <message name="IDS_PRINT_PREVIEW_MEDIA_SIZE_LABEL" desc="Media size option label. Provides user the option to change the size of the printed page.">
          Paper size
        </message>
        <message name="IDS_PRINT_PREVIEW_DPI_LABEL" desc="Print quality option label. Provides user the option to select one of the print quality options defined for the printer.">
          Quality
        </message>
        <message name="IDS_PRINT_PREVIEW_NON_ISOTROPIC_DPI_ITEM_LABEL" desc="Print quality option value text in case horizontal and vertical DPI values differ.">
          <ph name="HORIZONTAL_DPI">$1<ex>200</ex></ph>x<ph name="VERTICAL_DPI">$2<ex>100</ex></ph> dpi
        </message>
        <message name="IDS_PRINT_PREVIEW_DPI_ITEM_LABEL" desc="Print quality option value text.">
          <ph name="DPI">$1<ex>300</ex></ph> dpi
        </message>
        <message name="IDS_PRINT_PREVIEW_NATIVE_DIALOG" desc="Option offering the user to open the native print dialog, displayed when the PDF viewer is missing or when print preview fails.">
          Print using system dialog…
        </message>
        <message name="IDS_PRINT_PREVIEW_DESTINATION_SEARCH_TITLE" desc="Title of the destination search UI component.">
          Select a destination
        </message>
        <message name="IDS_PRINT_PREVIEW_ACCOUNT_SELECT_TITLE" desc="Title of the user's account selection control, to choose the account destinations are being shown for.">
          Showing destinations for
        </message>
        <message name="IDS_PRINT_PREVIEW_ADD_ACCOUNT_TITLE" desc="Title of the selection control item to let user to sign into another account.">
          Add account...
        </message>
        <message name="IDS_PRINT_PREVIEW_CLOUD_PRINT_PROMOTION" desc="Message describing features of Google Cloud Print.">
          Print to Google Docs and other cloud destinations. <ph name="BEGIN_LINK">$1<ex>&lt;span&gt;</ex></ph>Sign in<ph name="END_LINK">$2<ex>&lt;/span&gt;</ex></ph> to print to Google Cloud Print.
        </message>
        <message name="IDS_PRINT_PREVIEW_SEARCH_BOX_PLACEHOLDER" desc="Text to put in a search box when user has not entered a search query.">
          Search destinations
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_DESTINATIONS_MESSAGE" desc="Message to show when no destinations were found.">
          No destinations found
        </message>
        <message name="IDS_PRINT_PREVIEW_SHOW_ALL_BUTTON_TEXT" desc="Label on a button to show all print destinations.">
          Show All...
        </message>
        <message name="IDS_PRINT_PREVIEW_DESTINATION_COUNT" desc="Message to show how many print destinations the user has.">
          (<ph name="COUNT">$1<ex>154</ex></ph> total)
        </message>
        <message name="IDS_PRINT_PREVIEW_RECENT_DESTINATIONS_TITLE" desc="Title of the section of recently used print destinations.">
          Recent Destinations
        </message>
        <message name="IDS_PRINT_PREVIEW_LOCAL_DESTINATIONS_TITLE" desc="Title of the section of local print destinations.">
          Local Destinations
        </message>
        <message name="IDS_PRINT_PREVIEW_CLOUD_DESTINATIONS_TITLE" desc="Title of the section of cloud print destinations.">
          Google Cloud Print
        </message>
        <message name="IDS_PRINT_PREVIEW_MANAGE" desc="Text of link to manage printers.">
          Manage...
        </message>
        <message name="IDS_PRINT_PREVIEW_SETUP_CLOUD_PRINTERS" desc="Text of link to set up cloud printers.">
          Set up to add printers…
        </message>
        <message name="IDS_PRINT_PREVIEW_CHANGE_DESTINATION" desc="Label on button to change print destination." meaning="Label text">
          Change...
        </message>
        <message name="IDS_PRINT_PREVIEW_OFFLINE_FOR_YEAR" desc="Shown when printer has been offline for more than a year.">
          Offline for more than a year
        </message>
        <message name="IDS_PRINT_PREVIEW_OFFLINE_FOR_MONTH" desc="Shown when printer has been offline for more than a month.">
          Offline for more than a month
        </message>
        <message name="IDS_PRINT_PREVIEW_OFFLINE_FOR_WEEK" desc="Shown when printer has been offline for more than a week.">
          Offline for more than a week
        </message>
        <message name="IDS_PRINT_PREVIEW_OFFLINE" desc="Shown when printer is currently offline.">
          Currently offline
        </message>
        <message name="IDS_PRINT_PREVIEW_FEDEX_TOS" desc="Terms-of-service for using the FedEx Office printer.">
          By printing to FedEx Office, you accept their <ph name="START_LINK">$1</ph>terms of use<ph name="END_LINK">$2</ph>.
        </message>
        <message name="IDS_PRINT_PREVIEW_TOS_CHECKBOX_LABEL" desc="Label of the terms-of-service agreement checkbox.">
          I agree
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_DESTS_PROMO_TITLE" desc="Title of promotion shown when user has no Google Cloud Print printers.">
          Add Printers
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_DESTS_PROMO_BODY" desc="Main body of promotion shown when user has no Google Cloud Print printers.">
          You can add printers to your computer by clicking the "Add a printer"
          button below. If you have no printers to add, you'll still be able to save
          a PDF or save to Google Drive.
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_DESTS_GCP_DESC" desc="A description of the Google Cloud Print service.">
          Adding your printers to Google Cloud Print allows you to print from
          anywhere, to anywhere. Share your printers with whoever you choose and
          print to them from Chrome, your phone, tablet, PC, or any other
          web-connected device.
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_DESTS_PROMO_ADD_PRINTER_BUTTON_LABEL" desc="Label of button to setup Google Cloud Print printers.">
          Add a printer
        </message>
        <message name="IDS_PRINT_PREVIEW_EXTENSION_DESTINATION_ICON_TOOLTIP" desc="Tooltip for the icon shown in print destination list next to print destination provided by an extension.">
          Documents you send to print via <ph name="APP_NAME">$1<ex>A Chrome app</ex></ph> can be read by <ph name="APP_NAME">$1<ex>A Chrome app</ex></ph>.
        </message>
        <message name="IDS_MORE_OPTIONS_LABEL" desc="Label of the toggle element to switch between showing more or less printing options in the Print Preview.">
          More settings
        </message>
        <message name="IDS_LESS_OPTIONS_LABEL" desc="Label of the toggle element to switch between showing more or less printing options in the Print Preview.">
          Fewer settings
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_DESTS_PROMO_NOT_NOW_BUTTON_LABEL" desc="Label of button to cancel the Google Cloud Print promotion.">
          Not now
        </message>
        <message name="IDS_PRINT_PREVIEW_COULD_NOT_PRINT" desc="Error message when printing fails in the print preview">
          Printing failed. Please check your printer and try again.
        </message>
        <message name="IDS_PRINT_PREVIEW_REGISTER_PROMO_BUTTON_TEXT">
          Register
        </message>
        <message name="IDS_PRINT_PREVIEW_ADVANCED_SETTINGS_SEARCH_BOX_PLACEHOLDER" desc="Text to put in a advanced settings search box when user has not entered a search query.">
          Search settings
        </message>
        <message name="IDS_PRINT_PREVIEW_ADVANCED_SETTINGS_DIALOG_TITLE" desc="Title of the advanced printer settings selection dialog.">
          Advanced settings for <ph name="PRINTING_DESTINATION">$1<ex>Office printer</ex></ph>
        </message>
        <message name="IDS_PRINT_PREVIEW_NO_ADVANCED_SETTINGS_MATCH_SEARCH_HINT" desc="Message to display in the printer advanced settings dialog when no settings match search string entered by the user.">
          No matches were found.
        </message>
        <message name="IDS_PRINT_PREVIEW_ADVANCED_SETTINGS_DIALOG_CONFIRM" desc="In title case: The text for the accept button on the printer advanced settings dialog.">
          Apply
        </message>
        <message name="IDS_PRINT_PREVIEW_ADVANCED_OPTIONS_LABEL" desc="Printer advanced options section label.">
          Advanced
        </message>
        <message name="IDS_PRINT_PREVIEW_SHOW_ADVANCED_OPTIONS" desc="The text for the button to open the printer's advanced settings dialog.">
          Change printer options...
        </message>
        <message name="IDS_PRINT_PREVIEW_ACCEPT_INVITE" desc="Text for the button to accept the printer-sharing invitation.">
          Accept
        </message>
        <message name="IDS_PRINT_PREVIEW_ACCEPT_GROUP_INVITE" desc="Text for the button to accept the printer-sharing invitation for the group of users.">
          Accept for group
        </message>
        <message name="IDS_PRINT_PREVIEW_REJECT_INVITE" desc="Text for the button to reject the printer-sharing invitation.">
          Reject
        </message>
        <message name="IDS_PRINT_PREVIEW_GROUP_INVITE_TEXT" desc="Message to show when the user has pending printer-sharing invitation for the group of users he is a manager of.">
          &lt;strong&gt;<ph name="SENDER">$1</ph>&lt;/strong&gt; wants to share a printer &lt;strong&gt;<ph name="PRINTER_NAME">$2</ph>&lt;/strong&gt; with a group you own: &lt;strong&gt;<ph name="GROUP_NAME">$3</ph>&lt;/strong&gt;. If you accept, all group members will be able to print to the printer.
        </message>
        <message name="IDS_PRINT_PREVIEW_INVITE_TEXT" desc="Message to show when the user has pending printer-sharing invitation.">
          &lt;strong&gt;<ph name="SENDER">$1</ph>&lt;/strong&gt; wants to share a printer &lt;strong&gt;<ph name="PRINTER_NAME">$2</ph>&lt;/strong&gt; with you.
        </message>
        <message name="IDS_PRINT_PREVIEW_BUTTON_SELECT" desc="Label for a button in a dialog asking a user to confirm selection of a printer in print preview UI. The printer gets selected if the user clicks the button.">
          Select
        </message>
        <message name="IDS_PRINT_PREVIEW_BUTTON_GO_BACK" desc="Label for a button in a dialog asking a user to confirm selection of a printer in print preview UI. Clicking the button will cancel printer selection, close the dialog and go back to the list of printers available for selection.">
          Back
        </message>
        <message name="IDS_PRINT_PREVIEW_RESOLVE_EXTENSION_USB_PERMISSION_MESSAGE" desc="Warning shown to the user when they attempt to select a USB printer supported by an extension, but for which the extension doesn't yet have access permission. The user is warned that selecting the printer would grant the extension access to the USB device and asked to confirm or cancel the selection. The extension name will be shown in the paragraph immediately bellow this message.">
          By selecting this printer, you are giving the following extension the permission to access your printer:
        </message>
        <message name="IDS_PRINT_PREVIEW_RESOLVE_EXTENSION_USB_ERROR_MESSAGE" desc="Message shown to the user when they attempt to select a USB pinter supported by an extension, but for which the extension does not yet have access permission. The message is shown if the user grants the extension access to the USB device (by confirming printer selection), but the extension is not able to retrieve information about the printer, and an error is reported. The message contains a placeholder for the name of the extension.">
          <ph name="EXTENSION_NAME">$1<ex>Print app</ex></ph> could not communicate with this printer. Make sure the printer is plugged in and try again.
        </message>
      </if>

      <!-- Load State -->
      <message name="IDS_LOAD_STATE_WAITING_FOR_SOCKET_SLOT" desc="Status text when Chrome is at its connection limit, and is waiting for a URL request to complete to free up a connection.">
        Waiting for available socket...
      </message>
      <message name="IDS_LOAD_STATE_WAITING_FOR_DELEGATE">
        Waiting for <ph name="LOAD_STATE_PARAMETER">$1<ex>extension Adblock</ex></ph>...
      </message>
      <message name="IDS_LOAD_STATE_WAITING_FOR_DELEGATE_GENERIC" desc="Generic status text when network is waiting on some local processing to occur.">
        Processing request...
      </message>
      <message name="IDS_LOAD_STATE_WAITING_FOR_CACHE">
        Waiting for cache...
      </message>
      <message name="IDS_LOAD_STATE_WAITING_FOR_APPCACHE">
        Waiting for AppCache...
      </message>
      <message name="IDS_LOAD_STATE_ESTABLISHING_PROXY_TUNNEL">
        Waiting for proxy tunnel...
      </message>
      <message name="IDS_LOAD_STATE_RESOLVING_PROXY_FOR_URL">
        Resolving proxy...
      </message>
      <message name="IDS_LOAD_STATE_RESOLVING_HOST_IN_PROXY_SCRIPT">
        Resolving host in proxy script...
      </message>
      <message name="IDS_LOAD_STATE_DOWNLOADING_PROXY_SCRIPT">
        Downloading proxy script...
      </message>
      <message name="IDS_LOAD_STATE_RESOLVING_HOST">
        Resolving host...
      </message>
      <message name="IDS_LOAD_STATE_CONNECTING">
        Connecting...
      </message>
      <message name="IDS_LOAD_STATE_SSL_HANDSHAKE">
        Establishing secure connection...
      </message>
      <message name="IDS_LOAD_STATE_SENDING_REQUEST">
        Sending request...
      </message>
      <message name="IDS_LOAD_STATE_SENDING_REQUEST_WITH_PROGRESS">
        Uploading (<ph name="PROGRESS_PERCENT">$1<ex>27</ex></ph>%)...
      </message>
      <message name="IDS_LOAD_STATE_WAITING_FOR_RESPONSE">
        Waiting for <ph name="HOST_NAME">$1<ex>www.google.com</ex></ph>...
      </message>

      <!-- Tab Context Menu -->
      <if expr="not use_titlecase">
        <message name="IDS_TAB_CXMENU_NEWTAB" desc="The label of the 'New Tab' Tab context menu item.">
          New tab
        </message>
        <message name="IDS_TAB_CXMENU_RELOAD" desc="The label of the 'Reload' Tab context menu item.">
          Reload
        </message>
        <message name="IDS_TAB_CXMENU_DUPLICATE" desc="The label of the 'Duplicate' Tab context menu item.">
          Duplicate
        </message>
        <message name="IDS_TAB_CXMENU_CLOSETAB" desc="The label of the 'Close Tab' Tab context menu item. Used when closing a single tab.">
          Close tab
        </message>
        <message name="IDS_TAB_CXMENU_CLOSETABS" desc="The label of the 'Close Tab' Tab context menu item. Used when closing more than one tab.">
          Close tabs
        </message>
        <message name="IDS_TAB_CXMENU_CLOSEOTHERTABS" desc="The label of the 'Close Other Tabs' Tab context menu item.">
          Close other tabs
        </message>
        <message name="IDS_TAB_CXMENU_CLOSETABSTORIGHT" desc="The label of the 'Close Tabs to the Right' Tab context menu item.">
          Close tabs to the right
        </message>
        <message name="IDS_TAB_CXMENU_PIN_TAB" desc="The label of the tab context menu item for pinning a single tab.">
          Pin tab
        </message>
        <message name="IDS_TAB_CXMENU_PIN_TABS" desc="The label of the tab context menu item for pinning more than one tab.">
          Pin tabs
        </message>
        <message name="IDS_TAB_CXMENU_UNPIN_TAB" desc="The label of the tab context menu item for unpinning a single tab.">
          Unpin tab
        </message>
        <message name="IDS_TAB_CXMENU_UNPIN_TABS" desc="The label of the tab context menu item for unpinning multiple tab.">
          Unpin tabs
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_MUTE_TAB" desc="The label of the tab context menu item for muting a single tab.">
          Mute tab
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_MUTE_TABS" desc="The label of the tab context menu item for muting more than one tab.">
          Mute tabs
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_UNMUTE_TAB" desc="The label of the tab context menu item for unmuting a single tab.">
          Unmute tab
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_UNMUTE_TABS" desc="The label of the tab context menu item for unmuting more than one tab.">
          Unmute tabs
        </message>
        <message name="IDS_TAB_CXMENU_BOOKMARK_ALL_TABS" desc="The label of the tab context menu item for creating a bookmark folder containing an entry for each open tab.">
          Bookmark all tabs...
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_TAB_CXMENU_NEWTAB" desc="In Title Case: The label of the 'New Tab' Tab context menu item.">
          New Tab
        </message>
        <message name="IDS_TAB_CXMENU_RELOAD" desc="In Title Case: The label of the 'Reload' Tab context menu item.">
          Reload
        </message>
        <message name="IDS_TAB_CXMENU_DUPLICATE" desc="In Title Case: The label of the 'Duplicate' Tab context menu item.">
          Duplicate
        </message>
        <message name="IDS_TAB_CXMENU_CLOSETAB" desc="In Title Case: The label of the 'Close Tab' Tab context menu item.">
          Close Tab
        </message>
        <message name="IDS_TAB_CXMENU_CLOSETABS" desc="In Title Case: The label of the 'Close Tab' Tab context menu item when more than one tab is selected.">
          Close Tabs
        </message>
        <message name="IDS_TAB_CXMENU_CLOSEOTHERTABS" desc="In Title Case: The label of the 'Close Other Tabs' Tab context menu item.">
          Close Other Tabs
        </message>
        <message name="IDS_TAB_CXMENU_CLOSETABSTORIGHT" desc="In Title Case: The label of the 'Close Tabs to the Right' Tab context menu item.">
          Close Tabs to the Right
        </message>
        <message name="IDS_TAB_CXMENU_PIN_TAB" desc="In Title Case: The label of the tab context menu item for pinning a tab.">
          Pin Tab
        </message>
        <message name="IDS_TAB_CXMENU_PIN_TABS" desc="In Title Case: The label of the tab context menu item for pinning multiple tabs.">
          Pin Tabs
        </message>
        <message name="IDS_TAB_CXMENU_UNPIN_TAB" desc="In Title Case: The label of the tab context menu item for unpinning a tab.">
          Unpin Tab
        </message>
        <message name="IDS_TAB_CXMENU_UNPIN_TABS" desc="In Title Case: The label of the tab context menu item for unpinning multiple tabs.">
          Unpin Tabs
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_MUTE_TAB" desc="In Title Case: The label of the tab context menu item for muting a single tab.">
          Mute Tab
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_MUTE_TABS" desc="In Title Case: The label of the tab context menu item for muting more than one tab.">
          Mute Tabs
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_UNMUTE_TAB" desc="In Title Case: The label of the tab context menu item for unmuting a single tab.">
          Unmute Tab
        </message>
        <message name="IDS_TAB_CXMENU_AUDIO_UNMUTE_TABS" desc="In Title Case: The label of the tab context menu item for unmuting more than one tab.">
          Unmute Tabs
        </message>
        <message name="IDS_TAB_CXMENU_BOOKMARK_ALL_TABS" desc="In Title Case: The label of the tab context menu item for creating a bookmark folder containing an entry for each open tab.">
          Bookmark All Tabs...
        </message>
      </if>

      <!-- Application window menu -->
      <if expr="not use_titlecase">
        <message name="IDS_APP_MENU_RELOAD" desc="The reload menu in application windows">
          Reload
        </message>
        <message name="IDS_APP_MENU_NEW_WEB_PAGE" desc="The new webpage menu in application windows">
          Open browser window
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_APP_MENU_RELOAD" desc="In Title Case: The reload menu in application windows">
          Reload
        </message>
        <message name="IDS_APP_MENU_NEW_WEB_PAGE" desc="In Title Case: The new webpage menu in application windows">
          Open Browser Window
        </message>
      </if>

      <!-- Page Information Window -->
      <if expr="not use_titlecase">
        <message name="IDS_PAGEINFO_CERT_INFO_BUTTON" desc="Text of button in the page info that shows the SSL certificate.">
          Certificate information
        </message>
        <message name="IDS_PAGEINFO_RESET_INVALID_CERTIFICATE_DECISIONS_BUTTON" desc="Text of button in the page info that resets allow/deny decisions of invalid certificates.">
          Stop using an invalid certificate
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_PAGEINFO_CERT_INFO_BUTTON" desc="In Title Case: Text of button in the page info that shows the SSL certificate.">
          Certificate Information
        </message>
        <message name="IDS_PAGEINFO_RESET_INVALID_CERTIFICATE_DECISIONS_BUTTON" desc="Text of button in the page info that resets allow/deny decisions of invalid certificates.">
          Stop using an invalid certificate
        </message>
      </if>
      <message name="IDS_PAGE_INFO_HELP_CENTER_LINK" desc="This is the text of the link pointing to the Help Center. This appears at the bottom of the SSL dialog and 'this' refers to the sections within the bubble.">
        What do these mean?
      </message>
      <message name="IDS_PAGE_INFO_SITE_SETTINGS_LINK" desc="This is the text of the link pointing to Chrome's Site Settings page. This appears at the bottom of the Permissions pane of the Page Information Window.">
        Site settings
      </message>

      <message name="IDS_PAGEINFO_ADDRESS" desc="Locality as reported in the EV identity text.">
        <ph name="CITY">$1<ex>Mountain View</ex></ph>, <ph name="STATE">$2<ex>California</ex></ph> <ph name="COUNTRY">$3<ex>USA</ex></ph>
      </message>

      <message name="IDS_PAGEINFO_PARTIAL_ADDRESS" desc="Locality with missing state as reported in the EV identity text.">
        <ph name="CITY">$1<ex>Mountain View</ex></ph>, <ph name="COUNTRY">$2<ex>US</ex></ph>
      </message>

      <message name="IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV_NO_CT" desc="The text of the identity section when the page is secured with an EV cert and no Certificate Transparency information is present.">
        The identity of <ph name="ORGANIZATION">$1<ex>Google</ex></ph> at <ph name="LOCALITY">$2<ex>Mountain View, CA US</ex></ph> has been verified by <ph name="ISSUER">$3<ex>VeriSign</ex></ph>. No Certificate Transparency information was supplied by the server.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV_CT_VERIFIED" desc="The text of the identity section when the page is secured with an EV cert and a Signed Certificate Timestamp from a known Certificate Transparency log is present and valid.">
        The identity of <ph name="ORGANIZATION">$1<ex>Google</ex></ph> at <ph name="LOCALITY">$2<ex>Mountain View, CA US</ex></ph> has been verified by <ph name="ISSUER">$3<ex>VeriSign</ex></ph>. Valid Certificate Transparency information was supplied by the server.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV_CT_UNVERIFIED" desc="The text of the identity section when the page is secured with an EV cert and contains a Signed Certificate Timestamp from an unknown Certificate Transparency log.">
        The identity of <ph name="ORGANIZATION">$1<ex>Google</ex></ph> at <ph name="LOCALITY">$2<ex>Mountain View, CA US</ex></ph> has been verified by <ph name="ISSUER">$3<ex>VeriSign</ex></ph>. Certificate Transparency information was supplied by the server, but one or more of the Certificate Transparency logs were not recognized.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV_CT_INVALID" desc="The text of the identity section when the page is secured with an EV cert, but it contains a Signed Certificate Timestamp from a known Certificate Transparency log that failed to verify.">
        The identity of <ph name="ORGANIZATION">$1<ex>Google</ex></ph> at <ph name="LOCALITY">$2<ex>Mountain View, CA US</ex></ph> has been verified by <ph name="ISSUER">$3<ex>VeriSign</ex></ph>. Certificate Transparency information was supplied by the server, but it was invalid.
      </message>

      <message name="IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY" desc="The default name used when we did not find a principal name.">
        unknown name
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY" desc="The text of the identity section when the page is not secure.">
        The identity of this website has not been verified.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME" desc="The text of the identity section when the host is not unique (such as with Intranet host names).">
        The identity of the server you are connected to cannot be fully validated. You are connected to a server using a name only valid within your network, which an external certificate authority has no way to validate ownership of. As some certificate authorities will issue certificates for these names regardless, there is no way to ensure you are connected to the intended website and not an attacker.
      </message>

      <message name="IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION" desc="The text of the identity section when we were unable to check if the certificate has been revoked.">
        Unable to check whether the certificate has been revoked.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM" desc="The text of the identity section when there is no certificate revocation mechanism.">
        The certificate does not specify a mechanism to check whether it has been revoked.
      </message>

      <message name="IDS_PAGE_INFO_SECURITY_TAB_DEPRECATED_SIGNATURE_ALGORITHM_MINOR" desc="The security summary phrase in the page information panel for a security problem where the site's certificate expires in 2016 and contains a SHA1 signature in the chain (as opposed to 2017 or later). Such certificates will not be supported in a future version of Chrome.">
        The certificate for this site expires in 2016, and the certificate chain contains a certificate signed using SHA-1.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR" desc="The security summary phrase in the page information panel for a security problem where the site's certificate expires in 2017 or later and contains a SHA1 signature in the chain (as opposed to 2016). Such certificates will not be supported in a future version of Chrome.">
        The certificate for this site expires in 2017 or later, and the certificate chain contains a certificate signed using SHA-1.
      </message>

      <message name="IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT" desc="The text of the connection section when the connection is encrypted.">
        Your connection to <ph name="DOMAIN">$1<ex>www.google.com</ex></ph> is encrypted using a modern cipher suite.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT" desc="The text of the connection section when the connection uses weak encryption.">
        Your connection to <ph name="DOMAIN">$1<ex>www.google.com</ex></ph> is encrypted using an obsolete cipher suite.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT" desc="The text of the connection section when the connection is not encrypted.">
        Your connection to <ph name="DOMAIN">$1<ex>www.google.com</ex></ph> is not encrypted.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING" desc="Some extra text of the connection section when the connection is encrypted and the page contains insecure content which has been displayed (e.g. images, CSS).">
        Further, this page includes other resources which are not secure. These resources can be viewed by others while in transit, and can be modified by an attacker to change the look of the page.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR" desc="Some extra text of the connection section when the connection is encrypted and the page contains insecure content which has been run (e.g. script).">
        Further, this page includes other resources which are not secure. These resources can be viewed by others while in transit, and can be modified by an attacker to change the behavior of the page.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK" desc="Linking 2 sentences in 1 paragraph.">
        <ph name="SENTENCE1">$1<ex>Your connection is encrypted.</ex></ph> <ph name="SENTENCE2">$2<ex>However, this page includes resources from other pages whose identity cannot be verified.</ex></ph>
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_SSL_VERSION" desc="This message gives the version of the SSL protocol used to protect the HTTPS connection.">
        The connection uses <ph name="SSL_VERSION">$1<ex>TLS 1.0</ex></ph>.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS" desc="This message gives details of the cryptographic primitives used to protect the HTTPS connection.">
        The connection is encrypted using <ph name="CIPHER">$1<ex>AES_128</ex></ph>, with <ph name="MAC">$2<ex>HMAC-SHA1</ex></ph> for message authentication and <ph name="KX">$3<ex>RSA</ex></ph> as the key exchange mechanism.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS_AEAD" desc="This message gives details of the cryptographic primitives used to protect the HTTPS connection. It should be translated in a similar manner as IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS">
        The connection is encrypted and authenticated using <ph name="CIPHER">$1<ex>AES_128_GCM</ex></ph> and uses <ph name="KX">$2<ex>RSA</ex></ph> as the key exchange mechanism.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_FALLBACK_MESSAGE" desc="This message is displayed when the first secure connection to a site failed and Chrome retried with an older protocol.">
        The connection had to be retried using an older version of the TLS or SSL protocol. This typically means that the server is using very old software and may have other security issues.
      </message>
      <message name="IDS_PAGE_INFO_SECURITY_TAB_RENEGOTIATION_MESSAGE" desc="This message is displayed when the server hasn't been updated to fix a recent security issues. TLS here is an acronym and need not be translated. 'renegotiation' is a technical term describing a process of agreeing on a new set of security parameters and secrets. 'extension' here should be taken to mean 'amendment' rather than elongation.">
        The server does not support the TLS renegotiation extension.
      </message>
      <if expr="is_ios">
        <message name="IDS_PAGE_INFO_SECURITY_BUTTON_ACCESSIBILITY_LABEL" desc="The accessibility text for the page security info button">
          Page Security Info
        </message>
      </if>

      <!-- Critical Notification Bubble -->
      <message name="IDS_CRITICAL_NOTIFICATION_HEADLINE" desc="The headline for the critical notification">
        <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will restart in <ph name="SECONDS">$2<ex>10</ex></ph> seconds.
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_HEADLINE_ALTERNATE" desc="The headline for the critical notification when the countdown reaches 0 (will only be seen if an onbeforeunload handler on a web page cancels the shutdown sequence.">
        You should restart <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> now.
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_TEXT" desc="The text of the critical update notification">
        A special security update for <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> was just applied; you should restart now for it to take effect (we'll restore your tabs).
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_RESTART" desc="The restart button label">
        OK - Restart now
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_DISMISS" desc="The dismiss button label">
        Don't restart
      </message>

      <!-- Screen Capture strings -->
      <message name="IDS_MEDIA_SCREEN_CAPTURE_CONFIRMATION_TITLE" desc="Title for the prompt shown when screen capturing is requrested by an app.">
        <ph name="APP_NAME">$1<ex>html5rocks.com</ex></ph> Screen Sharing Request
      </message>
      <message name="IDS_MEDIA_SCREEN_CAPTURE_CONFIRMATION_TEXT" desc="Text for the prompt shown when screen capturing is requrested by an app.">
        Do you want <ph name="APP_NAME">$1<ex>html5rocks.com</ex></ph> to share your screen?
      </message>
      <message name="IDS_MEDIA_SCREEN_AND_AUDIO_CAPTURE_CONFIRMATION_TEXT" desc="Text for the prompt shown when screen and audio capturing is requrested by an app.">
        Do you want <ph name="APP_NAME">$1<ex>html5rocks.com</ex></ph> to share your screen and audio output?
      </message>
      <message name="IDS_MEDIA_SCREEN_CAPTURE_NOTIFICATION_TEXT" desc="label used in screen capture notification UI to show the screen sharing status when the stream is consumed by the same app initiating the window picker">
        <ph name="APP_NAME">$1<ex>Google Cast</ex></ph> is sharing your screen.
      </message>
      <message name="IDS_MEDIA_SCREEN_CAPTURE_NOTIFICATION_TEXT_DELEGATED" desc="label used in screen capture notification UI to show the screen sharing status when the stream is consumed by a tab instead of the app initiating the window picker">
        <ph name="APP_NAME">$1<ex>Google Cast</ex></ph> is sharing your screen with <ph name="TAB_NAME">$2<ex>https://google.com</ex></ph>.
      </message>
      <message name="IDS_MEDIA_SCREEN_CAPTURE_NOTIFICATION_STOP" desc="Text shown on the button that stops screen capture.">
        Stop sharing
      </message>

      <!-- Safe Browsing interstitials V3 (shared phishing & malware) -->
      <message name="IDS_SAFEBROWSING_V3_TITLE" desc="The tab title for the Safe Browsing interstitials.">
        Security error
      </message>
      <message name="IDS_SAFEBROWSING_V3_OPEN_DETAILS_BUTTON" desc="The text for the button that expands the details.">
        Details
      </message>
      <message name="IDS_SAFEBROWSING_V3_CLOSE_DETAILS_BUTTON" desc="The text for the button that hides the details.">
        Hide details
      </message>
      <message name="IDS_SAFEBROWSING_OVERRIDABLE_SAFETY_BUTTON" desc="The text for the button that takes the user back to the previous page.">
        Back to safety
      </message>

      <!-- Malware interstitial V3 -->
      <message name="IDS_MALWARE_V3_HEADING" desc="The large heading at the top of the malware interstitial.">
        The site ahead contains malware
      </message>
      <if expr="is_android or is_ios">
        <message name="IDS_MALWARE_V3_PRIMARY_PARAGRAPH" desc="Mobile: The primary explanatory paragraph for the malware interstitial.">
          Attackers currently on <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="SITE">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph> might attempt to install dangerous apps on your device that steal or delete your information (for example, photos, passwords, messages, and credit cards).
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_MALWARE_V3_PRIMARY_PARAGRAPH" desc="Mac: The primary explanatory paragraph for the malware interstitial.">
          Attackers currently on <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="SITE">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph> might attempt to install dangerous programs on your Mac that steal or delete your information (for example, photos, passwords, messages, and credit cards).
        </message>
      </if>
      <if expr="not is_android and not is_macosx and not is_ios">
        <message name="IDS_MALWARE_V3_PRIMARY_PARAGRAPH" desc="The primary explanatory paragraph for the malware interstitial.">
          Attackers currently on <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="SITE">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph> might attempt to install dangerous programs on your computer that steal or delete your information (for example, photos, passwords, messages, and credit cards).
        </message>
      </if>
      <message name="IDS_MALWARE_V3_EXPLANATION_PARAGRAPH" desc="The explanation of why Safe Browsing has blocked the page.">
        Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>detected malware<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>. Websites that are normally safe are sometimes infected with malware.
      </message>
      <message name="IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE" desc="The explanation of why Safe Browsing has blocked the page.">
        Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>detected malware<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>. Websites that are normally safe are sometimes infected with malware. The malicious content comes from <ph name="SUBRESOURCE_HOST">$2<ex>evil.com</ex></ph>, a known malware distributor.
      </message>
      <message name="IDS_MALWARE_V3_ADVICE_HEADING" desc="A header for the IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_ADVICE paragraph.">
        What should you do?
      </message>
      <message name="IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_ADVICE" desc="The explanation of why Safe Browsing has blocked the page, with additional advice.">
        You should come back to this website in a few hours. Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>detected malware<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>. Websites that are normally safe are sometimes infected with malware.
      </message>
      <message name="IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_ADVICE" desc="The explanation of why Safe Browsing has blocked the page, with additional advice.">
        Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>detected malware<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>. Websites that are normally safe are sometimes infected with malware. The malicious content comes from <ph name="SUBRESOURCE_HOST">$2<ex>evil.com</ex></ph>, a known malware distributor. You should come back in a few hours.
      </message>
      <message name="IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_HISTORY" desc="The explanation of why Safe Browsing has blocked the page, with additional text about history.">
        Even if you have visited this website before, it is not safe right now. Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>detected malware<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>. Websites that are normally safe are sometimes infected with malware.
      </message>
      <message name="IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_HISTORY" desc="The explanation of why Safe Browsing has blocked the page, with additional text about history.">
        Even if you have visited this website before, it is not safe right now. Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>detected malware<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>. Websites that are normally safe are sometimes infected with malware. The malicious content comes from <ph name="SUBRESOURCE_HOST">$2<ex>evil.com</ex></ph>, a known malware distributor.
      </message>
      <message name="IDS_MALWARE_V3_PROCEED_PARAGRAPH" desc="The paragraph that lets the user skip the warning.">
        If you understand the risks to your security, you may <ph name="BEGIN_LINK">&lt;a href="#" id="proceed-link"&gt;</ph>visit this unsafe site<ph name="END_LINK">&lt;/a&gt;</ph> before the dangerous programs have been removed.
      </message>
      <message name="IDS_MALWARE_V3_PROCEED_PARAGRAPH_NOT_RECOMMEND" desc="The paragraph that lets the user skip the warning, with the additional anti-recommendation string.">
        If you understand the risks to your security, you may <ph name="BEGIN_LINK">&lt;a href="#" id="proceed-link"&gt;</ph>visit this unsafe site<ph name="END_LINK">&lt;/a&gt;</ph> (not recommended) before the dangerous programs have been removed.
      </message>
      <message name="IDS_MALWARE_V3_PROCEED_PARAGRAPH_SOCIAL" desc="The paragraph that lets the user skip the warning, with the additional anti-recommendation string.">
        More than 80% of people who see this warning go back to safety instead of risking malware. However, if you understand the risks to your security, you may <ph name="BEGIN_LINK">&lt;a href="#" id="proceed-link"&gt;</ph>visit this unsafe site<ph name="END_LINK">&lt;/a&gt;</ph> before the dangerous programs have been removed.
      </message>
      <message name="IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE" desc="Label for the link to SafeBrowsing Privacy policy page">
        Privacy policy
      </message>
      <message name="IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE" desc="SafeBrowsing Malware v2 Details label next to checkbox">
        Automatically report details of possible security incidents to Google. <ph name="PRIVACY_PAGE_LINK">$1</ph>
      </message>

      <!-- Harmful download interstitial V3 -->
      <message name="IDS_HARMFUL_V3_HEADING" desc="The large heading at the top of the social engineering interstitial.">
        The site ahead contains harmful programs
      </message>
      <message name="IDS_HARMFUL_V3_PRIMARY_PARAGRAPH" desc="Mobile: The primary explanatory paragraph for the social engineering interstitial.">
        Attackers on <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="SITE">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph> might attempt to trick you into installing programs that harm your browsing experience (for example, by changing your homepage or showing extra ads on sites you visit).
      </message>
      <message name="IDS_HARMFUL_V3_EXPLANATION_PARAGRAPH" desc="The explanation of why Safe Browsing has blocked the page.">
        Google Safe Browsing recently <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>found harmful programs<ph name="END_LINK">&lt;/a&gt;</ph> on <ph name="SITE">$1<ex>example.com</ex></ph>.
      </message>
      <message name="IDS_HARMFUL_V3_PROCEED_PARAGRAPH" desc="The paragraph that lets the user skip the warning.">
        If you understand the risks to your security, you may <ph name="BEGIN_LINK">&lt;a href="#" id="proceed-link"&gt;</ph>visit this site<ph name="END_LINK">&lt;/a&gt;</ph> before the harmful programs have been removed.
      </message>

      <!-- Phishing interstitial -->
      <message name="IDS_PHISHING_V4_HEADING" desc="The large heading at the top of the phishing interstitial.">
        Deceptive site ahead
      </message>
      <message name="IDS_PHISHING_V3_HEADING" desc="The large heading at the top of the phishing interstitial.">
        Phishing attack ahead
      </message>
      <message name="IDS_PHISHING_V4_PRIMARY_PARAGRAPH" desc="The primary explanatory paragraph for the malware interstitial.">
        Attackers on <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="SITE">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph> may trick you into doing something dangerous like installing software or revealing your personal information (for example, passwords, phone numbers, or credit cards).
      </message>
      <message name="IDS_PHISHING_V3_PRIMARY_PARAGRAPH" desc="The primary explanatory paragraph for the malware interstitial.">
        Attackers on <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="SITE">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph> might try to trick you to steal your information (for example, passwords, messages, or credit cards).
      </message>
      <message name="IDS_PHISHING_V3_EXPLANATION_PARAGRAPH" desc="The explanation of why Safe Browsing has blocked the page.">
      Google Safe Browsing recently detected phishing on <ph name="SITE">$1<ex>example.com</ex></ph>. <ph name="BEGIN_LINK">&lt;a href="#" id="help-link"&gt;</ph>Phishing sites<ph name="END_LINK">&lt;/a&gt;</ph> pretend to be other websites to trick you.
      </message>
      <message name="IDS_PHISHING_V3_PROCEED_PARAGRAPH" desc="The paragraph that lets the user skip the warning.">
        If you understand the risks to your security, you may <ph name="BEGIN_LINK">&lt;a href="#" id="proceed-link"&gt;</ph>visit this unsafe site<ph name="END_LINK">&lt;/a&gt;</ph>.
      </message>
      <message name="IDS_PHISHING_V4_PROCEED_AND_REPORT_PARAGRAPH" desc="The paragraph that lets the user skip the warning.">
        You can <ph name="BEGIN_ERROR_LINK">&lt;a href="#" id="report-error-link"&gt;</ph>report a detection problem<ph name="END_ERROR_LINK">&lt;/a&gt;</ph> or, if you understand the risks to your security, <ph name="BEGIN_LINK">&lt;a href="#" id="proceed-link"&gt;</ph>visit this unsafe site<ph name="END_LINK">&lt;/a&gt;</ph>.
      </message>

      <!-- Captive portal interstitial -->
      <message name="IDS_CAPTIVE_PORTAL_HEADING_WIRED" desc="Heading in the error page when a secure request is blocked because a captive portal is manipulating a wired connection (e.g. ethernet)">
        Connect to network
      </message>
      <message name="IDS_CAPTIVE_PORTAL_HEADING_WIFI" desc="Heading in the error page when a secure request is blocked because a captive portal is manipulating a Wi-Fi connection">
        Connect to Wi-Fi
      </message>
      <message name="IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIRED" desc="The primary explanatory paragraph for the captive portal error page for wired network connections.">
        The network you are using may require you to visit <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="LOGIN_URL">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph>.
      </message>
      <message name="IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI" desc="The primary explanatory paragraph for the captive portal error page for Wi-Fi connections.">
        The Wi-Fi you are using may require you to visit <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="LOGIN_URL">$1<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph>.
      </message>
      <message name="IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_WIFI_SSID" desc="The primary explanatory paragraph for the captive portal error page for Wi-Fi connections, displaying the Wi-Fi name.">
        The Wi-Fi you are using (<ph name="WIFI_NAME">$1<ex>Google Guest</ex></ph>) may require you to visit <ph name="BEGIN_BOLD">&lt;strong&gt;</ph><ph name="LOGIN_URL">$2<ex>example.com</ex></ph><ph name="END_BOLD">&lt;/strong&gt;</ph>.
      </message>
      <message name="IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIRED" desc="The primary explanatory paragraph for the captive portal error page for network connections when the captive portal login url isn't available.">
        The network you are using may require you to visit its login page.
      </message>
      <message name="IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIFI" desc="The primary explanatory paragraph for the captive portal error page for Wi-Fi connections when the captive portal login url isn't available.">
        The Wi-Fi you are using may require you to visit its login page.
      </message>
      <message name="IDS_CAPTIVE_PORTAL_PRIMARY_PARAGRAPH_NO_LOGIN_URL_WIFI_SSID" desc="The primary explanatory paragraph for the captive portal error page for Wi-Fi connections when the captive portal login url isn't available.">
        The Wi-Fi you are using (<ph name="WIFI_NAME">$1<ex>Google Guest</ex></ph>) may require you to visit its login page.
      </message>
      <message name="IDS_CAPTIVE_PORTAL_BUTTON_OPEN_LOGIN_PAGE" desc="Text for the open login page button">
        Connect
      </message>

      <!-- Strings for the certificate selection dialog triggered by chrome.platformKeys -->
      <message name="IDS_PLATFORM_KEYS_SELECT_CERT_DIALOG_TEXT" desc="The text in the dialog that prompts the user to select a certificate when an extension requests certificates through the platformKeys API.">
        <ph name="EXTENSION_NAME">$1<ex>My OpenVPN App</ex></ph> wants permanent access to a certificate to authenticate itself on your behalf.
      </message>

      <!-- Misc strings for SSL UI -->
      <message name="IDS_UNSAFE_FRAME_MESSAGE" desc="The text displayed in the content that is subsituted to an unsafe frame.">
        This frame was blocked because it contains some insecure content.
      </message>

      <!-- SSL client authentication certificate selection dialog -->
      <message name="IDS_CLIENT_CERT_DIALOG_TITLE" desc="The title of the dialog that prompts for a certificate when doing SSL client authentication.">
        Select a certificate
      </message>

      <message name="IDS_CLIENT_CERT_DIALOG_TEXT" desc="The text in the dialog that prompts for a certificate when doing SSL client authentication.">
        Select a certificate to authenticate yourself to <ph name="HOST_NAME">$1<ex>www.google.com</ex></ph>
      </message>

      <!-- NSS PKCS #11 password dialog -->
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TITLE" desc="The title in the dialog that prompts for security device password.">
       Sign in to Security Device
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_KEYGEN" desc="The text in the dialog that prompts for security device password for key generation.">
       Please sign in to <ph name="TOKEN_NAME">$1<ex>Software Security Device</ex></ph> to generate a key for <ph name="HOST_NAME">$2<ex>www.google.com</ex></ph>.
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_ENROLLMENT" desc="The text in the dialog that prompts for security device password for cert enrollment.">
       Please sign in to <ph name="TOKEN_NAME">$1<ex>Software Security Device</ex></ph> to import client certificate from <ph name="HOST_NAME">$2<ex>www.google.com</ex></ph>.
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CLIENT_AUTH" desc="The text in the dialog that prompts for security device password when doing key generation.">
       Please sign in to <ph name="TOKEN_NAME">$1<ex>Software Security Device</ex></ph> to authenticate to <ph name="HOST_NAME">$2<ex>www.google.com</ex></ph> with your certificate.
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_LIST_CERTS" desc="The text in the dialog that prompts for security device password when using the certificate manager without taking a specific action (eg, just loading the cert manager).">
       Please sign in to <ph name="TOKEN_NAME">$1<ex>Software Security Device</ex></ph>.
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_IMPORT" desc="The text in the dialog that prompts for security device password when using the certificate manager to import a client certificate.">
       Please sign in to <ph name="TOKEN_NAME">$1<ex>Software Security Device</ex></ph> to import the client certificate.
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_EXPORT" desc="The text in the dialog that prompts for security device password when using the certificate manager to export a client certificate.">
       Please sign in to <ph name="TOKEN_NAME">$1<ex>Software Security Device</ex></ph> to export the client certificate.
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_PASSWORD_FIELD" desc="Label for password entry in the dialog that prompts for security device password.">
       Password:
      </message>
      <message name="IDS_CRYPTO_MODULE_AUTH_DIALOG_OK_BUTTON_LABEL" desc="Label for OK button in the dialog that prompts for security device password.">
       Unlock
      </message>

      <!-- Menus -->
      <if expr="is_macosx">
        <message name="IDS_MENU_EMPTY_SUBMENU" desc="Used when a submenu has no entries">
          (empty)
        </message>
      </if>

      <!-- Mac First-run dialog messages -->
      <if expr="is_macosx">
        <message name="IDS_FIRSTRUN_DLG_MAC_WINDOW_TITLE" desc="Window title of First Run Title on OS X - displayed in Window title bar">
          Welcome to <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>
        </message>
        <message name="IDS_FIRSTRUN_DLG_MAC_COMPLETE_INSTALLATION_LABEL" desc="Label at top of Dialog noting what's going to happen">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> is ready to complete your installation
        </message>
        <message name="IDS_FIRSTRUN_DLG_MAC_OPTIONS_SEND_USAGE_STATS_LABEL" desc="Label for checkbox to ask whether to send usage stats to Google">
          Help make <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> better by automatically sending usage statistics and crash reports to Google
        </message>
        <message name="IDS_FIRSTRUN_DLG_MAC_START_CHROME_BUTTON" desc="Button to Start Google Chrome">
          Start <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>
        </message>
      </if>

      <!-- First run bubble popup -->
      <message name="IDS_FR_BUBBLE_TITLE" desc="Bubble-like popup dialog title">
        You can search from here with <ph name="SEARCH_ENGINE">$1<ex>Google</ex></ph>
      </message>
      <message name="IDS_FR_BUBBLE_SUBTEXT" desc="Text under the title for the bubble">
        Type to search or enter a URL to navigate - everything just works.
      </message>
      <message name="IDS_FR_BUBBLE_CHANGE" desc="Text for the change button on the bubble">
        Change
      </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 pointing the users to a help article.">
        suggestions
      </message>
      <message name="IDS_SAD_TAB_LEARN_MORE_LINK" desc="The link text displayed on the sad tab page pointing the users to a help article.">
        Learn more
      </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>
      <message name="IDS_CRASHED_TAB_FEEDBACK_MESSAGE" desc="The text to auto-populate the feedback page with. The triple single quotes are needed to preserve the line break.">
        Tab crashed feedback.
'''
      </message>
      <message name="IDS_CRASHED_TAB_FEEDBACK_LINK" desc="The text for the feedback link on the crashed tab page.">
        Send feedback
      </message>
      <!-- Killed Tab Strings -->
      <if expr="chromeos">
        <message name="IDS_KILLED_TAB_BY_OOM_MESSAGE" desc="The message displayed on the killed tab page when the page was killed by an out of memory error.">
          Either Chrome ran out of memory or the process for the webpage was terminated for some other reason.  To continue, reload or go to another page.
        </message>
      </if>
      <message name="IDS_KILLED_TAB_FEEDBACK_MESSAGE" desc="The text to auto-populate the feedback page with. The triple single quotes are needed to preserve the line break.">
        Tab killed feedback.
'''
      </message>

      <!-- Default Browser related messages -->
      <if expr="is_win">
        <message name="IDS_HIDE_ICONS_NOT_SUPPORTED" desc="Message to explain we only support uninstall and not hide-icons.">
  To hide access to this program, you need to uninstall it by using
  <ph name="CONTROL_PANEL_APPLET_NAME">$1<ex>Add/Remove Programs</ex></ph> in Control Panel.

  Would you like to start <ph name="CONTROL_PANEL_APPLET_NAME">$1<ex>Add/Remove Programs</ex></ph>?
        </message>
      </if>

      <!-- chrome://help -->
      <if expr="not is_android">
        <if expr="chromeos">
          <message name="IDS_SHOW_MORE_INFO" desc="The label of the 'More info' link.">
            More info...
          </message>
          <message name="IDS_HIDE_MORE_INFO" desc="The label of the 'Hide info' link.">
            Hide info...
          </message>
        </if>

        <message name="IDS_ABOUT_TITLE" desc="Label used for title of the About page, chrome://help.">
          About
        </message>
        <if expr="not chromeos and use_titlecase">
          <message name="IDS_RELAUNCH_BUTTON" desc="Titlecase: The label for the relaunch button that relaunches the browser once update is complete">
            Relaunch
          </message>
        </if>
        <if expr="not chromeos and not use_titlecase">
          <message name="IDS_RELAUNCH_BUTTON" desc="The label for the relaunch button that relaunches the browser once update is complete">
            Relaunch
          </message>
        </if>
        <if expr="chromeos and use_titlecase">
          <message name="IDS_RELAUNCH_BUTTON" desc="Titlecase: The label for the relaunch button that relaunches the browser once update is complete">
            Restart
          </message>
          <message name="IDS_RELAUNCH_AND_POWERWASH_BUTTON" desc="Titlecase: The label for the  button that relaunches and powerwashes the browser once update is complete">
            Relaunch and Powerwash
          </message>
        </if>
        <if expr="chromeos and not use_titlecase">
          <message name="IDS_RELAUNCH_BUTTON" desc="The label for the relaunch button that relaunches the browser once update is complete">
            Restart
          </message>
          <message name="IDS_RELAUNCH_AND_POWERWASH_BUTTON" desc="Titlecase: The label for the  button that relaunches and powerwashes the browser once update is complete">
            Relaunch and Powerwash
          </message>
        </if>
        <if expr="chromeos">
          <message name="IDS_ABOUT_PRODUCT_DESCRIPTION" desc="The text label describing Chrome OS">
            The faster, simpler, and more secure computer
          </message>
        </if>
        <if expr="not chromeos">
          <message name="IDS_ABOUT_PRODUCT_DESCRIPTION" desc="The text label describing the Chrome browser">
            A web browser built for speed, simplicity, and security
          </message>
        </if>
        <message name="IDS_ABOUT_PRODUCT_VERSION" desc="The text label describing the version of the browser">
          Version <ph name="PRODUCT_VERSION">$1<ex>15.0.865.0</ex></ph>
        </message>
      </if> <!-- not is_android -->

      <if expr="chromeos">
        <message name="IDS_WEBKIT" desc="The name of the WebKit project; should not require translation.">
          WebKit
        </message>
        <message name="IDS_ABOUT_PAGE_FIRMWARE" desc="Label used for Chrome OS bios firmware version.">
          Firmware
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL" desc="The channel label under _More_Info_.">
          Channel
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_STABLE" desc="The stable option in the channel select.">
          Stable
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_BETA" desc="The beta option in the channel select.">
          Beta
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_DEVELOPMENT" desc="The development option in the channel select.">
          Developer - unstable
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGED" desc="The message to confirm that channel has changed.">
          You have switched to the <ph name="CHANNEL_NAME">$1<ex>Stable</ex></ph> channel.
        </message>
        <message name="IDS_ABOUT_PAGE_CURRENT_CHANNEL_STABLE" desc="The stable label in the message about current channel.">
          stable
        </message>
        <message name="IDS_ABOUT_PAGE_CURRENT_CHANNEL_BETA" desc="The beta label in the message about current channel.">
          beta
        </message>
        <message name="IDS_ABOUT_PAGE_CURRENT_CHANNEL_DEV" desc="The dev label in the message about current channel.">
          dev
        </message>
        <message name="IDS_ABOUT_PAGE_CURRENT_CHANNEL" desc="The message about current channel.">
          Currently on <ph name="CHANNEL_NAME">$1<ex>Stable</ex></ph> channel.
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_BUTTON" desc="The label for the button for channel change.">
          Change channel...
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_TITLE" desc="The title of the window for channel change.">
          Change channel
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_DISALLOWED_MESSAGE" desc="The error message that is displayed when non-owner tries to switch channel.">
          This setting is enforced by your administrator.
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_TITLE" desc="The title for the message that warns user about powerwash.">
          Powerwash required on next reboot
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_MESSAGE" desc="Message that warns user about powerwash.">
          This will remove all local users, files, data, and other settings after your next restart. All users will need to sign in again.
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_DELAYED_CHANGE_TITLE" desc="The title for the message that notifies user that channel change will be applied later.">
          Channel change will be applied later.
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_DELAYED_CHANGE_MESSAGE" desc="Message that notifies user that channel change will be applied later.">
          You are changing to a channel with an older version of <ph name="PRODUCT_NAME">$1<ex>Chrome OS</ex></ph>. The channel change will be applied when the channel version matches the version currently installed on your device.
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_UNSTABLE_TITLE" desc="The title for the message that warns user about switching to developer (unstable) channel.">
          Warning: you are switching to developer channel
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_UNSTABLE_MESSAGE" desc="Message that warns user about switching to developer (unstable) channel.">
          You are updating to an unstable version of <ph name="PRODUCT_NAME">$1<ex>Chrome OS</ex></ph> which contains features that are in progress. Crashes and unexpected bugs will occur. Please proceed with caution.
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_POWERWASH_BUTTON" desc="The label for the button for channel switch and powerwash.">
          Change channel and Powerwash
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_CHANGE_BUTTON" desc="The label for the button for channel switch.">
          Change channel
        </message>
        <message name="IDS_ABOUT_PAGE_CHANNEL_CHANGE_PAGE_CANCEL_BUTTON" desc="The label for the button for cancelling channel change.">
          Cancel
        </message>
      </if> <!-- chromeos -->

      <message name="IDS_PLATFORM_LABEL" desc="Label for Platform">
        Platform
      </message>

      <!-- chrome://settings. Non-Aura Android uses native UI for settings -->
      <if expr="not is_android or use_aura">
        <if expr="chromeos">
          <message name="IDS_OPTIONS_INTERNET_TAB_LABEL" desc="The title of the Internet tab">
            Internet
          </message>
          <message name="IDS_OPTIONS_INTERNET_OPTIONS_GROUP_LABEL" desc="The title of the 'Internet connections' group">
            Internet connection
          </message>
          <message name="IDS_OPTIONS_INTERNET_OPTIONS_BUTTON_TITLE" desc="The title of the 'Manage connections...' button">
            Manage connections...
          </message>
          <message name="IDS_OPTIONS_ACCOUNTS_TAB_LABEL" desc="The title of the Accounts tab">
            Users
          </message>
          <message name="IDS_OPTIONS_ACCOUNTS_BUTTON_TITLE" desc="The title of the Manage Accounts button">
            Manage other users...
          </message>
          <message name="IDS_OPTIONS_PROXY_TAB_LABEL" desc="The title of the proxy subtab">
            Proxy
          </message>
        </if>
        <message name="IDS_OPTIONS_TAB_EXTENSION_CONTROLLED" desc="The label in the bubble showing which extension is controlling a particular setting. Please preserve the embedded HTML (&lt;b&gt; and &lt;/b&gt;) during translation. They serve to make the name bold.">
          An extension, &lt;b&gt;<ph name="EXTENSION_NAME">$1<ex>MyFirstExtension</ex></ph>&lt;/b&gt;, is controlling this setting.
        </message>
        <message name="IDS_OPTIONS_TAB_EXTENSION_CONTROLLED_DISABLE" desc="The 'Disable Extension' button label in the bubble showing which extension is controlling a particular setting.">
          Disable extension
        </message>
        <message name="IDS_OPTIONS_TAB_TITLE" desc="The format of the title on the browser tab for an options subpage, e.g. Settings - Basics">
          <ph name="OPTIONS_TITLE">$1<ex>Settings</ex></ph> - <ph name="SUBPAGE_TITLE">$2<ex>Under the Hood</ex></ph>
        </message>
        <message name="IDS_OPTIONS_DELETABLE_ITEM_DELETE_BUTTON" desc="The label of the button to delete an item in a list">
          Delete this item
        </message>
        <message name="IDS_OPTIONS_STARTUP_GROUP_NAME" desc="The title of the startup group">
          On startup
        </message>
        <message name="IDS_OPTIONS_STARTUP_SHOW_NEWTAB" desc="The label of the 'Show home page' startup option radio button">
          Open the New Tab page
        </message>
        <message name="IDS_OPTIONS_STARTUP_RESTORE_LAST_SESSION" desc="The label of the 'Continue where I left off' startup option radio button">
          Continue where you left off
        </message>
        <message name="IDS_OPTIONS_STARTUP_SHOW_PAGES" desc="The label of the 'Show these pages:' startup option radio button">
          Open a specific page or set of pages.
        </message>
        <message name="IDS_OPTIONS_STARTUP_SET_PAGES" desc="The link that is clicked to choose the set of pages that will be shown at startup">
          Set pages
        </message>
        <message name="IDS_OPTIONS_STARTUP_PAGE_TOOLTIP" desc="A tooltip to display for a page in the list of pages to open on startup">
          <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - <ph name="PAGE_URL">$2<ex>http://www.google.com/</ex></ph>
        </message>
        <message name="IDS_OPTIONS_STARTUP_ADD_LABEL" desc="The text labelling the add row in the custom startup urls list">
          Add a new page
        </message>
        <message name="IDS_OPTIONS_STARTUP_PAGES_DIALOG_TITLE" desc="The title of the dialog where the user chooses the set of pages that will be shown at startup">
          Startup pages
        </message>
        <message name="IDS_OPTIONS_STARTUP_USE_CURRENT" desc="The label of the 'Use Current' button for the custom startup urls list">
          Use current pages
        </message>
        <message name="IDS_OPTIONS_PROXY_GROUP_NAME" desc="The title of the Proxy group">
          Proxy
        </message>
        <message name="IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES" desc="The label of the 'Manage search engines' button">
          Manage search engines...
        </message>
        <message name="IDS_OPTIONS_ENABLE_GOOGLE_NOW" desc="The label of the 'Enable Google Now' checkbox in search options.">
          Show Google Now cards in the launcher
        </message>
        <message name="IDS_OPTIONS_HOMEPAGE_NTP" desc="The value displayed on the settings page to indicate that we're using the new tab page as the homepage">
          New Tab page
        </message>
        <message name="IDS_OPTIONS_HOMEPAGE_USE_NEWTAB" desc="The title of the 'Use the New Tab page' for the home page radio">
          Use the New Tab page
        </message>
        <message name="IDS_OPTIONS_HOMEPAGE_USE_URL" desc="The title of the 'Use this page' for the home page radio">
          Open this page:
        </message>
        <message name="IDS_OPTIONS_TOOLBAR_SHOW_HOME_BUTTON" desc="The label of the 'Show Home button' checkbox">
          Show Home button
        </message>
        <message name="IDS_OPTIONS_CHANGE_HOME_PAGE" desc="The text of the button that allows the user to change her home page">
          Change
        </message>
        <message name="IDS_OPTIONS_TOOLBAR_SHOW_BOOKMARKS_BAR" desc="The label of the 'Show bookmarks bar' checkbox">
          Always show the bookmarks bar
        </message>
        <message name="IDS_TOOLBAR_INFORM_SET_HOME_PAGE" desc="The confirmation message when dropping a link on the Home toolbar button">
           Your home page has been set.
        </message>
        <message name="IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME" desc="The title of the default search engine group">
          Search
        </message>
        <message name="IDS_SEARCH_ENGINE_ADD_NEW_NAME_PLACEHOLDER" desc="Placeholder text for name before the user adds a new search engine" >
          Add a new search engine
        </message>
        <message name="IDS_SEARCH_ENGINE_ADD_NEW_KEYWORD_PLACEHOLDER" desc="Placeholder text for keyword before the user adds a new search engine" >
          Keyword
        </message>
        <message name="IDS_SEARCH_ENGINE_ADD_NEW_URL_PLACEHOLDER" desc="Placeholder text for URL before the user adds a new search engine" >
          URL with %s in place of query
        </message>
        <message name="IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME" desc="The title of the default browser group">
          Default browser
        </message>
        <message name="IDS_OPTIONS_DEFAULTBROWSER_DEFAULT" desc="The text displayed when Chrome is not the default browser">
          The default browser is currently <ph name="BROWSER_NAME">$1<ex>Firefox</ex></ph>.
        </message>
        <message name="IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT" desc="The text displayed when Chrome is not the default browser">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> is not currently your default browser.
        </message>
        <message name="IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN" desc="The text displayed when Chrome cannot determine or set the default browser">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> cannot determine or set the default browser.
        </message>
        <message name="IDS_OPTIONS_DEFAULTBROWSER_SXS" desc="The text displayed when Chrome is installed in side-by-side mode, which does not support setting as the default browser.">
          This is a secondary installation of <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>, and cannot be made your default browser.
        </message>
        <message name="IDS_OPTIONS_DOWNLOADLOCATION_GROUP_NAME" desc="The title of the download location group">
          Downloads
        </message>
        <message name="IDS_OPTIONS_DOWNLOADLOCATION_CHANGE_BUTTON" desc="The label of the 'Change...' button">
          Change...
        </message>
        <message name="IDS_OPTIONS_DOWNLOADLOCATION_BROWSE_TITLE" desc="In the 'Browse For Folder' dialog on Windows, this is the text that appears above the directory selector.">
          Download location:
        </message>
        <message name="IDS_OPTIONS_DOWNLOADLOCATION_ASKFORSAVELOCATION" desc="The 'Ask for save location before downloading' checkbox label">
          Ask where to save each file before downloading
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_SECTION_TITLE" desc="The title of the Easy Unlock section on the settings page.">
          Smart Lock for Chromebook (beta)
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_SETUP_INTRO" desc="The text to show in Easy Unlock section to introduce the feature.">
          Keep your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> unlocked when your Android phone is unlocked and nearby—no need to type your password.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_SETUP_BUTTON" desc="The label of the button to set up Easy Unlock section on the settings page.">
          Set up
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_DESCRIPTION" desc="The text that describes what Easy Unlock does.">
          Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> will be unlocked when your Android phone is unlocked and nearby.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_REQUIRE_PROXIMITY_LABEL" desc="The text label that describes the checkbox that controls whether the user's Android phone must be in close proximity to the Chromebook in order to unlock it..">
          Only unlock this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> when your phone is within arm’s reach.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_BUTTON" desc="The label of the button to disable Easy unlock on the settings page and the turn off Easy unlock dialog.">
          Turn off
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_NOTIFICATION_OPTION_LABEL" desc="The label of the preference in the Smart Lock settings page to control whether notifications should be shown when unlocking the Chromebook.">
          Get notified on your phone every time Smart Lock unlocks your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_TITLE" desc="The title of the Easy unlock turn off dialog.">
          Turn off Smart Lock for Chromebook?
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_DESCRIPTION" desc="The description text of the Easy unlock turn off dialog.">
          If you turn off Smart Lock for Chromebook, you won’t be able to unlock your Chrome devices using your phone. You'll need to type your password.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_OFFLINE_TITLE" desc="The title text on the Easy unlock turn off dialog when Easy unlock could not be turned off because the device is offline.">
          Please connect to a network
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_OFFLINE_MESSAGE" desc="The text on the Easy unlock turn off dialog when Easy unlock could not be turned off because the device is offline.">
          You must be online to turn off Smart Lock because this setting is synced to your phone and other devices. Please connect to a network first.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_ERROR_TITLE" desc="The title text on the Easy unlock turn off dialog when Easy unlock could not be turned off because there is a server error.">
          Smart Lock is unavailable
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_ERROR_MESSAGE" desc="The text on the Easy unlock turn off dialog when Easy unlock could not be turned off because there is a server error.">
          Smart Lock is currently unavailable. Please try again later.
        </message>
        <message name="IDS_OPTIONS_EASY_UNLOCK_TURN_OFF_RETRY_BUTTON" desc="The label text of the retry button on the Easy unlock turn off dialog when Easy unlock could not be turned off because there is a server error.">
          Retry
        </message>
        <message name="IDS_OPTIONS_OPEN_FILE_TYPES_AUTOMATICALLY" desc="The information label for the 'Clear auto-opening settings' button">
          You have chosen to open certain file types automatically after downloading.
        </message>
        <message name="IDS_OPTIONS_AUTOOPENFILETYPES_RESETTODEFAULT" desc="The label of the 'Reset always open files' button">
          Clear auto-opening settings
        </message>
        <message name="IDS_OPTIONS_ADVANCED_LANGUAGE_LABEL" desc="The label for the Language section">
          Change how <ph name="APP_NAME">$1<ex>Chrome</ex></ph> handles and displays languages.
        </message>
        <message name="IDS_OPTIONS_TRANSLATE_ENABLE_TRANSLATE" desc="The label of the check-box that enables page translate">
          Offer to translate pages that aren't in a language you read.
        </message>
        <message name="IDS_OPTIONS_TRANSLATE_MANAGE_LANGUAGES" desc="The link that is clicked to manage languages for translate">
          Manage languages
        </message>
        <message name="IDS_OPTIONS_PASSWORDS_AND_FORMS_GROUP_NAME" desc="The title of the 'Passwords and forms' group">
          Passwords and forms
        </message>
        <message name="IDS_OPTIONS_PASSWORD_MANAGER_ENABLE" desc="The label of the password manager checkbox">
          Offer to save your web passwords.
        </message>
        <message name="IDS_OPTIONS_PASSWORD_MANAGER_SMART_LOCK_ENABLE" desc="The label of the password manager checkbox if Smart Lock is enabled.">
          Offer to save passwords with Google Smart Lock for Passwords.
        </message>
        <message name="IDS_OPTIONS_PASSWORDS_AUTOLOGIN" desc="The label of the 'autologinEnabled' checkbox">
          Offer to sign in to Google sites automatically with this account
        </message>
        <message name="IDS_OPTIONS_AUTOFILL_ENABLE" desc="The label of the 'Ask me to enable Autofill' radio button">
          Enable Autofill to fill out web forms in a single click.
        </message>
        <message name="IDS_AUTOFILL_EDIT_PROFILE_BUTTON" desc="The label of the button that edits the currently selected Autofill profile.">
          Edit...
        </message>
        <message name="IDS_OPTIONS_MANAGE_AUTOFILL_SETTINGS_LINK" desc="The label of the 'Manage Autofill settings' link">
          Manage Autofill settings
        </message>
        <message name="IDS_AUTOFILL_HELP_LABEL" desc="The label of the Help link in the Autofill settings overlay.">
          About Autofill
        </message>
        <message name="IDS_AUTOFILL_ADD_ADDRESS_BUTTON" desc="The label of the button that adds a new Autofill address.">
          Add new street address...
        </message>
        <message name="IDS_AUTOFILL_ADD_CREDITCARD_BUTTON" desc="The label of the button that adds a new Autofill credit card.">
          Add new credit card...
        </message>
        <message name="IDS_AUTOFILL_OPTIONS_TITLE" desc="The title of the Autofill dialog.">
          Autofill settings
        </message>
        <message name="IDS_AUTOFILL_ADDRESSES_GROUP_NAME" desc="The name of the Addresses group of the Autofill dialog.">
          Addresses
        </message>
        <message name="IDS_AUTOFILL_CREDITCARDS_GROUP_NAME" desc="IThe name of the Credit Cards group of the Autofill dialog.">
          Credit cards
        </message>
        <message name="IDS_AUTOFILL_EDIT_ADDRESS_CAPTION" desc="The caption on the edit Autofill address dialog.">
          Edit address
        </message>
        <message name="IDS_AUTOFILL_ADD_ADDRESS_CAPTION" desc="The caption on the edit Autofill address dialog for the new entry.">
          Add an address
        </message>
        <message name="IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION" desc="The caption on the edit Autofill credit card dialog.">
          Edit credit card
        </message>
        <message name="IDS_AUTOFILL_ADD_CREDITCARD_CAPTION" desc="The caption on the edit Autofill credit card dialog the new entry.">
          Add a credit card
        </message>
        <message name="IDS_AUTOFILL_USE_WALLET_DATA" desc="The text for the checkbox that controls the Autofill/Wallet integration feature.">
          Sync credit cards and addresses using Google Payments
        </message>

        <message name="IDS_AUTOFILL_FIELD_LABEL_EMAIL" desc="The label of the Email entry.">
          Email
        </message>
        <message name="IDS_AUTOFILL_FIELD_LABEL_PHONE" desc="The label of the Phone entry.">
          Phone
        </message>
        <message name="IDS_AUTOFILL_FIELD_LABEL_NAME_ON_CARD" desc="The label of the Name on card entry.">
          Name on card
        </message>
        <message name="IDS_AUTOFILL_FIELD_LABEL_CREDIT_CARD_NUMBER" desc="The label of the Credit card number entry.">
          Credit card number
        </message>
        <message name="IDS_AUTOFILL_FIELD_LABEL_EXPIRATION_DATE" desc="The label of the Expiration date entry.">
          Expiration date
        </message>

        <!-- Extension settings -->
        <message name="IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE" desc="Title that appears in the dialogue title bar for manage extensions settings">
          Extensions
        </message>

        <!-- Font settings -->
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_TAB_TITLE" desc="Title that appears in the Fonts and Encoding subpage">
          Fonts and encoding
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_STANDARD_LABEL" desc="Label of the Standard font section of the Fonts and Encoding subpage">
          Standard font
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_SERIF_LABEL" desc="Label of the Serif font section of the Fonts and Encoding subpage">
          Serif font
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_SANS_SERIF_LABEL" desc="Label of the Sans-serif font section of the Fonts and Encoding subpage">
          Sans-serif font
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_FIXED_WIDTH_LABEL" desc="Label of the Fixed-width font section of the Fonts and Encoding subpage">
          Fixed-width font
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_MINIMUM_FONT_SIZE_TITLE" desc="Label of the Minimum font size section of the Fonts and Encoding subpage">
          Minimum font size
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SUB_DIALOG_ENCODING_TITLE" desc="Label of the Encoding section of the Fonts and Encoding subpage">
          Encoding
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_TINY" desc="Label for the 'Tiny' side of the font size range selector">
          Tiny
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_HUGE" desc="Label for the 'Huge' side of the font size range selector">
          Huge
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_LOREM_IPSUM" desc="Sample text of 'Lorem ipsum' used to show the selected font/size">
          Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_PLACEHOLDER" desc="Placeholder string for the Fonts and Encodings select menus">
          Loading...
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_ADVANCED_FONT_SETTINGS_INSTALL"
                 desc="Explanatory message about how to get the Advanced Font Settings extension">
          <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>Advanced font settings<ph name="END_LINK">&lt;/a&gt;</ph> (requires extension)
        </message>
        <message name="IDS_FONT_LANGUAGE_SETTING_ADVANCED_FONT_SETTINGS_OPTIONS"
                 desc="Link to the Advanced Font Settings extension's options page">
          Advanced font settings
        </message>

        <!-- Language & spell-checker settings -->
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_DIALOG_TITLE">
          Languages
        </message>
        <if expr="chromeos">
          <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_AND_INPUT_DIALOG_TITLE">
            Languages and input
          </message>
        </if>
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_LANGUAGES" desc="The label for the list of languages">
          Languages
        </message>
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_ADD_BUTTON"
                 desc="The label for the add button for adding a language">
          Add
        </message>
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_ADD_LANGUAGE_INSTRUCTIONS"
                 desc="Explanatory message about how to add and order languages">
          Add languages and drag to order them based on your preference.
        </message>
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_CANNOT_BE_DISPLAYED_IN_THIS_LANGUAGE"
                 desc="The label for a language that cannot be used for UI">
          <ph name="PRODUCT_NAME">$1<ex>Chrome OS</ex></ph> cannot be displayed in this language
        </message>
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_IS_DISPLAYED_IN_THIS_LANGUAGE"
                 desc="The label for a language that is currently used for UI">
          <ph name="PRODUCT_NAME">$1<ex>Chrome OS</ex></ph> is displayed in this language
        </message>
        <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_DISPLAY_IN_THIS_LANGUAGE"
                 desc="The label is used for a button that changes the UI
                       language of Chrome OS">
          Display <ph name="PRODUCT_NAME">$1<ex>Chrome OS</ex></ph> in this language
        </message>
        <if expr="not is_macosx">
          <message name="IDS_OPTIONS_SETTINGS_USE_THIS_FOR_SPELL_CHECKING"
                   desc="The label for a language a button that changes the spell check language of Chrome">
            Use this language for spell checking
          </message>
          <message name="IDS_OPTIONS_SETTINGS_CANNOT_BE_USED_FOR_SPELL_CHECKING"
                   desc="The label for a language that cannot be used for spell checking">
            This language cannot be used for spell checking
          </message>
          <message name="IDS_OPTIONS_SETTINGS_IS_USED_FOR_SPELL_CHECKING"
                   desc="The label for a language that is currently used for spell checking">
            This language is used for spell checking
          </message>
        </if>
        <if expr="not chromeos">
          <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_RELAUNCH_BUTTON"
                   desc="The label for the relaunch button for changing UI language">
            Relaunch
          </message>
        </if>
        <if expr="chromeos">
          <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_RELAUNCH_BUTTON"
                   desc="The label for the restart button for changing UI language">
            Restart
          </message>
        </if>
        <message name="IDS_OPTIONS_LANGUAGES_ADD_TITLE" desc="The title for the add language dialog.">
          Add language
        </message>
        <message name="IDS_OPTIONS_LANGUAGES_ADD_SELECT_LABEL" desc="The label for the add language select control.">
          Language:
        </message>
        <message name="IDS_OPTIONS_LANGUAGES_OFFER_TO_TRANSLATE_IN_THIS_LANGUAGE" desc="The label for a checkbox which indicates whether or not the language should be translated.">
          Offer to translate pages in this language
        </message>
        <message name="IDS_OPTIONS_LANGUAGES_CANNOT_TRANSLATE_IN_THIS_LANGUAGE" desc="The string displayed to user when the language cannot be translated.">
          This language cannot be translated
        </message>

        <if expr="is_android or is_ios">
          <message name="IDS_OPTIONS_SYSTEM_PROXIES_LABEL" desc="Mobile: The info label for the 'Proxy settings' button when managed by the system.">
            <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> is using your device's system proxy settings to connect to the network.
          </message>
        </if>
        <if expr="not is_android and not is_ios">
          <message name="IDS_OPTIONS_SYSTEM_PROXIES_LABEL" desc="The info label for the 'Proxy settings' button when managed by the system.">
            <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> is using your computer's system proxy settings to connect to the network.
          </message>
        </if>
        <message name="IDS_OPTIONS_EXTENSION_PROXIES_LABEL" desc="The info label for the 'Proxy settings' button when managed by an extension.">
          Your network proxy settings are being managed by an extension.
        </message>

        <message name="IDS_GOOGLE_CLOUD_PRINT" desc="The name of the Google Cloud Print product.">
          Google Cloud Print
        </message>
        <message name="IDS_OPTIONS_CURRENT_USER_ONLY" desc="In the multi profiles user list, the tooltip text noticing that only the current user can modify these settings.">
          You can only edit settings for the current user. Switch to this user to edit settings for it.
        </message>
        <message name="IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_DISABLED_BUTTON" desc="The label of the cloud connector configure button when it hasn't been set up yet.">
          Add printers
        </message>
        <message name="IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLED_LABEL" desc="The label of the cloud print setup button when it has been set up.">
          You have registered your printers with <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph> using the account <ph name="EMAIL">$2<ex>foo@bar.com</ex></ph>
        </message>
        <message name="IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLED_BUTTON" desc="The label of the cloud print connector configure button when it has been set up.">
          Disconnect printers
        </message>
        <message name="IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLING_BUTTON" desc="The label of the cloud connector configure button while it is being set up.">
          Enabling...
        </message>
        <message name="IDS_OPTIONS_SAFEBROWSING_ENABLEPROTECTION" desc="The label of the 'Protect you and your device from dangerous sites' checkbox">
          Protect you and your device from dangerous sites
        </message>
        <message name="IDS_OPTIONS_SAFEBROWSING_ENABLE_EXTENDED_REPORTING" desc="Checkbox label: should Chrome upload information about suspicious downloads and websites to Safe Browsing">
          Automatically report details of possible security incidents to Google
        </message>

        <if expr="chromeos">
          <message name="IDS_OPTIONS_FACTORY_RESET" desc="Name of the factory reset option on the Chrome settings page">
            Powerwash
          </message>
          <message name="IDS_OPTIONS_FACTORY_RESET_HEADING" desc="Name of the 'Factory reset' window">
            Restart your device
          </message>
          <message name="IDS_OPTIONS_FACTORY_RESET_DESCRIPTION" desc="Description of the factory reset option on the Chrome settings page">
            Remove all user accounts and reset your <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> device to be just like new.
          </message>
          <message name="IDS_OPTIONS_FACTORY_RESET_BUTTON" desc="Name of the button to activate the factory reset option on the Chrome settings page">
            Powerwash
          </message>
          <message name="IDS_OPTIONS_FACTORY_RESET_WARNING" desc="Warning text in the 'Factory Reset' window">
            A restart is required before your device can be reset with Powerwash.
          </message>
        </if>

        <message name="IDS_OPTIONS_IMPORT_DATA_BUTTON" desc="Label for the import data button.">
          Import bookmarks and settings...
        </message>

        <message name="IDS_OPTIONS_CONTROLLED_SETTING_POLICY" desc="Text displayed in the controlled settings bubble when a setting's value is enforced by policy.">
          This setting is enforced by your administrator.
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTING_EXTENSION" desc="Text displayed in the controlled settings bubble when a setting's value is enforced by an extension.">
          This setting is enforced by an extension.
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTING_EXTENSION_WITH_NAME" desc="Text displayed in the controlled settings bubble when a setting's value is enforced by an extension. The name of the extension would be displayed on the following line, thus the ending with ':'.">
          This setting is controlled by:
        </message>
        <message name="IDS_SETTINGS_CONTROLLED_SETTING_NAMED_EXTENSION" desc="Text displayed in the controlled settings indicator tooltip when a setting's value is enforced by an extension.">
          This setting is controlled by extension <ph name="NAME">$1<ex>Adblocker plusplus</ex></ph>
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTING_MANAGE_EXTENSION" desc="Text displayed for a link to manage extension from the controlled settings bubble.">
          Manage extension
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTING_RECOMMENDED" desc="Text displayed in the controlled settings bubble when a value is recommended for a setting through policy and the user has not overridden this recommendation.">
          You are following the administrator's recommendation for this setting.
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTING_HAS_RECOMMENDATION" desc="Text displayed in the controlled settings bubble when a value is recommended for a setting through policy but is currently overridden by a user-supplied value.">
          Your administrator recommends a specific value for this setting.
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTING_FOLLOW_RECOMMENDATION" desc="Link text displayed in the controlled settings bubble to clear the user-supplied value and start following the recommendation.">
          Follow recommendation
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTINGS_POLICY" desc="Text displayed in the controlled settings bubble when it is shown for a group of settings whose values are enforced by policy.">
          These settings are enforced by your administrator.
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTINGS_EXTENSION" desc="Text displayed in the controlled settings bubble when it is shown for a group of settings whose values are enforced by an extension.">
          These settings are enforced by an extension.
        </message>
        <message name="IDS_OPTIONS_CONTROLLED_SETTINGS_EXTENSION_WITH_NAME" desc="Text displayed in the controlled settings bubble when it is shown for a group of settings whose values are enforced by an extension. The name of the extension would be displayed on the following line, thus the ending with ':'.">
          These settings are controlled by:
        </message>

        <!-- Extension install location strings -->
        <message name="IDS_OPTIONS_INSTALL_LOCATION_UNKNOWN" desc="The text explaining the the installation location is unknown.">
          Not from Chrome Web Store.
        </message>
        <message name="IDS_OPTIONS_INSTALL_LOCATION_3RD_PARTY" desc="The text explaining the the installation came from a 3rd party app.">
          Installed by a third party.
        </message>
        <message name="IDS_OPTIONS_INSTALL_LOCATION_ENTERPRISE" desc="The text explaining the the installation of the extension came from an enterprise policy.">
          Installed by enterprise policy.
        </message>
        <message name="IDS_OPTIONS_INSTALL_LOCATION_SHARED_MODULE" desc="The text explaining the the installation of the extension was because of extensions that depend on this shared module">
          Installed because of dependent extension(s).
        </message>

        <!-- Extension blacklist state -->
        <message name="IDS_OPTIONS_BLACKLISTED_SECURITY_VULNERABILITY" desc="The text explaining the reason for disabling extension or app. The extension in question has a security vulnerability.">
          This extension contains a serious security vulnerability.
        </message>
        <message name="IDS_OPTIONS_BLACKLISTED_CWS_POLICY_VIOLATION" desc="The text explaining the reason for disabling extension or app. The extension in question violates Chrome Web Store policy.">
          This extension violates the Chrome Web Store policy.
        </message>
        <message name="IDS_OPTIONS_BLACKLISTED_POTENTIALLY_UNWANTED" desc="The text explaining the reason for disabling extension or app. The extension in question might have been installed without user consent.">
          This extension may have been added without your knowledge.
        </message>

        <!-- Options search page strings. -->
        <message name="IDS_OPTIONS_SEARCH_PAGE_TITLE" desc="Title of the settings search page.">
          Search results
        </message>
        <message name="IDS_OPTIONS_SEARCH_PAGE_NO_MATCHES" desc="Text description of a search that has no results.">
          No matches were found.
        </message>
        <message name="IDS_OPTIONS_SEARCH_PAGE_HELP_LABEL" desc="Help text for a serach that has no results.">
          Can't find what you're looking for?
        </message>
        <message name="IDS_OPTIONS_SEARCH_PAGE_HELP_TITLE" desc="Help link for a search that has no results.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> help
        </message>
        <message name="IDS_OPTIONS_SEARCH_PLACEHOLDER" desc="Text placeholder for an empty search field on Chrome OS.">
          Search settings
        </message>

        <!-- Reset Profile Settings strings -->
        <message name="IDS_RESET_PROFILE_SETTINGS_SECTION_TITLE" desc="The title of the section in chrome://settings that allows resetting some settings in a profile">
          Reset settings
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_DESCRIPTION" desc="A label describing the purpose of the 'reset profile settings' feature">
          Restore settings to their original defaults.
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_EXPLANATION" desc="A label describing the consequences of the 'reset profile settings' feature">
          This will reset your startup page, new tab page, search engine, and pinned tabs. It will also disable all extensions and clear temporary data like cookies. Your bookmarks, history and saved passwords will not be cleared.
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_BUTTON" desc="The text on the button in chrome://settings that allows resetting some settings in a profile">
          Reset settings
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_TITLE" desc="Dialog title">
          Reset settings
        </message>
        <message name="IDS_TRIGGERED_RESET_PROFILE_SETTINGS_TITLE" desc="Dialog title for reset dialog triggered by a third party tool">
          <ph name="THIRD_PARTY_TOOL_NAME">$1<ex>SuperDuper PC Cleaner Pro</ex></ph> wants to reset your settings.
        </message>
        <message name="IDS_TRIGGERED_RESET_PROFILE_SETTINGS_EXPLANATION" desc="Dialog title for reset dialog triggered by a third party tool">
          <ph name="THIRD_PARTY_TOOL_NAME">$1<ex>SuperDuper PC Cleaner Pro</ex></ph> wants to restore your Chrome settings to their original defaults. This will reset your homepage, new tab page and search engine, disable your extensions, and unpin all tabs. It will also clear other temporary and cached data, such as cookies, content and site data.
        </message>
        <message name="IDS_TRIGGERED_RESET_PROFILE_SETTINGS_DEFAULT_TOOL_NAME" desc="Default tool name when a reset was triggered but a name could not be found.">
          A cleanup tool
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_COMMIT_BUTTON" desc="Reset button of the Reset Profile Settings dialog">
          Reset
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_LOCALE" desc="Locale field in the feedback details of the Reset Profile Settings dialog">
          Locale
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_STARTUP_URLS" desc="Startup URLs tag in the feedback details of the Reset Profile Settings dialog">
          Startup URLs
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_STARTUP_TYPE" desc="Startup type tag in the feedback details of the Reset Profile Settings dialog">
          Startup type
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_HOMEPAGE" desc="Homepage tag in the feedback details of the Reset Profile Settings dialog">
          Homepage
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_HOMEPAGE_IS_NTP" desc="Tag in the feedback details of the Reset Profile Settings dialog">
          Homepage is the New Tab page
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_YES" desc="'Yes' value for 'Homepage is NTP' and 'Show homebutton' in the feedback details of the Reset Profile Settings dialog">
          Yes
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_NO" desc="'No' value for 'Homepage is NTP' and 'Show homebutton' in the feedback details of the Reset Profile Settings dialog">
          No
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_SHOW_HOME_BUTTON" desc="Tag in the feedback details of the Reset Profile Settings dialog">
          Show Home button
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_DSE" desc="Default search engine in the feedback details of the Reset Profile Settings dialog">
          Default search engine
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_EXTENSIONS" desc="Extensions tag in the feedback details of the Reset Profile Settings dialog">
          Extensions
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_SHORTCUTS" desc="List of Chrome shortcuts in the feedback details of the Reset Profile Settings dialog (shortcut refers to the desktop icon on windows)">
          Shortcut targets
        </message>
        <message name="IDS_RESET_PROFILE_SETTINGS_PROCESSING_SHORTCUTS" desc="A placeholder for the actual shortcuts in the Reset Profile Settings dialog (shortcut refers to the desktop icon on windows)">
          Processing shortcuts...
        </message>

        <!-- Automatic Settings Reset strings -->
        <message name="IDS_AUTOMATIC_SETTINGS_RESET_BANNER_TEXT" desc="The text to show in a banner at the top of the chrome://settings page. The banner is displayed when Chrome detects that some settings have been tampered with and were reset to factory defaults.">
          Chrome detected that some of your settings were corrupted by another program and reset them to their original defaults.
        </message>
        <message name="IDS_AUTOMATIC_SETTINGS_RESET_BANNER_RESET_BUTTON_TEXT" desc="The text on the reset button in the Automatic Settings Reset Banner suggesting to reset ALL settings after an automatic reset of SOME settings.">
          Reset all settings
        </message>
      </if>

      <!-- chrome://settings strings that are used by all platforms including Android -->
      <message name="IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK" desc="The label of the 'Manage passwords' link">
        Manage passwords
      </message>
      <message name="IDS_OPTIONS_HOMEPAGE_TITLE" desc="The title of the home page overlay" formatter_data="android_java">
        Home page
      </message>
      <message name="IDS_OPTIONS_STARTUP_PAGES_PLACEHOLDER" desc="The placeholder text in the custom startup urls dialog">
        Enter URL...
      </message>

      <!-- Autofill dialog: field labels. -->
      <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_EMAIL" desc="The placeholder/label text for email in the requestAutocomplete dialog.">
        Email address
      </message>
      <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_CARD_NUMBER" desc="The placeholder/label text for credit card number in the requestAutocomplete dialog.">
        Card number
      </message>
      <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_EXPIRY_MONTH" desc="The placeholder/label text for credit card expiration month in the requestAutocomplete dialog.">
        Month
      </message>
      <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_EXPIRY_YEAR" desc="The placeholder/label text for credit card expiration year in the requestAutocomplete dialog.">
        Year
      </message>
      <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_PHONE_NUMBER" desc="The placeholder/label text for phone number in the requestAutocomplete dialog.">
        Phone number
      </message>
      <message name="IDS_AUTOFILL_DIALOG_TOOLTIP_PHONE_NUMBER" desc="A tooltip explaining why the user must enter a phone number.">
        Merchants often need this in case there are problems shipping your order.
      </message>

      <!-- On Android, we use Google Play Services to handle all the UI for the Autofill Dialog -->
      <if expr="not is_android">
        <!-- Autofill dialog: title bar -->
        <message name="IDS_AUTOFILL_DIALOG_TITLE" desc="Title for autofill dialog which asks user to input address + payment info.">
          Pay
        </message>
        <message name="IDS_AUTOFILL_DIALOG_SIGN_IN" desc="This link text is shown when the user is not signed in to a GAIA account.">
          Sign in to pay with Google Payments
        </message>

        <!-- Autofill dialog: notification area -->
        <message name="IDS_AUTOFILL_DIALOG_SITE_WARNING" desc="Text that explains that user data will be sent to the site.">
          The following details will be shared with <ph name="SITE">$1<ex>www.shopping.com</ex></ph>
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VERIFY_CVV" desc="Text explaining a user must enter their CVV to continuing submitting for security purposes (while using Google Payments).">
          For your security, please verify your card details.
        </message>

        <!-- Autofill dialog: detail section -->
        <message name="IDS_AUTOFILL_DIALOG_EDIT" desc="Text of link in autofill dialog which allows user to edit address + payment info.">
          Edit
        </message>
        <message name="IDS_AUTOFILL_DIALOG_SECTION_CC" desc="Label for the credit card section of the autofill dialog.">
          Card details
        </message>
        <message name="IDS_AUTOFILL_DIALOG_SECTION_BILLING" desc="Label for the billing details (credit card + address) section of the autofill dialog.">
          Billing details
        </message>
        <message name="IDS_AUTOFILL_DIALOG_SECTION_SHIPPING" desc="Label for the shipping details section of the autofill dialog.">
          Shipping address
        </message>
        <message name="IDS_AUTOFILL_DIALOG_USING_BILLING_FOR_SHIPPING" desc="Text that is shown when the billing info will also be used for shipping.">
          Same as billing address
        </message>
        <message name="IDS_AUTOFILL_DIALOG_SUBMIT_BUTTON" desc="Button text for confirmation of user details.">
          Continue
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VERIFY_BUTTON" desc="Button text for verifying user details.">
          Verify
        </message>

        <!-- Autofill dialog: combobox menu items -->
        <message name="IDS_AUTOFILL_DIALOG_ADD_CREDIT_CARD" desc="Menu item for adding a new credit card in the autofill dialog.">
          New credit card...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_MANAGE_CREDIT_CARD" desc="Menu item for directing the user to a different UI that can manage credit cards.">
          Manage credit cards...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_ADD_BILLING_ADDRESS" desc="Menu item for adding a new billing address in the autofill dialog.">
          New billing address...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_MANAGE_BILLING_ADDRESS" desc="Menu item for directing the user to a different UI that can manage billing addresses.">
          Manage billing addresses...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_ADD_BILLING_DETAILS" desc="Menu item for adding new billing details (credit card + address) in the autofill dialog.">
          New billing details...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_MANAGE_BILLING_DETAILS" desc="Menu item for directing the user to a different UI that can manage billing details.">
          Manage billing details...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_ADD_SHIPPING_ADDRESS" desc="Menu item for adding new shipping address in the autofill dialog.">
          New shipping address...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_MANAGE_SHIPPING_ADDRESS" desc="Menu item for directing the user to a different UI that can manage shipping addresses.">
          Manage shipping addresses...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_USE_BILLING_FOR_SHIPPING" desc="Menu Item label that asks whether the billing info should also be used for shipping info.">
          Use billing address for shipping
        </message>
        <message name="IDS_AUTOFILL_DIALOG_ENTER_CREDIT_CARD" desc="Menu item label that allows a user to manually enter credit card information.">
          Enter credit card...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_ENTER_BILLING_DETAILS" desc="Menu item label that allows a user to manually enter credit card information.">
          Enter billing details...
        </message>
        <message name="IDS_AUTOFILL_DIALOG_USE_DIFFERENT_SHIPPING_ADDRESS" desc="Menu Item label that allows a user to manually input a shipping address that differs from their billing address.">
          Use different shipping address
        </message>

        <!-- Autofill dialog: legal documents -->
        <message name="IDS_AUTOFILL_DIALOG_LOCATION_DISCLOSURE" desc="Text at the bottom of the autofill dialog which stands alone to inform the user that they'll be sharing their location with Google Payments if they choose to proceed.">
          By clicking Continue you agree to use Google Payments. To protect you from fraud, information about your computer (including its location) will be shared with Google Payments.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_LOCATION_DISCLOSURE_WITH_LEGAL_DOCS" desc="Text at the bottom of the autofill dialog which informs the user that they'll be sharing their location with Google Payments if they choose to proceed, appended to a message about accepting other legal documents like Terms of Service.">
          <ph name="LEGAL_DOC_AGREEMENT">$1<ex>By clicking Continue you agree to the Google Payments Terms of Service and Privacy Policy.</ex></ph> To protect you from fraud, information about your computer (including its location) will be shared with Google Payments.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_LEGAL_LINKS_2" desc="Label at the bottom of the autofill dialog that is shown when a user needs to accept legal documents (ex: Privacy Policy, Terms Of Service).">
          By clicking Continue you agree to the <ph name="LEGAL_DOC_LINK_TEXT_1">$1<ex>Google Payments Terms Of Service</ex></ph> and <ph name="LEGAL_DOC_LINK_TEXT_2">$2<ex>Privacy Policy</ex></ph>.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_LEGAL_LINKS_3" desc="Label at the bottom of the autofill dialog that is shown when a user needs to accept legal documents (ex: Privacy Policy, Terms Of Service).">
          By clicking Continue you agree to the <ph name="LEGAL_DOC_LINK_TEXT_1">$1<ex>Google Payments Terms Of Service</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_2">$2<ex>Terms of Use</ex></ph>, and <ph name="LEGAL_DOC_LINK_TEXT_3">$3<ex>Privacy Policy</ex></ph>.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_LEGAL_LINKS_4" desc="Label at the bottom of the autofill dialog that is shown when a user needs to accept legal documents (ex: Privacy Policy, Terms Of Service).">
          By clicking Continue you agree to the <ph name="LEGAL_DOC_LINK_TEXT_1">$1<ex>Google Payments Terms Of Service</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_2">$2<ex>Terms of Use</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_3">$3<ex>Further Terms of Use</ex></ph>, and <ph name="LEGAL_DOC_LINK_TEXT_4">$4<ex>Privacy Policy</ex></ph>.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_LEGAL_LINKS_5" desc="Label at the bottom of the autofill dialog that is shown when a user needs to accept legal documents (ex: Privacy Policy, Terms Of Service).">
          By clicking Continue you agree to the <ph name="LEGAL_DOC_LINK_TEXT_1">$1<ex>Google Payments Terms Of Service</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_2">$2<ex>Terms of Use</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_3">$3<ex>Further Terms of Use</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_4">$4<ex>Further Terms of Use</ex></ph>, and <ph name="LEGAL_DOC_LINK_TEXT_5">$5<ex>Privacy Policy</ex></ph>.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_LEGAL_LINKS_6" desc="Label at the bottom of the autofill dialog that is shown when a user needs to accept legal documents (ex: Privacy Policy, Terms Of Service).">
          By clicking Continue you agree to the <ph name="LEGAL_DOC_LINK_TEXT_1">$1<ex>Google Payments Terms Of Service</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_2">$2<ex>Terms of Use</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_3">$3<ex>Further Terms of Use</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_4">$4<ex>Further Terms of Use</ex></ph>, <ph name="LEGAL_DOC_LINK_TEXT_5">$5<ex>Further Terms of Use</ex></ph>, and <ph name="LEGAL_DOC_LINK_TEXT_6">$6<ex>Privacy Policy</ex></ph>.
        </message>

        <!-- Autofill dialog: validation messages -->
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_INVALID_EMAIL_ADDRESS" desc="Message displayed to user when email address validation fails.">
          Invalid email address. Please check and try again.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_INVALID_CREDIT_CARD_NUMBER" desc="Message displayed to user when credit card number validation fails.">
          Invalid card number. Please check and try again.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_INVALID_CREDIT_CARD_SECURITY_CODE" desc="Message displayed to user when credit card security code validation fails.">
          Invalid CVC code. Please check and try again.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_INVALID_CREDIT_CARD_EXPIRATION_DATE" desc="Message displayed to user when credit card expiration date validation fails.">
          The card is expired. Please check the date or enter a new card.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_UNACCEPTED_GENERIC_CARD" desc="Message displayed to user when a site doesn't accept the credit card type they've entered.">
          This site doesn't accept this brand of card.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_UNACCEPTED_AMEX" desc="Message displayed to user when a site doesn't accept American Express.">
          This site doesn't accept American Express.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_UNACCEPTED_DISCOVER" desc="Message displayed to user when a site doesn't accept Discover.">
          This site doesn't accept Discover.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_UNACCEPTED_MASTERCARD" desc="Message displayed to user when a site doesn't accept MasterCard.">
          This site doesn't accept MasterCard.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_UNACCEPTED_VISA" desc="Message displayed to user when a site doesn't accept Visa.">
          This site doesn't accept Visa.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_INVALID_PHONE_NUMBER" desc="Message displayed to user when phone number validation fails.">
          Invalid phone number. Please check and try again.
        </message>
        <message name="IDS_AUTOFILL_DIALOG_VALIDATION_WAITING_FOR_RULES" desc="Message displayed to user when validation rules are still downloading.">
          Validating...
        </message>

        <!-- Autofill dialog post-submit bubbles -->
        <message name="IDS_AUTOFILL_NEW_CREDIT_CARD_BUBBLE_LINK" desc="The text of a link at the bottom of the autofill dialog bubble that sends users to a Google Payments billing/card management page.">
          Manage credit cards
        </message>
      </if>

      <message name="IDS_AUTOFILL_FROM_GOOGLE_ACCOUNT" desc="The name of the Google product that stores user addresses or credit cards in the cloud." formatter_data="android_java">
        Google Payments
      </message>

      <message name="IDS_APPEARANCE_GROUP_NAME" desc="The title of the appearance group">
        Appearance
      </message>
      <if expr="not is_linux or chromeos">
        <message name="IDS_THEMES_GROUP_NAME" desc="The title of the themes group">
          Themes
        </message>
      </if>
      <message name="IDS_THEMES_RESET_BUTTON" desc="The button to reset your theme">
        Reset to default theme
      </message>
      <if expr="is_posix and not is_macosx and not is_ios">
        <message name="IDS_THEMES_GTK_BUTTON" desc="The button to choose GTK colors and icons as the current theme.">
          Use GTK+ theme
        </message>
        <message name="IDS_THEMES_SET_CLASSIC" desc="The button to choose the classic windows theme in GTK">
          Use Classic theme
        </message>
        <message name="IDS_SHOW_WINDOW_DECORATIONS" desc="The label of a radio button in the options dialog for using the system title bar and borders.">
          Use system title bar and borders
        </message>
      </if>
      <message name="IDS_THEMES_GALLERY_BUTTON" desc="The button to get more themes">
        Get themes
      </message>

      <!-- Collected cookies window -->
      <message name="IDS_COLLECTED_COOKIES_DIALOG_TITLE" desc="The title of the collect cookies dialog">
        Cookies set by this page
      </message>
      <message name="IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL" desc="The label used to describe the cookies that were allowed">
        The following cookies were set when you viewed this page:
      </message>
      <message name="IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL" desc="The label used to describe the cookies that were blocked">
        The following cookies were blocked:
      </message>
      <message name="IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED" desc="The label used to describe the cookies that were blocked include a note that third-party cookies were blocked without exception.">
        The following cookies were blocked (third-party cookies are being blocked without exception):
      </message>
      <message name="IDS_COLLECTED_COOKIES_ALLOW_BUTTON" desc="A button that lets the use create a content settings exception to allow certain domains.">
        Allow
      </message>
      <message name="IDS_COLLECTED_COOKIES_SESSION_ONLY_BUTTON" desc="A button that lets the use create a content settings exception to allow certain domains for a session only. Please consider that this text will be displayed as a button when translating.">
        Clear on exit
      </message>
      <message name="IDS_COLLECTED_COOKIES_BLOCK_BUTTON" desc="A button that lets the use create a content settings exception to block certain domains.">
        Block
      </message>
      <message name="IDS_COLLECTED_COOKIES_ALLOW_RULE_CREATED" desc="A notification that is displayed when a content exception to allow cookies was created.">
        Cookies from <ph name="DOMAIN">$1<ex>example.com</ex></ph> allowed.
      </message>
      <message name="IDS_COLLECTED_COOKIES_BLOCK_RULE_CREATED" desc="A notification that is displayed when a content exception to block cookies was created.">
        Cookies from <ph name="DOMAIN">$1<ex>example.com</ex></ph> blocked.
      </message>
      <message name="IDS_COLLECTED_COOKIES_SESSION_RULE_CREATED" desc="A notification that is displayed when a content exception to allow cookies for session only was created.">
        Cookies from <ph name="DOMAIN">$1<ex>example.com</ex></ph> will be cleared on exit.
      </message>
      <if expr="is_macosx">
        <message name="IDS_COLLECTED_COOKIES_MULTIPLE_ALLOW_RULES_CREATED" desc="A notification that is displayed when multiple content exceptions to allow cookies were created.">
          Cookies from multiple sites allowed.
        </message>
        <message name="IDS_COLLECTED_COOKIES_MULTIPLE_BLOCK_RULES_CREATED" desc="A notification that is displayed when multiple content exceptions to block cookies were created.">
          Cookies from multiple sites blocked.
        </message>
        <message name="IDS_COLLECTED_COOKIES_MULTIPLE_SESSION_RULES_CREATED" desc="A notification that is displayed when multiple content exceptions to allow cookies for session only were created.">
          Cookies from multiple sites will be cleared on exit.
        </message>
      </if>
      <message name="IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_TAB_LABEL" desc="The label in a tabbed pane that holds the UI controls for the cookies allowed while loading the page.">
        Allowed
      </message>
      <message name="IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_TAB_LABEL" desc="The label in a tabbed pane that holds the UI controls for the cookies blocked while loading the page.">
        Blocked
      </message>
      <message name="IDS_COLLECTED_COOKIES_INFOBAR_MESSAGE" desc="The string shown in the infobar after the user has changed the allowed/blocked state of a cookie, reminding them to reload the page in order for the new cookies to take effect.">
        New cookie settings will take effect after reloading the page.
      </message>
      <message name="IDS_COLLECTED_COOKIES_INFOBAR_BUTTON" desc="The string used in the infobar button allowing the user to reload the page directly from the infobar.">
        Reload
      </message>

      <!-- Accessiblility strings for Inforbars in Views -->
      <if expr="toolkit_views">
        <message name="IDS_ACCNAME_INFOBAR_CONTAINER" desc="The accessible name for the infobar container.">
          Infobar Container
        </message>
        <message name="IDS_ACCNAME_INFOBAR_WARNING" desc="The accessible name for the warning infobar type.">
          Warning
        </message>
        <message name="IDS_ACCNAME_INFOBAR_PAGE_ACTION" desc="The accessible name for page action infobar type.">
          Page Action
        </message>
      </if>

      <!-- Auto-login infobar -->
      <if expr="is_ios">
        <message name="IDS_AUTOLOGIN_INFOBAR_MESSAGE" desc="The string shown in the infobar explaining that they can press one button to auto-login instead of entering their user name and password. [length: 60em]">
          Automatic sign-in is available <ph name="EMAIL_ADDRESS">$1</ph>
        </message>
        <message name="IDS_AUTOLOGIN_INFOBAR_OK_BUTTON" desc="The string used in the infobar button that the user presses to perform the auto-login. [length: 10em]">
          Sign in
        </message>
        <message name="IDS_AUTOLOGIN_INFOBAR_CANCEL_BUTTON" desc="Mobile: The string used in the autologin infobar button that the user presses to close the infobar without logging in.">
          Cancel
        </message>
      </if>

      <message name="IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_OK_BUTTON" desc="The string used in the dialog for the button that means 'create a new profile'.">
        Create a new user
      </message>
      <message name="IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_CANCEL_BUTTON" desc="The string used in the dialog for the button that means 'go ahead and sign in'.">
        Sign in anyway
      </message>

      <!-- One click sign-in bubble and dialog -->
      <message name="IDS_ONE_CLICK_BUBBLE_UNDO" desc="The text for the undo button in the one click sign-in bubble.">
        Undo
      </message>
      <message name="IDS_ONE_CLICK_SIGNIN_BUBBLE_MESSAGE" desc="The body of the sync promo NTP bubble.">
        Your bookmarks, history, and other settings will be synced to your Google Account.
      </message>
      <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_OK_BUTTON" desc="The text of the OK button of the one click sign-in dialog.">
        OK, got it
      </message>
      <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_UNDO_BUTTON" desc="The text of the undo button of the one click sign-in dialog.">
        Undo
      </message>
      <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_ADVANCED" desc="The advanced link in the one click sign-in dialog. Clicking the link will take the user to advanced settings.">
        Advanced
      </message>
      <message name="IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_TITLE" desc="The title of the modal dialog window that opens when the user signs in with a different account.">
        Sign in
      </message>

      <!-- Enterprise sign-in profile linking -->
      <message name="IDS_ENTERPRISE_SIGNIN_PROFILE_LINK_LEARN_MORE" desc="The link to get more information about profile linking after signing in to an enterprise account">
        Learn more
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_CREATE_NEW_PROFILE" desc="Text of the button to create a new profile after enterprise account sign-in">
        Create a new user
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_CANCEL" desc="Text of the button to cancel sign-in">
        Cancel
      </message>

      <!-- Enterprise sign-in profile linking -->
      <!-- TODO(dconnelly): remove "new-style" once the old dialog is gone. -->
      <message name="IDS_ENTERPRISE_SIGNIN_CREATE_NEW_PROFILE_NEW_STYLE" desc="Text of the button to create a new profile after enterprise account sign-in">
        Create a new profile
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_CONTINUE_NEW_STYLE" desc="Text of the button to link the current profile with the signed-in enterprise account">
        Link data
      </message>

      <message name="IDS_ENTERPRISE_SIGNIN_ALERT_NEW_STYLE" desc="The text of the prompt to create a new profile after signing in to an enterprise account">
        This account is managed by <ph name="DOMAIN">$1<ex>example.com</ex></ph>
      </message>

      <!-- Cookies Window -->
      <message name="IDS_COOKIES_WEBSITE_PERMISSIONS_WINDOW_TITLE" desc="The title of the redesigned Cookies Window that lets you manage cookies, storage quota for websites and other permissions per-website">
        Cookies and site data
      </message>
      <message name="IDS_COOKIES_SEARCH_COOKIES" desc="Placeholder text shown in the search box in the Cookies Window">
        Search cookies
      </message>
      <message name="IDS_COOKIES_REMOVE_LABEL" desc="The label of the 'Remove' button in the Cookies Window">
        Remove
      </message>
      <message name="IDS_COOKIES_REMOVE_ALL_LABEL" desc="The label of the 'Remove All' button in the Cookies Window">
        Remove all
      </message>
      <message name="IDS_COOKIES_REMOVE_ALL_SHOWN_LABEL" desc="The label of the 'Remove All Shown' button after a query search string is entered in the Cookies Window">
        Remove all shown
      </message>
      <message name="IDS_COOKIES_COOKIE_NAME_LABEL" desc="The Cookie Name label">
        Name:
      </message>
      <message name="IDS_COOKIES_COOKIE_CONTENT_LABEL" desc="The Cookie Content label">
        Content:
      </message>
      <message name="IDS_COOKIES_COOKIE_DOMAIN_LABEL" desc="The Cookie Domain label">
        Domain:
      </message>
      <message name="IDS_COOKIES_COOKIE_PATH_LABEL" desc="The Cookie Path label">
        Path:
      </message>
      <message name="IDS_COOKIES_COOKIE_SENDFOR_LABEL" desc="The Cookie Send For label">
        Send for:
      </message>
      <message name="IDS_COOKIES_COOKIE_ACCESSIBLE_TO_SCRIPT_LABEL" desc="The Cookie Accessible to Script label">
        Accessible to script:
      </message>
      <message name="IDS_COOKIES_COOKIE_CREATED_LABEL" desc="The Cookie Created label">
        Created:
      </message>
      <message name="IDS_COOKIES_COOKIE_EXPIRES_LABEL" desc="The Cookie Expires label">
        Expires:
      </message>

      <message name="IDS_COOKIES_COOKIE_EXPIRES_SESSION" desc="The Cookie Expires field value for a session cookie">
        When the browsing session ends
      </message>

      <message name="IDS_COOKIES_COOKIE_SENDFOR_ANY" desc="Send Cookie for any kind of connection">
        Any kind of connection
      </message>
      <message name="IDS_COOKIES_COOKIE_SENDFOR_SECURE" desc="Send Cookie for any kind of connection">
        Secure connections only
      </message>
      <message name="IDS_COOKIES_COOKIE_SENDFOR_FIRSTPARTY" desc="Send Cookie for any first-party connection">
        First-party connections only
      </message>
      <message name="IDS_COOKIES_COOKIE_SENDFOR_SECURE_FIRSTPARTY" desc="Send Cookie for secure, first-party connections">
        Secure first-party connections only
      </message>
      <message name="IDS_COOKIES_COOKIE_ACCESSIBLE_TO_SCRIPT_YES" desc="Accessible to Script">
        Yes
      </message>
      <message name="IDS_COOKIES_COOKIE_ACCESSIBLE_TO_SCRIPT_NO" desc="Accessible to Script">
        No (HttpOnly)
      </message>
      <message name="IDS_COOKIES_COOKIE_NONESELECTED" desc="Field value when no cookie is selected">
        &lt;no cookie selected&gt;
      </message>
      <message name="IDS_COOKIES_DOMAIN_COLUMN_HEADER" desc="The label of the Domain header in the Cookies table">
        Site
      </message>
      <message name="IDS_COOKIES_DATA_COLUMN_HEADER" desc="The label of the Locally Stored Data header in the Cookies table">
        Locally stored data
      </message>
      <message name="IDS_COOKIES_SINGLE_COOKIE" desc="The text displayed when there is one cookie in the Cookies table">
        1 cookie
      </message>
      <message name="IDS_COOKIES_PLURAL_COOKIES" desc="The text displayed when there are two or more cookies in the Cookies table">
        <ph name="COOKIES">$1<ex>42</ex></ph> cookies
      </message>
      <message name="IDS_COOKIES_WEB_DATABASE_DESCRIPTION_LABEL" desc="The Database Description label">
        Description:
      </message>
      <message name="IDS_COOKIES_WEB_DATABASE_UNNAMED_NAME" desc="The the name displayed for a Database with an empty name attribute.">
        &lt;unnamed&gt;
      </message>
      <if expr="is_macosx">
        <message name="IDS_COOKIES_LOCAL_STORAGE_KEY_LABEL" desc="The label of the Local Storage key being set">
          Key:
        </message>
        <message name="IDS_COOKIES_LOCAL_STORAGE_VALUE_LABEL" desc="The label of the Local Storage value being set">
          Value:
        </message>
      </if>
      <message name="IDS_COOKIES_LOCAL_STORAGE_ORIGIN_LABEL" desc="The Local Storage Origin label">
        Origin:
      </message>
      <message name="IDS_COOKIES_LOCAL_STORAGE_SIZE_ON_DISK_LABEL" desc="The Local Storage Size on disk label">
        Size on disk:
      </message>
      <message name="IDS_COOKIES_LOCAL_STORAGE_LAST_MODIFIED_LABEL" desc="The Local Storage Last modified label">
        Last modified:
      </message>
      <message name="IDS_COOKIES_COOKIES" desc="Label for folder under which a list of cookies appear">
        Cookies
      </message>
      <message name="IDS_COOKIES_APPLICATION_CACHES" desc="Label for folder under which a list of application caches (name of an HTML standard) are stored">
        Application caches
      </message>
      <message name="IDS_COOKIES_APPLICATION_CACHE" desc="The text shown when there is an Application Cache (name of an HTML standard) in the Cookies table">
        Application cache
      </message>
      <message name="IDS_COOKIES_FLASH_LSO" desc="The text shown when Flash has Local Shared Objects (informally known as 'Flash cookies') stored">
        Flash data
      </message>
      <message name="IDS_COOKIES_APPLICATION_CACHE_MANIFEST_LABEL" desc="The Manifest label (manifest is a URL specified by the application cache)">
        Manifest:
      </message>
      <if expr="is_macosx">
        <message name="IDS_COOKIES_SIZE_LABEL" desc="The Size label, to indicate how much space is taken by a database or application cache">
          Size:
        </message>
      </if>
      <message name="IDS_COOKIES_DATABASE_STORAGE" desc="The text shown when there is either Web Database or Indexed Database Storage (names of HTML standards) in the Cookies table">
        Database storage
      </message>
      <message name="IDS_COOKIES_WEB_DATABASES" desc="Label for the folder under which a list of web databases (name of an HTML standard) are displayed">
        Web databases
      </message>
      <if expr="is_macosx">
        <message name="IDS_COOKIES_WEB_DATABASE_NAME" desc="Label for the name of an individual web databases (name of an HTML standard) are displayed">
          Database name:
        </message>
      </if>
      <message name="IDS_COOKIES_LOCAL_STORAGE" desc="Label for local storage (name of an HTML standard)">
        Local storage
      </message>
      <message name="IDS_COOKIES_SESSION_STORAGE" desc="Label for session storage (name of an HTML standard)">
        Session storage
      </message>
      <message name="IDS_COOKIES_INDEXED_DB" desc="The text shown when there is an Indexed Database (name of an HTML standard) in the Cookies table">
        Indexed database
      </message>
      <message name="IDS_COOKIES_INDEXED_DBS" desc="Label for Indexed Databases (name of an HTML standard)">
        Indexed databases
      </message>
      <message name="IDS_COOKIES_FILE_SYSTEM" desc="The text shown when there is a file system (name of an HTML standard) in the Cookies table">
        File system
      </message>
      <message name="IDS_COOKIES_FILE_SYSTEMS" desc="Label for the folder under which a list of file systems (name of an HTML standard) are displayed">
        File systems
      </message>
      <message name="IDS_COOKIES_FILE_SYSTEM_TEMPORARY_USAGE_LABEL" desc="Label for a temporary file system's disk usage.">
        Temporary storage:
      </message>
      <message name="IDS_COOKIES_FILE_SYSTEM_PERSISTENT_USAGE_LABEL" desc="Label for a persistent file system's disk usage.">
        Persistent storage:
      </message>
      <message name="IDS_COOKIES_FILE_SYSTEM_USAGE_NONE" desc="Value displayed when no file system of a particular type exists.">
        None
      </message>
      <message name="IDS_COOKIES_LAST_ACCESSED_LABEL" desc="The last access date label">
        Last accessed:
      </message>
      <message name="IDS_COOKIES_CHANNEL_ID" desc="The text shown when there is a channel id in the Cookies table">
        Channel ID
      </message>
      <message name="IDS_COOKIES_CHANNEL_IDS" desc="Label for the folder under which a list of TLS Channel IDs (name of an internet standard) are displayed">
        Channel IDs
      </message>
      <message name="IDS_COOKIES_CHANNEL_ID_ORIGIN_LABEL" desc="The channel id label for the server domain">
        Domain:
      </message>
      <message name="IDS_COOKIES_CHANNEL_ID_TYPE_LABEL" desc="The channel id Type label">
        Certificate Type:
      </message>
      <message name="IDS_COOKIES_CHANNEL_ID_CREATED_LABEL" desc="The channel id Created label">
        Created:
      </message>
      <message name="IDS_COOKIES_CHANNEL_ID_EXPIRES_LABEL" desc="The channel id Expires label">
        Expires:
      </message>
      <message name="IDS_COOKIES_SERVICE_WORKER" desc="The text shown when there is data for Service Workers within an origin (name of a Web standard) in the Cookies table">
        Service Workers
      </message>
      <message name="IDS_COOKIES_SERVICE_WORKERS" desc="Label for Service Workers (name of an HTML standard)">
        Service Workers
      </message>
      <message name="IDS_COOKIES_SERVICE_WORKER_SCOPES_LABEL" desc="Label for list of Service Worker (name of an HTML standard) patterns">
        Scopes:
      </message>
      <message name="IDS_COOKIES_CACHE_STORAGE" desc="The text shown when there is Cache Storage (name of a Web standard) in the Cookies table">
        Cache Storage
      </message>
      <message name="IDS_CLIENT_CERT_ECDSA_SIGN" translateable="false" desc="">
        ecdsa_sign
      </message>

      <!-- 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>

      <!-- Strings used for non-Android builds -->
      <if expr="not is_android">
        <message name="IDS_APP_DEFAULT_PAGE_NAME"
                 desc="Default name for the first 'Apps' page on the New Tab Page.">
          Apps
        </message>
        <message name="IDS_APP_LAUNCHER_TAB_TITLE"
                 desc="Default name for stand alone web page to serve as an App launcher when the new tab doesn't show apps.">
          Apps
        </message>
        <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">
          Going incognito doesn’t hide your browsing from your employer, your internet service provider, or the websites you visit.
        </message>
        <message name="IDS_NEW_TAB_GUEST_SESSION_HEADING"
              desc="Heading used when a person enters Guest Session">
          You’re browsing as a Guest
        </message>
        <message name="IDS_NEW_TAB_GUEST_SESSION_LEARN_MORE_LINK"
              desc="Guest Session link text to learn more">
          Learn more
        </message>
        <if expr="chromeos">
          <message name="IDS_NEW_TAB_GUEST_SESSION_DESCRIPTION"
              desc="Used when a person enters Guest Session">
            Pages you view in this window won’t appear in the browser history and they won’t leave other traces, like cookies, on the computer after you sign out. Files you download and bookmarks you create won’t be preserved.
          </message>
        </if>
        <if expr="not chromeos">
          <message name="IDS_NEW_TAB_GUEST_SESSION_DESCRIPTION"
              desc="Used when a person enters Guest Session">
            Pages you view in this window won’t appear in the browser history and they won’t leave other traces, like cookies, on the computer after you close all open Guest windows. Any files you download will be preserved, however.
          </message>
        </if>
        <message name="IDS_NEW_TAB_TILE_GRID_ACCESSIBLE_DESCRIPTION"
                 desc="Help message for screenreader users, spoken when navigating to a tile grid for the first time.">
          Use left and right arrow keys to navigate.
        </message>
        <message name="IDS_NEW_TAB_APP_INSTALL_HINT_LABEL" desc="Text for the plus icon on the NTP that links to the web store.">
          Add more apps
        </message>
        <message name="IDS_NEW_TAB_MOST_VISITED"
                 desc="The name for the 'Most Visited' navigation control on the New Tab Page.">
          Most visited
        </message>
      </if>

      <message name="IDS_NEW_TAB_RESTORE_THUMBNAILS_SHORT_LINK"
               desc="The link that restores previously removed thumbnails. Context is 'Thumbnail removed. Undo | Restore all'">
        Restore all
      </message>

      <message name="IDS_NEW_TAB_ATTRIBUTION_INTRO"
               desc="Leading sentence above a custom logo that the theme artist has provided">
        Theme created by
      </message>
      <message name="IDS_NEW_TAB_THUMBNAIL_REMOVED_NOTIFICATION"
               desc="Notification text shown when a thumbnail has been removed from the most visited section.">
        Thumbnail removed.
      </message>
      <message name="IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE"
         desc="Action link text to undo removing a thumbnail from the most visited section.">
        Undo
      </message>
      <message name="IDS_NEW_TAB_REMOVE_THUMBNAIL_TOOLTIP"
         desc="Tooltip text for the button that removes/blacklists the thumbnail. Once removed the thumbnail will not show up on the new tab page again.">
        Don't show on this page
      </message>
      <message name="IDS_NEW_TAB_PAGE_SWITCHER_CHANGE_TITLE"
         desc="Title for accessibility of the 'page-switcher-start' or 'page-switcher-end' button when switching from one type (determined based on title) of card to another">
        Go to <ph name="PAGE_TITLE">$1<ex>Apps</ex></ph>
      </message>
      <message name="IDS_NEW_TAB_PAGE_SWITCHER_SAME_TITLE"
         desc="Title for accessibility of the 'page-switcher-start' or 'page-switcher-end' button when switching between pages which have the same title">
        More <ph name="PAGE_TITLE">$1<ex>Apps</ex></ph>
      </message>
      <message name="IDS_NEW_TAB_PAGE_APPS_PROMO_TITLE"
         desc="Title for the app launcher promo box shown on apps pages.">
        Discover the Chrome App Launcher
      </message>

      <if expr="not use_titlecase">
        <message name="IDS_NEW_TAB_APP_OPTIONS"
                 desc="Text for the context menu item that takes the user to the options of an app. (In sentence case.)">
          Options
        </message>
        <message name="IDS_NEW_TAB_APP_DETAILS"
                 desc="Text for the context menu item that takes the user to the app in Web Store. (In sentence case.)">
          View in Web Store
        </message>
        <if expr="is_macosx">
          <message name="IDS_NEW_TAB_APP_CREATE_SHORTCUT"
                   desc="Text for the context menu item that creates an app shortcut. (In sentence case.)">
            Create shortcut...
          </message>
        </if>
        <if expr="not is_macosx">
          <message name="IDS_NEW_TAB_APP_CREATE_SHORTCUT"
                   desc="Text for the context menu item that creates an app shortcut. (In sentence case.)">
            Create shortcuts...
          </message>
        </if>
        <message name="IDS_APP_CONTEXT_MENU_SHOW_INFO"
                 desc="Text for the context menu item that shows the application information. (In sentence case.)">
          App info
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_PINNED"
                 desc="Text for the button that opens the app in a pinned tab. (In sentence case.)">
          Open as pinned tab
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_REGULAR"
                 desc="Text for the button that opens the app in a regular tab. (In sentence case.)">
          Open as regular tab
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_WINDOW"
                 desc="Text for the button that opens the app in an app window. (In sentence case.)">
          Open as window
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_FULLSCREEN"
                 desc="Text for the button that opens the app full screen. (In sentence case.)">
          Open full screen
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_MAXIMIZED"
                 desc="Text for the button that opens the app maximized. (In sentence case.)">
          Open maximized
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_TAB"
                 desc="Text for the button that opens the app in a tab. (In sentence case.)">
          Open in a tab
        </message>
      </if>

      <if expr="use_titlecase">
        <message name="IDS_NEW_TAB_APP_OPTIONS"
                 desc="Text for the context menu item that takes the user to the options of an app. (In title case.)">
          Options
        </message>
        <message name="IDS_NEW_TAB_APP_DETAILS"
                 desc="Text for the context menu item that takes the user to the app in Web Store. (In title case.)">
          View in Web Store
        </message>
        <if expr="is_macosx">
          <message name="IDS_NEW_TAB_APP_CREATE_SHORTCUT"
                   desc="Text for the context menu item that creates an app shortcut. (In title case.)">
            Create Shortcut...
          </message>
        </if>
        <if expr="not is_macosx">
          <message name="IDS_NEW_TAB_APP_CREATE_SHORTCUT"
                   desc="Text for the context menu item that creates an app shortcut. (In title case.)">
            Create Shortcuts...
          </message>
        </if>
        <message name="IDS_APP_CONTEXT_MENU_SHOW_INFO"
                 desc="Text for the context menu item that shows the application information. (In title case.)">
          App Info
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_PINNED"
                 desc="Text for the button that opens the app in a pinned tab. (In title case.)">
          Open as Pinned Tab
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_REGULAR"
                 desc="Text for the button that opens the app in a regular tab. (In title case.)">
          Open as Regular Tab
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_WINDOW"
                 desc="Text for the button that opens the app in an app window. (In title case.)">
          Open as Window
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_FULLSCREEN"
                 desc="Text for the button that opens the app full screen. (In title case.)">
          Open Full Screen
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_MAXIMIZED"
                 desc="Text for the button that opens the app maximized. (In title case.)">
          Open Maximized
        </message>
        <message name="IDS_APP_CONTEXT_MENU_OPEN_TAB"
                 desc="Text for the button that opens the app in a tab. (In title case.)">
          Open in a Tab
        </message>
      </if>

      <!-- Multi-profile -->
      <message name="IDS_PROFILES_OPTIONS_GROUP_NAME" desc="The name of the sync group in the options dialog when using the new Profiles UI.">
        People
      </message>
      <if expr="is_macosx">
        <message name="IDS_PROFILES_BUBBLE_ACCESSIBLE_NAME" desc="Title of the avatar bubble menu for accessibility">
          Switch Users
        </message>
        <message name="IDS_PROFILES_BUBBLE_ACCESSIBLE_DESCRIPTION" desc="The help text for the avatar bubble.">
          Switch to a different user.
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_MENU_ACCESSIBLE_NAME" desc="Title of the new avatar bubble menu for accessibility">
          Switch Person
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_MENU_ACCESSIBLE_DESCRIPTION" desc="The help text for the new avatar bubble.">
          Switch to a different person.
        </message>
        <message name="IDS_PROFILES_CREATE_NEW_PROFILE_OPTION" desc="In Title Case. Create new profile menu item and button title.">
          Add Person...
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_BUTTON_ACCESSIBLE_NAME" desc="Title of the avatar button for accessibility">
          <ph name="PROFILE_NAME">$1<ex>User</ex></ph> Switch person
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_BUTTON_AUTH_ERROR_ACCESSIBLE_NAME" desc="Title of the avatar button for accessibility">
          <ph name="PROFILE_NAME">$1<ex>User</ex></ph>  button: sign in error
        </message>
        <message name="IDS_PROFILES_ACCOUNT_BUTTON_AUTH_ERROR_ACCESSIBLE_NAME" desc="Title of the avatar button for accessibility">
          <ph name="PROFILE_NAME">$1<ex>User</ex></ph>: sign in error
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_MENU_CHANGE_PHOTO_ACCESSIBLE_NAME" desc="Title of the change photo button for accessibility">
          Change Photo
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_MENU_PHOTO_ACCESSIBLE_NAME" desc="Title of the change photo button for accessibility">
          Photo
        </message>
        <message name="IDS_PROFILES_NEW_AVATAR_MENU_EDIT_NAME_ACCESSIBLE_NAME" desc="Title of the edit profile name button for accessibility">
          <ph name="PROFILE_NAME">$1<ex>User</ex></ph>: select to edit
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_PROFILES_SWITCH_PROFILE_LINK" desc="Link in the supervised user bubble view to switch to a different profile.">
          Switch users
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_PROFILES_SWITCH_PROFILE_LINK" desc="In title case. Link in the supervised user bubble view to switch to a different profile.">
          Switch Users
        </message>
      </if>
      <if expr="not chromeos">
        <message name="IDS_PROFILES_CREATE_NEW_PROFILE_LINK" desc="Link in the avatar menu bubble view to create a new profile.">
          New user
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_PROFILES_CREATE_NEW_PROFILE_LINK" desc="Link in the avatar menu bubble view to create a new profile.">
          Sign in another account
        </message>
      </if>
      <message name="IDS_PROFILES_MANAGE_PROFILES_BUTTON" desc="Button in the avatar menu bubble view to manage profiles.">
        Manage
      </message>
      <message name="IDS_PROFILES_MANAGE_PROFILES_BUTTON_TIP" desc="Tool-tip text shown for button in the avatar menu bubble view to manage profiles.">
        Create, change, or delete profiles.
      </message>
      <message name="IDS_PROFILES_PROFILE_SIGNOUT_BUTTON" desc="Button in the avatar menu bubble view to sign-out the current profile.">
        Exit and childlock
      </message>
      <message name="IDS_PROFILES_PROFILE_SIGNOUT_BUTTON_TIP" desc="Tool-tip text shown for button in the avatar menu bubble view to sign-out the current profile.">
        Sign-out user <ph name="PROFILE_USERNAME">$1<ex>user@gmail.com</ex></ph>.
      </message>
      <message name="IDS_PROFILES_PROFILE_SIGNOUT_BUTTON_TIP_UNAVAILABLE" desc="Tool-tip text shown for button in the avatar menu bubble view to sign-out the current profile when that button is not available because the profile has not been signed-in.">
        Sign-out is possible only when signed in.
      </message>
      <message name="IDS_PROFILES_EDIT_PROFILE_LINK" desc="Link in the avatar menu bubble to edit a profile.">
        edit
      </message>
      <message name="IDS_PROFILES_GAIA_SIGNIN_TITLE" desc="Title of the account removal view in the avatar menu bubble.">
        Sign in
      </message>
      <message name="IDS_PROFILES_GAIA_ADD_ACCOUNT_TITLE" desc="Title of the account removal view in the avatar menu bubble.">
        Add account
      </message>
      <message name="IDS_PROFILES_GAIA_REAUTH_TITLE" desc="Title of the account reauthentication view in the avatar menu bubble. Also used in other places to indicate a reauthentication action.">
        Sign in again
      </message>
      <message name="IDS_PROFILES_ACCOUNT_REMOVAL_TITLE" desc="Title of the account removal view in the avatar menu bubble.">
        Remove account
      </message>
      <message name="IDS_PROFILES_SETTINGS_LINK" desc="The link text to the Chrome settings page in the account removal view.">
        settings
      </message>
      <message name="IDS_PROFILES_SYNC_SETTINGS_LINK" desc="The link text to the Chrome sync settings page in the avatar menu tutorial card.">
        Settings
      </message>
      <message name="IDS_PROFILES_ACCOUNT_REMOVAL_BUTTON" desc="Text of the ok button on the account removal view in the avatar menu bubble.">
        Remove account
      </message>
      <message name="IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_CONTENT_TEXT" desc="Content of the tutorial card in the avatar menu bubble view shown when a user successfully signs in to Chrome.">
        Your bookmarks, history, passwords, and other settings will be synced to your Google Account.
      </message>
      <message name="IDS_PROFILES_TUTORIAL_OK_BUTTON" desc="Button in the avatar menu tutorial card for dismissing the signin confirmation bubble">
        OK, got it
      </message>
      <message name="IDS_PROFILES_ERROR_TUTORIAL_TITLE" desc="Title in the tutorial card for showing signin errors">
        Uh-oh!
      </message>
      <message name="IDS_PROFILES_NOT_YOU" desc="Title or link text in the avatar menu bubble for switching user">
        Not <ph name="PROFILE_NAME">$1<ex>Claire</ex></ph>?
      </message>
      <message name="IDS_PROFILES_DISCONNECT_BUTTON" desc="Button in the avatar menu bubble for disconnecting the current profile">
        Disconnect Google Account
      </message>
      <message name="IDS_PROFILES_ADD_PERSON_BUTTON" desc="Button in the avatar menu bubble for adding a new profile">
        Add person
      </message>
      <message name="IDS_PROFILES_TUTORIAL_WHATS_NEW_BUTTON" desc="Button in the avatar menu tutorial card for seeing what is new with the new profile management UI">
        See what's new
      </message>
      <message name="IDS_PROFILES_EXIT_GUEST" desc="Button in the avatar menu bubble view for exiting the active guest session.">
        Exit Guest
      </message>
      <message name="IDS_PROFILES_SIGNIN_PROMO" desc="Text describing the benefits of signing in.">
        Sign in to get your bookmarks, history, passwords, and other settings on all your devices.
      </message>
      <if expr="not use_titlecase">
        <message name="IDS_PROFILES_PROFILE_ADD_ACCOUNT_BUTTON" desc="Button in the avatar menu bubble view used to add an account to a profile.">
          Add account for <ph name="PROFILE_NAME">$1<ex>John</ex></ph>
        </message>
        <message name="IDS_PROFILES_PROFILE_MANAGE_ACCOUNTS_BUTTON" desc="Button in the avatar menu bubble view used to manage accounts for a profile.">
          Your accounts
        </message>
        <message name="IDS_PROFILES_PROFILE_HIDE_MANAGE_ACCOUNTS_BUTTON" desc="Button in the avatar menu bubble view used to hide the accounts for a profile.">
          Hide accounts
        </message>
        <message name="IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE" desc="The Learn More link in the avatar tutorial bubble.">
          Learn more
        </message>
        <message name="IDS_PROFILES_SWITCH_USERS_BUTTON" desc="Button in the avatar menu bubble view for launching the user manager.">
          Switch person
        </message>
        <message name="IDS_PROFILES_GO_INCOGNITO_BUTTON" desc="Button in the avatar menu bubble view for launching an incognito browser.">
          Go incognito
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_PROFILES_PROFILE_ADD_ACCOUNT_BUTTON" desc="Button in the avatar menu bubble view used to add an account to a profile.">
          Add Account for <ph name="PROFILE_NAME">$1<ex>John</ex></ph>
        </message>
        <message name="IDS_PROFILES_PROFILE_MANAGE_ACCOUNTS_BUTTON" desc="Button in the avatar menu bubble view used to manage accounts for a profile.">
          Your Accounts
        </message>
        <message name="IDS_PROFILES_PROFILE_HIDE_MANAGE_ACCOUNTS_BUTTON" desc="Button in the avatar menu bubble view used to hide the accounts for a profile.">
          Hide Accounts
        </message>
        <message name="IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE" desc="The Learn More link in the avatar tutorial bubble.">
          Learn More
        </message>
        <message name="IDS_PROFILES_SWITCH_USERS_BUTTON" desc="Button in the avatar menu bubble view for launching the user manager.">
          Switch Person
        </message>
        <message name="IDS_PROFILES_GO_INCOGNITO_BUTTON" desc="Button in the avatar menu bubble view for launching an incognito browser.">
          Go Incognito
        </message>
      </if>
      <message name="IDS_PROFILES_SWITCH_TO_PROFILE_ACCESSIBLE_NAME" desc="Description of the switch to profile button. This is used for accessibility.">
        Switch to user: <ph name="PROFILE_NAME">$1<ex>First user</ex></ph>
      </message>
      <message name="IDS_PROFILES_GUEST_PROFILE_NAME" desc="Name of the guest profile.">
        Guest
      </message>
      <message name="IDS_PROFILES_RIGHT_CLICK_TUTORIAL_CONTENT_TEXT" desc="Content of the tutorial bubble informing users about right-click user switching.">
        Right click on the button above to view other people.
      </message>
      <message name="IDS_PROFILES_RIGHT_CLICK_TUTORIAL_TITLE" desc="Title of the tutorial bubble informing users about right-click user switching.">
        Switch people faster
      </message>
      <message name="IDS_DEFAULT_PROFILE_NAME" desc="The default name given to a profile. Displayed in wrench menu and settings UI.">
        First user
      </message>
      <message name="IDS_LEGACY_DEFAULT_PROFILE_NAME" desc="The legacy default name given to a new profile.">
        Default Profile
      </message>
      <message name="IDS_NUMBERED_PROFILE_NAME" desc="The name given to a newly created profile. Displayed in wrench menu and settings UI.">
        User <ph name="VALUE">$1<ex>1</ex></ph>
      </message>
      <message name="IDS_NEW_NUMBERED_PROFILE_NAME" desc="The name given to a newly created profile. Displayed in wrench menu and settings UI using the --new-profile-management flag.">
        Person <ph name="VALUE">$1<ex>1</ex></ph>
      </message>
      <message name="IDS_SINGLE_PROFILE_DISPLAY_NAME" desc="The name displayed by the avatar button if only one profile exists.">
        You
      </message>
      <message name="IDS_GUEST_PROFILE_NAME" desc="The name given to the guest
      browsing profile. Displayed in the avatar menu bubble and button UI.">
        Guest
      </message>

      <message name="IDS_DEFAULT_AVATAR_NAME_8" desc="The default name given to a newly created profile with the female spy avatar.">
        Agent X
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_9" desc="The default name given to a newly created profile with the male hero avatar.">
        Spandex
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_10" desc="The default name given to a newly created profile with the female athlete avatar.">
        Mia
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_11" desc="The default name given to a newly created profile with the male businessman avatar.">
        Buttondown
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_12" desc="The default name given to a newly created profile with the ninja avatar.">
        Sneaky
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_13" desc="The default name given to a newly created profile with the alien avatar.">
        Moonbeam
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_14" desc="The default name given to a newly created profile with the awesome face avatar.">
        Awesome
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_15" desc="The default name given to a newly created profile with the flower avatar.">
        Petals
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_16" desc="The default name given to a newly created profile with the pizza avatar.">
        Slice
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_17" desc="The default name given to a newly created profile with the soccer ball avatar.">
        Fritz
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_18" desc="The default name given to a newly created profile with the hamburger avatar.">
        Pickles
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_19" desc="The default name given to a newly created profile with the cat avatar.">
        Fluffy
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_20" desc="The default name given to a newly created profile with the cupcake avatar.">
        Sweetness
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_21" desc="The default name given to a newly created profile with the dog avatar.">
        Sparky
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_22" desc="The default name given to a newly created profile with the horse avatar.">
        Saratoga
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_23" desc="The default name given to a newly created profile with the martini glass avatar.">
        Lemonade
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_24" desc="The default name given to a newly created profile with the musical notes avatar.">
        Bluesy
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_25" desc="The default name given to a newly created profile with the sun and cloud avatar.">
        Shady
      </message>
      <message name="IDS_DEFAULT_AVATAR_NAME_26" desc="The default name given to a newly created profile with the default placeholder avatar.">
        Shadow
      </message>

      <message name="IDS_PROFILES_LOCAL_PROFILE_STATE" desc="This is displayed underneath the profile name for profiles that are not signed in to sync.">
        Not signed in
      </message>
      <message name="IDS_PROFILES_CREATE_BUTTON_LABEL" desc="The label that appears on the profile create button in the options dialog to allow a user to create a new profile.">
        Add person...
      </message>
      <message name="IDS_PROFILES_MANAGE_BUTTON_LABEL" desc="The label that appears on the profile manage button in the options dialog to allow a user to manage their profile.">
        Edit...
      </message>
      <message name="IDS_PROFILES_DELETE_BUTTON_LABEL" desc="The label that appears on the profile delete button in the options dialog to allow a user to delete their profile.">
        Remove...
      </message>
      <message name="IDS_PROFILES_LEGACY_SUPERVISED_USER_DASHBOARD_TIP" desc="A message that appears below the Users section on the Settings page when the current user manages legacy supervised users (but no child accounts) on the machine, providing a link to the external management dashboard page.">
        Manage your supervised users via the <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph>Supervised Users Dashboard<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
      </message>
      <message name="IDS_PROFILES_DELETE_SINGLE_BUTTON_LABEL" desc="The label that appears on the profile delete button in the options dialog to allow a user with only one profile to delete it.">
        Delete this person
      </message>
      <message name="IDS_PROFILES_DEFAULT_NAME" desc="The name to display for a profile when the user is not signed in.">
        Default
      </message>
      <message name="IDS_PROFILE_ADD_PERSON_ENABLE" desc="The text for the settings checkbox that indicates whether new profiles can be added from the user manager.">
        Let anyone add a person to Chrome
      </message>
      <message name="IDS_PROFILE_BROWSER_GUEST_ENABLE" desc="The text for the settings checkbox that indicates whether guest mode is available for this browser.">
        Enable Guest browsing
      </message>
      <message name="IDS_SYNC_CUSTOMIZE_LINK_LABEL" desc="The text to display on the link to customize the sync settings.">
        Advanced
      </message>
      <message name="IDS_SYNC_USE_DEFAULT_SETTINGS" desc="The text to display on the link to go back to the default sync settings.">
        Use default settings
      </message>
      <message name="IDS_SYNC_LOGIN_NAME_PROHIBITED" desc="The error message shown when the user tries to sign in to sync using a name that is not allowed by the admin policy">
        Signing in with this username has been disabled by your administrator.
      </message>
      <if expr="is_android">
        <message name="IDS_SYNC_USER_NAME_IN_USE_ERROR" desc="Mobile: An error message shown when a user tries to sign in to sync using a user name that's already in use by another profile.">
          This account is already being used on this device.
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_SYNC_USER_NAME_IN_USE_ERROR" desc="An error message shown when a user tries to sign in to sync using a user name that's already in use by another profile.">
          This account is already being used on this computer.
        </message>
      </if>

      <message name="IDS_PLUGIN_OUTDATED_PROMPT" desc="Info Bar message when an outdated plugin was disabled">
        <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph> was blocked because it is out of date.
      </message>
      <message name="IDS_PLUGIN_ENABLE_TEMPORARILY" desc="Info Bar button to run a blocked outdated plugin">
        Run this time
      </message>
      <message name="IDS_PLUGIN_ENABLE_ALWAYS" desc="Info Bar button to always run blocked plugins for this website">
        Always run on this site
      </message>
      <message name="IDS_PLUGIN_CRASHED_PROMPT" desc="Info Bar message to notify about a crashed plugin">
       <ph name="PLUGIN_NAME">$1<ex>Shockwave</ex> has crashed.</ph>
      </message>
      <if expr="is_win">
        <message name="IDS_PLUGIN_DISCONNECTED_PROMPT" desc="Info Bar message to notify that the channel connecting to a plugin has encountered an error.">
          <ph name="PLUGIN_NAME">$1<ex>Shockwave</ex> has encountered an error.</ph>
        </message>
      </if>
      <message name="IDS_RELOAD_PAGE_WITH_PLUGIN" desc="Info Bar button to reload the page where a plugin crashed or disconnected.">
        Reload
      </message>
      <message name="IDS_PLUGIN_INITIALIZATION_ERROR_PROMPT" desc="Info Bar message to notify that we couldn't load a plugin">
        Could not load <ph name="PLUGIN_NAME">$1<ex>Shockwave</ex>.</ph>
      </message>

      <!-- External Protocol Dialog -->
      <message name="IDS_EXTERNAL_PROTOCOL_TITLE" desc="External Protocol Dialog Title">
        External Protocol Request
      </message>
      <if expr="not chromeos">
        <message name="IDS_EXTERNAL_PROTOCOL_OK_BUTTON_TEXT" desc="Button in External Protocol Dialog that launches the application associated with the protocol">
          Launch Application
        </message>
        <message name="IDS_EXTERNAL_PROTOCOL_CANCEL_BUTTON_TEXT" desc="Button in External Protocol Dialog that cancels the application launch">
          Do Nothing
        </message>
        <message name="IDS_EXTERNAL_PROTOCOL_APPLICATION_TO_LAUNCH" desc="Information about the application being launched by the external protocol">
The following application will be launched if you accept this request:

 <ph name="APPLICATION">$1<ex>C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe /u "%1"</ex></ph>
        </message>
        <message name="IDS_EXTERNAL_PROTOCOL_WARNING" desc="Warn user about external protocols.">
          If you did not initiate this request, it may represent an attempted attack on your system. Unless you took an explicit action to initiate this request, you should press Do Nothing.
        </message>
        <message name="IDS_EXTERNAL_PROTOCOL_CHECKBOX_TEXT" desc="Checkbox to remember users decision.">
          Remember my choice for all links of this type.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_EXTERNAL_PROTOCOL_OK_BUTTON_TEXT" desc="Button in External Protocol Dialog that closes the dialog">
          Close
        </message>
        <message name="IDS_EXTERNAL_PROTOCOL_CHECKBOX_TEXT" desc="Checkbox to remember users decision.">
          Never show the dialog again for all links of this type.
        </message>
      </if>

      <!-- Strings used in local directory listings -->
      <message name="IDS_DIRECTORY_LISTING_HEADER" desc="When viewing a local directory, this is the title of the page.">
        Index of <ph name="LOCATION">LOCATION<ex>c:\Documents and Settings</ex></ph>
      </message>
      <message name="IDS_DIRECTORY_LISTING_PARENT" desc="When viewing a local directory, this is the text for a link to the parent directory.">
        [parent directory]
      </message>
      <message name="IDS_DIRECTORY_LISTING_NAME" desc="When viewing a local directory, this is the text for the column above the filenames.">
        Name
      </message>
      <message name="IDS_DIRECTORY_LISTING_SIZE" desc="When viewing a local directory, this is the text for the column above the file sizes.">
        Size
      </message>
      <message name="IDS_DIRECTORY_LISTING_DATE_MODIFIED" desc="When viewing a local directory, this is the text for the column above the last modified dates.">
        Date Modified
      </message>
      <message name="IDS_DIRECTORY_LISTING_PARSING_ERROR_BOX_TEXT" desc="Text to show in a box when we failed to parse FTP directory listing.">
        Oh, no! This server is sending data <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> can't understand. Please <ph name="BEGIN_LINK">&lt;a href="http://code.google.com/p/chromium/issues/entry"&gt;</ph>report a bug<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>, and include the <ph name="BEGIN2_LINK">&lt;a href="LOCATION"&gt;</ph>raw listing<ph name="END2_LINK">&lt;/a&gt;</ph>.
      </message>

      <!-- Saving Page-->
      <message name="IDS_SAVE_PAGE_DESC_HTML_ONLY" desc="In the Save Page dialog, the description of saving only the HTML of a webpage.">
        Webpage, HTML Only
      </message>
      <message name="IDS_SAVE_PAGE_DESC_SINGLE_FILE" desc="In the Save Page dialog, the description of saving both the HTML and all shown resources into a single file.">
        Webpage, Single File
      </message>
      <message name="IDS_SAVE_PAGE_DESC_COMPLETE" desc="In the Save Page dialog, the description of saving both the HTML and all shown resources.">
        Webpage, Complete
      </message>

      <message name="IDS_OPTIONS_PRIVACY_CONTENT_SETTINGS_BUTTON" desc="Text for content settings button in Privacy options">
        Content settings...
      </message>
      <message name="IDS_OPTIONS_PRIVACY_CLEAR_DATA_BUTTON" desc="Text for clear browsing data dialog in Privacy options">
        Clear browsing data...
      </message>
      <message name="IDS_OPTIONS_FONTSETTINGS_CUSTOMIZE_FONTS_BUTTON" desc="The label of the 'Customize fonts' button">
        Customize fonts...
      </message>
      <message name="IDS_OPTIONS_CERTIFICATES_MANAGE_BUTTON" desc="The label of the 'Manage Certificates' button">
        Manage certificates...
      </message>

      <if expr="chromeos">
        <message name="IDS_OPTIONS_DISABLE_GDATA" desc="The text in the options panel describes that we can disable webdrive on Chrome OS for active user.">
          Disconnect Google Drive account
        </message>
      </if>

      <message name="IDS_OPTIONS_DISABLE_WEB_SERVICES" desc="The text in the options panel describes that we can disable web services.">
        You may optionally disable these services.
      </message>
      <message name="IDS_OPTIONS_LINKDOCTOR_PREF" desc="The documentation string of the 'Use Link Doctor' preference">
        Use a web service to help resolve navigation errors
      </message>

      <message name="IDS_OPTIONS_SUGGEST_PREF" desc="The documentation string of the 'Use Suggest' preference">
        Use a prediction service to help complete searches and URLs typed in the address bar or the app launcher search box
      </message>
      <message name="IDS_OPTIONS_SPELLING_PREF" desc="The documentation string of the 'Use Spelling' preference">
        Use a web service to help resolve spelling errors
      </message>
      <message name="IDS_OPTIONS_ENABLE_LOGGING" desc="The label of the checkbox to enable/disable crash and user metrics logging">
        Automatically send usage statistics and crash reports to Google
      </message>
      <message name="IDS_OPTIONS_ENABLE_LOGGING_RESTART" desc="The restart string after changing crash and user metrics logging. The text within the | symbols will be made into a link that should indicate to the user that clicking on it will cause Chrome to restart.">
        (requires Chrome |restart|)
      </message>
      <message name="IDS_OPTIONS_ENABLE_DO_NOT_TRACK" desc="The label of the checkbox to enable/disable sending the 'Do Not track' header">
        Send a "Do Not Track" request with your browsing traffic
      </message>
      <message name="IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TEXT" desc="The text of a confirmation dialog that confirms that the user want to send the 'Do Not Track' header">
        Enabling "Do Not Track" means that a request will be included with your browsing traffic. Any effect depends on whether a website responds to the request, and how the request is interpreted. For example, some websites may respond to this request by showing you ads that aren't based on other websites you've visited. Many websites will still collect and use your browsing data - for example to improve security, to provide content, services, ads and recommendations on their websites, and to generate reporting statistics.
      </message>
      <message name="IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TITLE" desc="The title of a confirmation dialog that confirms that the user want to send the 'Do Not Track' header">
        Do Not Track
      </message>
      <message name="IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_ENABLE" desc="The label of a button that enables sending the 'Do Not Track' header">
        OK
      </message>
      <message name="IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_DISABLE" desc="The label of a button that disables sending the 'Do Not Track' header">
        Cancel
      </message>
      <message name="IDS_OPTIONS_TABS_TO_LINKS_PREF" desc="The documentation string of the 'Tabs to Links' preference">
        Pressing Tab on a webpage highlights links, as well as form fields
      </message>

      <message name="IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL" desc="The label of the 'Default Zoom Level' select menu">
        Page zoom:
      </message>
      <message name="IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL" desc="The label of the 'Default font size' select menu">
        Font size:
      </message>
      <message name="IDS_OPTIONS_FONT_SIZE_LABEL_VERY_SMALL" desc="The label of the 'Very Small' option">
        Very Small
      </message>
      <message name="IDS_OPTIONS_FONT_SIZE_LABEL_SMALL" desc="The label of the 'Small' option">
        Small
      </message>
      <message name="IDS_OPTIONS_FONT_SIZE_LABEL_MEDIUM" desc="The label of the 'Medium' option">
        Medium
      </message>
      <message name="IDS_OPTIONS_FONT_SIZE_LABEL_LARGE" desc="The label of the 'Large' option">
        Large
      </message>
      <message name="IDS_OPTIONS_FONT_SIZE_LABEL_VERY_LARGE" desc="The label of the 'Very Large' option">
        Very Large
      </message>
      <message name="IDS_OPTIONS_FONT_SIZE_LABEL_CUSTOM" desc="The label of the 'Custom' option">
        Custom
      </message>
      <message name="IDS_OPTIONS_SETTINGS_LANGUAGE_AND_INPUT_SETTINGS" desc="Button title for invoking the 'Language and input options' panel.">
        Language and input settings...
      </message>
      <if expr="is_android">
        <message name="IDS_OPTIONS_ENABLE_ANDROID_SPELLCHECKER_DESCRIPTION" desc="The description for the flag to enable use of the Android spellchecker.">
          Enables use of the Android spellchecker.
        </message>
      </if>
      <if expr="not is_macosx">
        <message name="IDS_OPTIONS_ENABLE_SPELLCHECK" desc="The documentation string of the 'Enable spellcheck' option">
          Enable spell checking
        </message>
        <message name="IDS_OPTIONS_DICTIONARY_DOWNLOADING" desc="The informational message to notify that download of dictionary for spellchecking is in progress.">
          Downloading spell check dictionary...
        </message>
        <message name="IDS_OPTIONS_DICTIONARY_DOWNLOAD_FAILED" desc="The error message to notify that download of dictionary for spellchecking failed.">
          Spell check dictionary download failed.
        </message>
        <message name="IDS_OPTIONS_DICTIONARY_DOWNLOAD_RETRY" desc="The button label to retry downloading the dictionary for spellchecking.">
          Retry
        </message>
        <message name="IDS_OPTIONS_DICTIONARY_DOWNLOAD_FAIL_HELP" desc="The help message to guide the user if download of dictionary for spellchecking failed multiple times.">
          Please check with your network administrator to make sure that the firewall is not blocking downloads from Google servers.
        </message>
      </if>

      <!-- General app failure messages -->
      <message name="IDS_COULDNT_OPEN_PROFILE_ERROR" desc="Error displayed on startup when the profile can not be opened correctly due to problems reading or writing files in it">
Your profile could not be opened correctly.

Some features may be unavailable.  Please check that the profile exists and you have permission to read and write its contents.
      </message>
      <message name="IDS_REFUSE_TO_RUN_AS_ROOT" desc="Short error message displayed in an error dialog on startup if the user tries to run Chrome as root">
        <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> can not be run as root.
      </message>
      <message name="IDS_REFUSE_TO_RUN_AS_ROOT_2" desc="Detailed message in the error dialog when the user tries to start Chrome as root">
        Please start <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> as a normal user. To run as root, you must specify an alternate --user-data-dir for storage of profile information.
      </message>
      <if expr="is_win">
        <message name="IDS_PROFILE_ON_NETWORK_WARNING" desc="Warning shown to the user when she is running Chrome on Windows with a profile located on a network share.">
          Warning: your <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> settings are stored on a network drive. This may result in slowdowns, crashes, or even loss of data.
        </message>
      </if>

      <!-- Can't write to user data directory dialog -->
      <message name="IDS_CANT_WRITE_USER_DIRECTORY_TITLE" desc="Title of dialog that is displayed when we can't create a directory for this user.">
        Failed To Create Data Directory
      </message>

      <!-- Advanced Section Titles -->
      <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY">
        Privacy
      </message>
      <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_CONTENT">
        Web content
      </message>
      <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_CERTIFICATES">
        HTTPS/SSL
      </message>
      <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_NETWORK">
        Network
      </message>
      <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_LANGUAGES">
        Languages
      </message>
      <message name="IDS_OPTIONS_ADVANCED_SECTION_TITLE_SYSTEM">
        System
      </message>

      <!-- Accessibility options -->
      <message name="IDS_OPTIONS_SETTINGS_SECTION_TITLE_ACCESSIBILITY">
        Accessibility
      </message>
      <message name="IDS_OPTIONS_ACCESSIBILITY_FEATURES_LINK">
        Add additional accessibility features
      </message>

      <!-- Multiple download warning-->
      <message name="IDS_MULTI_DOWNLOAD_WARNING" desc="Warning invoked if multiple downloads are attempted without user interaction.">
        This site is attempting to download multiple files. Do you want to allow this?
      </message>
      <message name="IDS_MULTI_DOWNLOAD_PERMISSION_FRAGMENT" desc="Permission request shown if multiple downloads are attempted without user interaction and there are multiple permissions requested. Follows a prompt: 'This site would like to:'">
        Download multiple files
      </message>
      <message name="IDS_MULTI_DOWNLOAD_WARNING_ALLOW" desc="Text on the allow button in the IDS_MULTI_DOWNLOAD_WARNING dialog">
        Allow
      </message>
      <message name="IDS_MULTI_DOWNLOAD_WARNING_BLOCK" desc="Text on the block button in the IDS_MULTI_DOWNLOAD_WARNING dialog">
        Block
      </message>

      <if expr="use_titlecase">
        <message name="IDS_RECENT_TABS_MENU" desc="In Title Case: The title of the Recent Tabs menu in the wrench menu.">
          Recent Tabs
        </message>
        <message name="IDS_RECENTLY_CLOSED" desc="In Title Case: The section header for the Recently Closed section of the Recent Tabs menu.">
          Recently Closed
        </message>
        <message name="IDS_RECENTLY_CLOSED_WINDOW" desc="In Title Case: Title of recently closed windows in Recent Tabs menu. [ICU_Syntax]">
          {NUM_TABS, plural, =1 {1 Tab} other {# Tabs}}
        </message>
        <message name="IDS_RECENT_TABS_NO_DEVICE_TABS" desc="In Title Case: The label in the Recent Tabs menu in the wrench menu when there's no tabs from other devices.">
          No Tabs From Other Devices
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_RECENT_TABS_MENU" desc="The title of the Recent Tabs menu in the wrench menu.">
          Recent tabs
        </message>
        <message name="IDS_RECENTLY_CLOSED" desc="The section header for the Recently Closed section of the Recent Tabs menu.">
          Recently closed
        </message>
        <message name="IDS_RECENTLY_CLOSED_WINDOW" desc="Title of recently closed windows in Recent Tabs menu. [ICU_Syntax]">
          {NUM_TABS, plural, =1 {1 tab} other {# tabs}}
        </message>
        <message name="IDS_RECENT_TABS_NO_DEVICE_TABS" desc="The label in the Recent Tabs menu in the wrench menu when there's no tabs from other devices.">
          No tabs from other devices
        </message>
      </if>

      <message name="IDS_HISTORY_MENU" desc="The text label of the History (and recent tabs) sub-menu in the wrench menu.">
        &amp;History
      </message>
      <message name="IDS_RECENT_TABS_MORE" desc="The label in the Recent Tabs menu in the wrench menu to open the other devices and history page.">
        More...
      </message>

      <message name="IDS_DEFAULT_DOWNLOAD_FILENAME" desc="Default name for downloaded files when we have no idea what they could be.">
        download
      </message>
      <if expr="is_macosx or chromeos">
        <message name="IDS_BROWSER_WINDOW_MAC_TAB_UNTITLED" desc="Tabs and windows on MacOS with no title use this string.">
          Untitled
        </message>
      </if>

      <message name="IDS_SET_AS_DEFAULT_INFOBAR_BUTTON_LABEL" desc="The label of the 'set as default' button on the default browser infobar.">
        Set as default
      </message>
      <message name="IDS_DONT_ASK_AGAIN_INFOBAR_BUTTON_LABEL" desc="The label of the 'don't ask again' button on the default browser infobar.">
        Don't ask again
      </message>

      <if expr="not use_titlecase">
        <message name="IDS_SHOW_WINDOW_DECORATIONS_MENU" desc="The menu entry text in the tab strip context menu.  This toggles the system title bar and window borders (window decorations) on linux.">
          Use system title bar and borders
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_SHOW_WINDOW_DECORATIONS_MENU" desc="In Title Case: The menu entry text in the tab strip context menu.  This toggles the system title bar and window borders (window decorations) on linux.">
          Use System Title Bar and Borders
        </message>
      </if>

      <message name="IDS_USED_EXISTING_BROWSER" desc="Linux-specific message printed to console when the app is ran a second time, causing a new window to show rather than starting up a new browser.">
        Created new window in existing browser session.
      </message>

      <!-- Sync strings -->

      <!-- Shared between all the plaforms -->
      <message name="IDS_SYNC_ENTER_GOOGLE_PASSPHRASE_BODY_WITH_DATE" desc="Instructions for the dialog where the user needs to enter their previous google passphrase.">
        Your data was encrypted with your Google password as of <ph name="TIME">$1<ex>Sept 1, 2012</ex></ph>. Please enter it below.
      </message>
      <message name="IDS_SYNC_ACCOUNT_SYNCING_TO_USER" desc="The message that appears in the options dialog indicating that account is syncing to a user with the given email address.">
        Signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>.
      </message>

      <!-- Sync/sign-in error messages -->
      <message name="IDS_SIGNIN_ERROR_BUBBLE_VIEW_TITLE" desc="Title in the sign-in error bubble view/notification.">
        Sign-in Error
      </message>
      <message name="IDS_SYNC_ERROR_BUBBLE_VIEW_TITLE" desc="Title in the sync error bubble view/notification.">
        Sync Error
      </message>
      <if expr="use_ash">
        <message name="IDS_SYNC_NOTIFICATION_ACCEPT" desc="A button label shown in the sync error notification when the passphrase needs to be updated.">
          Update sync passphrase
        </message>
      </if>

      <if expr="not use_titlecase">
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view when the user needs to update the passphrase.">
          Update...
        </message>
        <message name="IDS_SYNC_UNAVAILABLE_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view when sync is not available for their domain.">
          OK...
        </message>
        <message name="IDS_SYNC_PASSPHRASE_ERROR_WRENCH_MENU_ITEM" desc="The sync error wrench menu item when the user needs to update the passphrase.">
          Sync Error: Update Sync passphrase...
        </message>
        <if expr="chromeos">
          <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view/notification when the user needs to sign out and sign in again to Chrome OS.">
            Sign out then sign in again...
          </message>
          <message name="IDS_SYNC_SIGN_IN_ERROR_WRENCH_MENU_ITEM" desc="The sync error wrench menu item when the user needs to sign out and sign in again to Chrome OS.">
            Sign out then sign in again...
          </message>
        </if>
        <if expr="not chromeos">
          <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view when the user needs to sign in again.">
            Sign in again...
          </message>
          <message name="IDS_SYNC_SIGN_IN_ERROR_WRENCH_MENU_ITEM" desc="The sync error wrench menu item when the user needs to sign in again.">
              Sign in again...
          </message>
        </if>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view when the user needs to update the passphrase.">
          Update...
        </message>
        <message name="IDS_SYNC_UNAVAILABLE_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view when sync is not available for their domain.">
          OK...
        </message>
        <message name="IDS_SYNC_PASSPHRASE_ERROR_WRENCH_MENU_ITEM" desc="The sync error wrench menu item when the user needs to update the passphrase.">
          Sync Error: Update Sync Passphrase...
        </message>
        <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_ACCEPT" desc="The accept button in the sync error bubble view when the user needs to sign in again.">
          Sign in Again...
        </message>
        <message name="IDS_SYNC_SIGN_IN_ERROR_WRENCH_MENU_ITEM" desc="The sync error wrench menu item when the user needs to sign in again.">
          Sign in Again...
        </message>
      </if>

      <!-- Android uses native UI to handle Sync settings -->
      <if expr="not is_android">
        <!-- Sync options dialog strings -->
        <message name="IDS_SYNC_OPTIONS_GROUP_NAME" desc="The name of the sync group in the options dialog.">
          Sign in
        </message>
        <if expr="not chromeos">
          <message name="IDS_SYNC_OVERVIEW" desc="The message that appears in the options dialog when sync has not been set up by the user.">
            Sign in to get your bookmarks, history, passwords and other settings on all your devices. You'll also automatically be signed in to your Google services.
          </message>
        </if>
        <message name="IDS_SYNC_START_SYNC_BUTTON_LABEL" desc="The label that appears on the sync button in the options dialog when sync has not been set up by the user.">
          Sign in to <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph>
        </message>
        <message name="IDS_SYNC_SETUP_BUTTON_LABEL" desc="The label that appears on the sync setup button in the options dialog when sync has been disabled by the user.">
          Set up sync...
        </message>
        <message name="IDS_SYNC_SETUP_ERROR" desc="The message displayed when an unspecified but unrecoverable error occurs during sync setup.">
          An error occurred while trying to set up sync.
        </message>
        <message name="IDS_SYNC_SETUP_ABORTED_BY_PENDING_CLEAR" desc="The error message displayed to the user when setup was aborted because the server reported that a pending clear private data operation is in progress">
          The sync server is busy, please try again later.
        </message>
        <message name="IDS_SIGNED_IN_WITH_SYNC_DISABLED" desc="The message that appears in the options dialog indicating that user is signed in with the given email address, but sync is not enabled.">
          Signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Sync is disabled by your administrator.
        </message>
        <message name="IDS_SIGNED_IN_WITH_SYNC_SUPPRESSED" desc="The message that appears in the options dialog indicating that user is signed in with the given email address, but sync has been stopped.">
          Signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Sync has been stopped via the Google Dashboard.
        </message>
        <message name="IDS_SYNC_ACCOUNT_SYNCING_TO_USER_WITH_MANAGE_LINK" desc="The message that appears in the options dialog indicating that account is syncing to a user with the given email address, together with a link to manage their data (where supported, or not possible through the application)">
          Signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Manage your synced data on <ph name="BEGIN_LINK">&lt;a href="$2" target=&quot;_blank&quot;&gt;<ex>&lt;a href="$2" target=&quot;_blank&quot;&gt;</ex></ph>Google Dashboard<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message name="IDS_SYNC_ACCOUNT_SYNCING_TO_USER_WITH_MANAGE_LINK_NEW" desc="The message that appears in the options dialog indicating that account is syncing to a user with the given email address, together with a link to manage their data (where supported, or not possible through the application)">
          Signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Manage your synced data and devices on <ph name="BEGIN_LINK">&lt;a href="$2" target=&quot;_blank&quot;&gt;<ex>&lt;a href="$2" target=&quot;_blank&quot;&gt;</ex></ph>Chrome Dashboard<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message name="IDS_SYNC_AUTHENTICATING_LABEL" desc="Label to display while the user is being authenticated to use sync.">
          Authenticating...
        </message>
        <message name="IDS_SYNC_INVALID_USER_CREDENTIALS" desc="Error message to display when the user name or password entered by the user are invalid.">
          Invalid user name or password.
        </message>
        <message name="IDS_SYNC_ERROR_SIGNING_IN" desc="An error was encountered while signing the user in.">
          Error signing in.
        </message>
        <message name="IDS_SYNC_UNRECOVERABLE_ERROR" desc="Message shown when sync setup failed due to an unrecoverable error and can't continue.">
          Oops, Sync has stopped working.
        </message>
        <message name="IDS_SYNC_STATUS_UNRECOVERABLE_ERROR" desc="Message shown on the personal options page when there is an unrecoverable error.">
          Oops, Sync has stopped working. <ph name="BEGIN_LINK">&lt;a href="$1" target="_blank"&gt;<ex>&lt;a href="$1" target="_blank"&gt;</ex></ph>Learn More<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
        </message>
        <message name="IDS_SYNC_PASSWORD_SYNC_ATTENTION" desc="Message indicating password sync needs attention.">
          Please update your sync passphrase.
        </message>
        <message name="IDS_SYNC_UPGRADE_CLIENT" desc="Message indicating client needs to be upgraded to the latest version.">
          Sync Error:  <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph> is out of date and needs to be updated.
        </message>
        <message name="IDS_SYNC_CLEAR_USER_DATA" desc="Message indicating user needs to clear user data and setup sync.">
          Sync Error: Please reset Sync via the Google Dashboard.
        </message>
        <message name="IDS_SYNC_STOP_AND_RESTART_SYNC" desc="Message indicating user needs to stop and restart sync.">
          Sync Error: Please stop and restart Sync.
        </message>
        <message name="IDS_SYNC_ENABLE_SYNC_ON_ACCOUNT" desc="Message indicating user needs to ask the administrator to enable sync.">
          Sync Error: Please contact administrator to enable sync.
        </message>

        <message name="IDS_SYNC_PASSPHRASE_MSG_EXPLICIT_PREFIX" desc="Message when explicit passphrase is selected.">
          Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Google. If you forget your passphrase, you will need to
        </message>
        <message name="IDS_SYNC_PASSPHRASE_MSG_EXPLICIT_POSTFIX" desc="Postfix of the message show when explicit passphrase is selected.">
          reset sync
        </message>
        <message name="IDS_SYNC_SERVER_IS_UNREACHABLE" desc="The message to display in the New Tab Page sync section when the server is unreachable.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> could not sync your data because it could not connect to the sync server. Retrying...
        </message>
        <if expr="not chromeos">
          <message name="IDS_SYNC_RELOGIN_LINK_LABEL" desc="The text to display on in the hyperlink when the user needs to sign in again to use sync.">
            Sign in again
          </message>
        </if>
        <if expr="chromeos">
          <message name="IDS_SYNC_RELOGIN_LINK_LABEL" desc="The text to display on in the hyperlink when the user needs to sign out and sign in again to use sync on Chrome OS.">
            Sign out then sign in again
          </message>
        </if>
        <message name="IDS_OPTIONS_CUSTOMIZE_SYNC_BUTTON_LABEL" desc="The text to display on the button to customize which data types the user is syncing.">
          Advanced sync settings...
        </message>
        <message name="IDS_SYNC_STOP_SYNCING_BUTTON_LABEL" desc="The text to display on the button to indicate stop syncing functionality.">
          Disconnect your Google Account...
        </message>
        <message name="IDS_SYNC_STOP_SYNCING_CONFIRM_BUTTON_LABEL" desc="The text to display on the button to confirm the user wishes to stop syncing.">
          Disconnect account
        </message>
        <message name="IDS_SYNC_STOP_SYNCING_DIALOG_TITLE" desc="The title of the dialog that explains what 'stop syncing' means.">
          Disconnect your Google Account
        </message>
        <message name="IDS_SYNC_STOP_SYNCING_EXPLANATION_LABEL" desc="The text to display below the 'Stop syncing this account' button on the options pane, explaining what the button does.">
          By disconnecting your Google Account from <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph>, your data will remain on this computer but changes will no longer be synced to your Google Account. Data already stored in your Google Account will remain there until you remove it using <ph name="BEGIN_LINK">&lt;a href="$2" target=&quot;_blank&quot;&gt;<ex>&lt;a href="$2" target=&quot;_blank&quot;&gt;</ex></ph>Google Dashboard<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message name="IDS_SYNC_STOP_DELETE_PROFILE_LABEL" desc="The text to display by the checkbox asking user whether to also delete profile when stopping sync.">
          Also clear your history, bookmarks, settings, and other Chrome data stored on this device.
        </message>
        <message name="IDS_SYNC_ADVANCED_OPTIONS" desc="The text in the link that brings up the sync configure screen in the new tab page new data type notification.">
          Advanced settings
        </message>

        <!-- Sync New Tab Page strings -->
        <message name="IDS_SYNC_NTP_SYNC_SECTION_ERROR_TITLE" desc="The title to display in the New Tab Page sync status section in case of an error.">
          Sync failed
        </message>
        <message name="IDS_SYNC_NTP_SYNC_SECTION_PROMO_TITLE" desc="The title to display in the New Tab Page sync status section in case of a promotion.">
          New!
        </message>
        <message name="IDS_SYNC_NTP_PASSWORD_PROMO" desc="The message to display to promote passwords sync now being available.">
          <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph> can now sync your passwords.
        </message>
        <message name="IDS_SYNC_NTP_PASSWORD_ENABLE" desc="The link text to present for passwords sync.">
          Enable
        </message>
        <message name="IDS_SYNC_NTP_SETUP_IN_PROGRESS" desc="The message to display in the New Tab Page sync section when the sync setup is underway.">
          Setup in progress...
        </message>
        <message name="IDS_SYNC_NTP_SYNCED_TO" desc="The message to display in the New Tab Page sync section when the user is in sync.">
          Synced as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>
        </message>

        <!-- Sync Promo New Tab Page bubble strings -->
        <message name="IDS_SYNC_PROMO_NTP_BUBBLE_MESSAGE" desc="The body of the sync promo NTP bubble.">
          You're now signed in to <ph name="SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph>. Your bookmarks, history, and other settings are being synced with your Google Account.
        </message>
        <if expr="not use_titlecase">
          <message name="IDS_SYNC_PROMO_NTP_BUBBLE_OK" desc="The ok button in the sync promo NTP bubble. Clicking on the button will dismiss the bubble.">
            OK
          </message>
          <message name="IDS_SYNC_PROMO_NTP_BUBBLE_ADVANCED" desc="The advanced link in the sync promo NTP bubble. Clicking the link will take the user to advanced settings.">
            Advanced...
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_SYNC_PROMO_NTP_BUBBLE_OK" desc="In title case. The ok button in the sync promo NTP bubble. Clicking on the button will dismiss the bubble.">
            OK
          </message>
          <message name="IDS_SYNC_PROMO_NTP_BUBBLE_ADVANCED" desc="In title case. The advanced link in the sync promo NTP bubble. Clicking the link will take the user to advanced settings.">
            Advanced...
          </message>
        </if>

        <!-- Customize Sync dialog -->
        <message name="IDS_SYNC_SETUP_CONFIGURE_TITLE" desc="The title of the Customize page of the sync setup dialog.">
          Advanced sync settings
        </message>
        <message name="IDS_SYNC_CONFIRM_SYNC_PREFERENCES" desc="The title of the 'Confirm Sync Settings' page of the customize sync dialog.">
          Confirm sync settings
        </message>
        <message name="IDS_SYNC_SYNC_EVERYTHING" desc="The text of the OK button of the 'Confirm Sync Settings' page of the customize sync dialog.">
          OK, sync everything
        </message>

        <!-- Spinner dialog for waiting sync backend to start up -->
        <message name="IDS_SYNC_SETUP_SPINNER_TITLE" desc="The title of the sync setup dialog showing spinner.">
          Please wait...
        </message>

        <!-- Notify network connection goes time out -->
        <message name="IDS_SYNC_SETUP_TIME_OUT_TITLE" desc="The title of the 'Timeout' page for sync settings.">
          Failed to start up the sync backend
        </message>
        <message name="IDS_SYNC_SETUP_TIME_OUT_CONTENT" desc="Text explaining what to do if sync times out.">
          Please make sure your network connection is working and if the problem persists, please sign out and sign in again to refresh your credentials.
        </message>

        <!-- Choose data types dialog strings -->
        <message name="IDS_SYNC_CHOOSE_DATATYPES_INSTRUCTIONS" desc="Text explaining the 'Choose Datatypes' dialog.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> securely syncs your data with your Google account. Keep everything synced or customize synced data types and encryption settings.
        </message>
        <message name="IDS_SYNC_EVERYTHING" desc="A drop-down menu item for users who want to sync all data types.">
          Sync everything
        </message>
        <message name="IDS_SYNC_CHOOSE_DATATYPES" desc="A drop-down menu item for users who want to select some datatypes to sync.">
          Choose what to sync
        </message>
        <message name="IDS_SYNC_NOTHING" desc="A drop-down menu item for users who want to remain signed in to Chrome, but not sync any datatypes.">
          Sync nothing
        </message>
        <message name="IDS_SYNC_DATATYPE_PREFERENCES" desc="Settings, one of the data types that we allow syncing.">
          Settings
        </message>
        <if expr="chromeos">
          <message name="IDS_SYNC_DATATYPE_THEMES" desc="Themes, one of the data types that we allow syncing.">
            Themes &amp; wallpapers
          </message>
        </if>
        <if expr="not chromeos">
          <message name="IDS_SYNC_DATATYPE_THEMES" desc="Themes, one of the data types that we allow syncing.">
            Themes
          </message>
        </if>
        <message name="IDS_SYNC_DATATYPE_EXTENSIONS" desc="Extensions, one of the data types that we allow syncing.">
          Extensions
        </message>
        <message name="IDS_SYNC_DATATYPE_APPS" desc="Apps, one of the data types that we allow syncing.">
          Apps
        </message>
        <message name="IDS_SYNC_DATATYPE_WIFI_CREDENTIALS" desc="WiFi network names and passwords, one of the data types that we allow syncing.">
          Wi-Fi networks
        </message>

        <!-- Encryption tab of the configure sync dialog -->
        <message name="IDS_SYNC_ENCRYPTION_INSTRUCTIONS" desc="Instructions for the encryption settings tab.">
          <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph> requires you to encrypt your data using either your Google password or your own passphrase.
        </message>
        <message name="IDS_SYNC_PASSPHRASE_WARNING" desc="Warning message about using a passphrase for sync.">
          You are currently using a passphrase.  If you have forgotten your passphrase, you can reset sync to clear your data from Google's servers using the Google Dashboard.
        </message>
        <message name="IDS_SYNC_ENCRYPTION_SECTION_MESSAGE" desc="Message explaining that sync data can be encrypted.">
          For added security, <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph> will encrypt your data.
        </message>
        <message name="IDS_SYNC_FULL_ENCRYPTION_BODY_CUSTOM" desc="Text of the radio that when selected enables full encryption.">
          All data is encrypted with your sync passphrase
        </message>
        <message name="IDS_SYNC_FULL_ENCRYPTION_BODY_CUSTOM_WITH_DATE" desc="Text of the radio that when selected enables full encryption.">
          All data was encrypted with your sync passphrase on
          <ph name="TIME">$1<ex>Sept 1, 2012</ex></ph>
        </message>
        <message name="IDS_SYNC_FULL_ENCRYPTION_BODY_GOOGLE_WITH_DATE" desc="Text of the radio that when selected enables full encryption.">
          All data was encrypted with your Google password as of
          <ph name="TIME">$1<ex>Sept 1, 2012</ex></ph>
        </message>

        <!-- Passphrase dialog strings -->
        <message name="IDS_SYNC_CONFIRM_PASSPHRASE_LABEL" desc="Label for the confirm-passphrase field.">
          Confirm passphrase
        </message>
        <message name="IDS_SYNC_INCORRECT_PASSPHRASE" desc="Message when the passphrase is incorrect.">
          The passphrase you entered is incorrect.
        </message>
        <message name="IDS_SYNC_PASSPHRASE_RECOVER" desc="Message about how to recover from a lost passphrase.">
          If you've forgotten your passphrase, stop and reset Sync via <ph name="BEGIN_LINK">&lt;a href="$1" target=&quot;_blank&quot;&gt;<ex>&lt;a href="$1" target=&quot;_blank&quot;&gt;</ex></ph>Google Dashboard<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message name="IDS_SYNC_PASSPHRASE_CANCEL_YES" desc="String for 'yes' button on passphrase cancel warning dialog.">
          Skip
        </message>
        <message name="IDS_SYNC_PASSPHRASE_CANCEL_NO" desc="String for 'no' button on passphrase cancel warning dialog.">
          Enter passphrase
        </message>

        <!-- Login dialog strings -->
        <message name="IDS_SYNC_SETUP_TITLE" desc="The title of the Sync Setup overlay.">
          Sign in with your Google Account
        </message>
        <message name="IDS_SYNC_SUCCESS" desc="Operation successful">
          Success!
        </message>

        <!-- Sync app menu item strings -->
        <if expr="not use_titlecase">
          <message name="IDS_SYNC_MENU_PRE_SYNCED_LABEL" desc="The text for the sync app menu item before an account is synced.">
            Sign in to <ph name="SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph>...
          </message>
          <message name="IDS_SYNC_MENU_SYNCED_LABEL" desc="The text for the sync app menu item when bookmark sync has been enabled">
            Signed in as <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>...
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_SYNC_MENU_PRE_SYNCED_LABEL" desc="The text for the sync app menu item before an account is synced.">
            Sign in to <ph name="SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph>...
          </message>
          <message name="IDS_SYNC_MENU_SYNCED_LABEL" desc="The text for the sync app menu item when bookmark sync has been enabled">
            Signed in as <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>...
          </message>
        </if>

        <!-- Sync promo page chrome://signin -->
        <message name="IDS_SYNC_PROMO_TAB_TITLE" desc="The title of the sync promo tab.">
          Sign in
        </message>
        <message name="IDS_SYNC_PROMO_MESSAGE_TITLE_SHORT" desc="A short sync promo message displayed under the title.">
          Sign in to get your bookmarks, history, and settings on all your devices.
        </message>
        <message name="IDS_SYNC_PROMO_SKIP_BUTTON" desc="The link button at the bottom to let the user skip the sync promo.">
          Skip for now
        </message>
        <message name="IDS_SYNC_PROMO_ADVANCED" desc="The link button at the bottom to let the user customize the sync settings.">
          Advanced...
        </message>
        <message name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_HEADER" desc="The first line of the of the message shown in NTP when a user is not signed into sync.">
          Not signed in to <ph name="SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph>
        </message>
        <message name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_SUB_HEADER" desc="The second line of the of the message shown in NTP when a user is not signed in to sync.">
          (You're missing out&#8212;<ph name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK">$1<ex>sign in</ex></ph>)
        </message>
        <message name="IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK" desc="The linkified portion of the sync sign in promo on the NTP. Clicking this text allows the user to sign in to sync.">
          sign in
        </message>
      </if>

      <if expr="chromeos">
        <!-- The URL for the Google mailto service. -->
        <message name="IDS_GOOGLE_MAILTO_HANDLER_URL">
          https://mail.google.com/mail/?extsrc=mailto&amp;url=%s
        </message>

        <!-- The URL for the Google webcal service. -->
        <message name="IDS_GOOGLE_WEBCAL_HANDLER_URL">
          https://www.google.com/calendar/render?cid=%s
        </message>
      </if>

      <!-- Translate Bubble -->
      <if expr="toolkit_views or is_macosx">
        <message name="IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE" desc="Text to show for the translate bubble label when that page is in specified language and ask if should translate.">
          Would you like to translate this page?
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_ADVANCED" desc="Text to show for the translate bubble link label to jump to the advanced panel.">
          Options
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_ACCEPT" desc="Text to show for the translate bubble button to accept translation.">
          Translate
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_DENY" desc="Text to show for the translate bubble menu item to deny translation.">
          Nope
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG" desc="Text to show for the translate bubble menu item to never translate the specified language">
          Never translate <ph name="language">$1<ex>French</ex></ph>
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE" desc="Text to show for the translate bubble menu item to never translate the current site">
          Never translate this site
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_TRANSLATING" desc="Text to show for the translate bubble label when page is currently being translated by servers">
          This page is being translated ...
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_TRANSLATED" desc="Text to show for the translate bubble label when the page has been translated from one language to another">
          This page has been translated.
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_REVERT" desc="Text to show for the translate bubble button to revert translation of translated page">
          Show original
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_TRY_AGAIN" desc="Text to show for the translate bubble button to try to translate the page again">
          Try again
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_ALWAYS" desc="Text to show for the translate bubble checkbox to always translate from one language to another">
          Always translate
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_COULD_NOT_TRANSLATE" desc="Text to show for the translate bubble label when the page could not be translated.">
          This page could not be translated.
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_PAGE_LANGUAGE" desc="Text to show for the translate bubble label next to the combobox of the page language">
          Page language:
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_TRANSLATION_LANGUAGE" desc="Text to show for the translate bubble label next to the combobox of the target language for Translate">
          Translation language:
        </message>
        <message name="IDS_TRANSLATE_BUBBLE_LANGUAGE_SETTINGS" desc="Text to show for the translate bubble link label next to jump to the language setting page.">
          Language settings
        </message>
      </if>

      <!-- Web and message center notifications -->
      <if expr="enable_notifications">
        <message name="IDS_NOTIFICATION_PERMISSIONS" desc="Text requesting permission for Web Notifications.">
          <ph name="site">$1<ex>mail.google.com</ex></ph> wants to send you notifications.
        </message>
        <message name="IDS_NOTIFICATION_PERMISSIONS_FRAGMENT" desc="Permission sentence fragment to show following the prompt 'This site wants to:' in a permissions request">
          Show notifications
        </message>
        <message name="IDS_NOTIFICATION_PERMISSION_YES" desc="The label of the 'allow' button on the notification permission infobar.">
          Allow
        </message>
        <message name="IDS_NOTIFICATION_PERMISSION_NO" desc="The label of the 'deny' button on the notification permission infobar.">
          Deny
        </message>
        <message name="IDS_NOTIFICATION_WELCOME_BODY" desc="Notification body for the Welcome Notification">
          Stay connected to what you need to know, across all devices.
        </message>
        <message name="IDS_NOTIFICATION_WELCOME_BUTTON_LEARN_MORE" desc="Learn more button text for the Welcome Notification">
          Learn more
        </message>
        <message name="IDS_NOTIFICATION_WELCOME_DISPLAY_SOURCE" desc="Display source for the Welcome Notification">
          Notifications
        </message>
        <message name="IDS_NOTIFICATION_WELCOME_TITLE" desc="Notification title for the Welcome Notification">
          Google Now for Chrome!
        </message>
        <message name="IDS_NOTIFICATION_SETTINGS" desc="Button label to go to the notification settings panel">
          Notification settings
        </message>
        <message name="IDS_MESSAGE_CENTER_FOOTER_WITH_PRODUCT_TITLE" desc="The label in the footer of the message center tray, with the product title.">
          <ph name="product_name">$1<ex>Chrome</ex></ph> Notifications
        </message>
        <message name="IDS_NOTIFIER_WELCOME_BUTTON" desc="Notification body for when a new notifier service is introduced.">
          Turn off these notifications
        </message>
        <message name="IDS_FLAGS_ENABLE_WEB_NOTIFICATION_CUSTOM_LAYOUTS_NAME" desc="Name of the flag to enable custom layouts for Web Notifications.">
          Enable custom layouts for Web Notifications.
        </message>
        <message name="IDS_FLAGS_ENABLE_WEB_NOTIFICATION_CUSTOM_LAYOUTS_DESCRIPTION" desc="Description for the flag to enable custom layouts for Web Notifications.">
          Enable custom layouts for Web Notifications. They will have subtle layout improvements that are otherwise not possible.
        </message>
      </if>

      <!-- Mac AppleScript -->
      <if expr="is_macosx">
        <message name="IDS_GET_PROFILE_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when profile fails to load.  Mac-only.">
        Could not get profile.
        </message>
        <message name="IDS_BOOKMARK_MODEL_LOAD_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when bookmark model fails to load.  Mac-only.">
        Could not load bookmark model.
        </message>
        <message name="IDS_CREATE_BOOKMARK_FOLDER_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when bookmark folder cannot be created.  Mac-only.">
        Could not create bookmark folder.
        </message>
        <message name="IDS_CREATE_BOOKMARK_ITEM_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when bookmark item cannot be created.  Mac-only.">
                Could not create bookmark item.
        </message>
        <message name="IDS_INVALID_URL_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when invalid URL is entered.  Mac-only.">
                Invalid URL entered.
        </message>
        <message name="IDS_INITIATE_PRINTING_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when printing could not be initiated.  Mac-only.">
                Could not initiate printing.
        </message>
        <message name="IDS_INVALID_SAVE_TYPE_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when wrong save type is entered.  Mac-only.">
                Invalid save type entered.
        </message>
        <message name="IDS_INVALID_MODE_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when wrong save type is entered.  Mac-only.">
                Invalid mode entered.
        </message>
        <message name="IDS_INVALID_TAB_INDEX_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when invalid tab index is entered.  Mac-only.">
                Invalid tab index entered.
        </message>
        <message name="IDS_SET_MODE_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when mode is entered after window is created.  Mac-only.">
                Cannot set mode after window is set.
        </message>
        <message name="IDS_WRONG_INDEX_ERROR_APPLESCRIPT_MAC" desc="Error dialog title to be displayed when ordered index is out of bounds.  Mac-only.">
                Wrong index.
        </message>
      </if> <!-- is_macosx -->


      <!-- Mac Menubar Menus -->
      <if expr="is_macosx or is_ios">
        <!-- Menubar Menu Titles -->
        <!-- NOTE: Some of these exist in context menus with Title Case support, but we use different IDs in case we need slightly different strings in some language due to the different context. -->
        <message name="IDS_FILE_MENU_MAC" desc="The menu title of the Mac file menu.">
          File
        </message>
        <message name="IDS_EDIT_MENU_MAC" desc="The menu title of the Mac edit menu.">
          Edit
        </message>
        <message name="IDS_VIEW_MENU_MAC" desc="The menu title of the Mac view menu.">
          View
        </message>
        <message name="IDS_HISTORY_MENU_MAC" desc="The menu title of the Mac history menu.">
          History
        </message>
        <message name="IDS_WINDOW_MENU_MAC" desc="The menu title of the Mac window menu.">
          Window
        </message>
        <message name="IDS_HELP_MENU_MAC" desc="The menu title of the Mac help menu.">
          Help
        </message>
        <!-- App menu -->
        <message name="IDS_ABOUT_MAC" desc="The Mac menu item to open the about box.">
          About <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>
        </message>
        <message name="IDS_SERVICES_MAC" desc="The Mac menu item for the OS X services submenu (OS fills it in) in the app menu.">
          Services
        </message>
        <message name="IDS_HIDE_APP_MAC" desc="The Mac menu item to hide all browser windows in the app menu.">
          Hide <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>
        </message>
        <message name="IDS_HIDE_OTHERS_MAC" desc="The Mac menu item to hide other applications' windows in the app menu.">
          Hide Others
        </message>
        <message name="IDS_SHOW_ALL_MAC" desc="The Mac menu item to show all browser windows in the app menu.">
          Show All
        </message>
        <message name="IDS_EXIT_MAC" desc="The Mac menu item to quit the browser in the app menu.">
          Quit <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>
        </message>
        <!-- File menu -->
        <message name="IDS_NEW_MAC" desc="The Mac menu item for creating a new file in the file menu.">
          New
        </message>
        <message name="IDS_NEW_TAB_MAC" desc="The Mac menu item for opening a new tab in the file menu.">
          New Tab
        </message>
        <message name="IDS_NEW_WINDOW_MAC" desc="The Mac menu item for opening a new window in the file menu.">
          New Window
        </message>
        <message name="IDS_NEW_INCOGNITO_WINDOW_MAC" desc="The Mac menu item for opening a new incognito window in the file menu.">
          New Incognito Window
        </message>
        <message name="IDS_BACKGROUND_APPS_MAC" desc="The Mac submenu for opening Background Apps.">
          Background Apps
        </message>
        <message name="IDS_REOPEN_CLOSED_TABS_MAC" desc="The Mac menu item reopen recently closed tabs in the file menu.">
          Reopen Closed Tab
        </message>
        <message name="IDS_OPEN_FILE_MAC" desc="The Mac menu item to open a file in the file menu.">
          Open File...
        </message>
        <message name="IDS_OPEN_LOCATION_MAC" desc="The Mac menu item to open a location in the file menu (puts cursor in the url bar).">
          Open Location...
        </message>
        <message name="IDS_CLOSE_WINDOW_MAC" desc="The Mac menu item to close a window in the file menu.">
          Close Window
        </message>
        <message name="IDS_CLOSE_TAB_MAC" desc="The Mac menu item to close a browser tab in the file menu.">
          Close Tab
        </message>
        <message name="IDS_SAVE_PAGE_MAC" desc="The Mac menu item to save a page in the file menu.">
          Save Page As...
        </message>
        <message name="IDS_EMAIL_PAGE_LOCATION_MAC" desc="The Mac menu item to email the page location in the file menu.">
          Email Page Location
        </message>
        <message name="IDS_PRINT_USING_SYSTEM_DIALOG_MAC" desc="The Mac menu item to print using system dialog in the file menu">
          Print Using System Dialog...
        </message>
        <!-- Edit menu -->
        <message name="IDS_EDIT_UNDO_MAC" desc="The Mac menu item undo in the edit menu.">
          Undo
        </message>
        <message name="IDS_EDIT_REDO_MAC" desc="The Mac menu item redo in the edit menu.">
          Redo
        </message>
        <message name="IDS_CUT_MAC" desc="The Mac menu item for cut in the edit menu.">
          Cut
        </message>
        <message name="IDS_COPY_MAC" desc="The Mac menu item for copy in the edit menu.">
          Copy
        </message>
        <message name="IDS_PASTE_MAC" desc="The Mac menu item for paste in the edit menu.">
          Paste
        </message>
        <message name="IDS_PASTE_MATCH_STYLE_MAC" desc="The Mac menu item for paste and match style in the edit menu.">
          Paste and Match Style
        </message>
        <message name="IDS_EDIT_DELETE_MAC" desc="The Mac menu item delete in the edit menu.">
          Delete
        </message>
        <message name="IDS_EDIT_SELECT_ALL_MAC" desc="The Mac menu item select all in the edit menu.">
          Select All
        </message>
        <message name="IDS_SHOW_URL_MAC" desc="The Mac menu item for Show URL in the omnibox context menu, when the omnibox is showing search terms instead of the underlying search URL.">
          Show URL
        </message>
        <!-- Edit::Find submenu -->
        <message name="IDS_EDIT_FIND_SUBMENU_MAC" desc="The Mac menu item for the find submenu in the edit menu.">
          Find
        </message>
        <message name="IDS_EDIT_SEARCH_WEB_MAC" desc="The Mac menu item for search the web (using, e.g., Google or Yahoo! search) in the edit menu.">
          Search the Web...
        </message>
        <message name="IDS_EDIT_FIND_MAC" desc="The Mac menu item for find in the edit menu.">
          Find...
        </message>
        <message name="IDS_EDIT_FIND_NEXT_MAC" desc="The Mac menu item for find next in the edit menu.">
          Find Next
        </message>
        <message name="IDS_EDIT_FIND_PREVIOUS_MAC" desc="The Mac menu item for find previous in the edit menu.">
          Find Previous
        </message>
        <message name="IDS_EDIT_USE_SELECTION_MAC" desc="The Mac menu item for use selection for find in the edit menu.">
          Use Selection for Find
        </message>
        <message name="IDS_EDIT_JUMP_TO_SELECTION_MAC" desc="The Mac menu item for jump to selection in the edit menu.">
          Jump to Selection
        </message>
        <!-- Edit::Spelling and Grammar submenu -->
        <message name="IDS_EDIT_SPELLING_GRAMMAR_MAC" desc="The Mac menu item for spelling and grammar submenu in the edit menu.">
          Spelling and Grammar
        </message>
        <message name="IDS_EDIT_SHOW_SPELLING_GRAMMAR_MAC" desc="The Mac menu item for show spelling and grammar in the edit menu.">
          Show Spelling and Grammar
        </message>
        <message name="IDS_EDIT_CHECK_DOCUMENT_MAC" desc="The Mac menu item for check document in the edit menu.">
          Check Document Now
        </message>
        <message name="IDS_EDIT_CHECK_SPELLING_TYPING_MAC" desc="The Mac menu item for check spelling while typing in the edit menu.">
          Check Spelling While Typing
        </message>
        <message name="IDS_EDIT_CHECK_GRAMMAR_MAC" desc="The Mac menu item for check grammar with spelling in the edit menu.">
          Check Grammar With Spelling
        </message>
        <!-- Edit::Speech submenu -->
        <message name="IDS_SPEECH_MAC" desc="The Mac menu item for the 'Speech' submenu in the edit and context menu. To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, open the Edit menu and use the translation from there.">
          Speech
        </message>
        <message name="IDS_SPEECH_START_SPEAKING_MAC" desc="The Mac menu item for the 'Start Speaking' item from the 'Speech' submenu in edit and context menu. To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, open the Edit menu and use the translation from there.">
          Start Speaking
        </message>
        <message name="IDS_SPEECH_STOP_SPEAKING_MAC" desc="The Mac menu item for the 'Stop Speaking' item from the 'Speech' submenu in edit and context menu. To translate, launch /Applications/TextEdit.app in an appropriately localized version of OS X, open the Edit menu and use the translation from there.">
          Stop Speaking
        </message>
        <!-- View menu -->
        <message name="IDS_BOOKMARK_BAR_ALWAYS_SHOW_MAC" desc="The Mac menu item for having bookmark bar always visible in the view menu.">
          Always Show Bookmarks Bar
        </message>
        <message name="IDS_STOP_MENU_MAC" desc="The Mac menu item stop in the view menu.">
          Stop
        </message>
        <message name="IDS_RELOAD_MENU_MAC" desc="The Mac menu item to reload the current page in the view menu.">
          Reload This Page
        </message>
        <message name="IDS_RELOAD_IGNORING_CACHE_MENU_MAC" desc="The Mac menu item to force reload the current page (ignoring cache) in the view menu.">
          Force Reload This Page
        </message>
        <message name="IDS_ENTER_FULLSCREEN_MAC" desc="The Mac menu item to go into fullscreen mode in the view menu and also in the app menu.">
          Enter Full Screen
        </message>
        <message name="IDS_EXIT_FULLSCREEN_MAC" desc="The Mac menu item to leave fullscreen mode in the view menu and also in the app menu.">
          Exit Full Screen
        </message>
        <message name="IDS_ENTER_PRESENTATION_MAC" desc="The Mac menu item to go into presentation mode in the view menu.">
          Enter Presentation Mode
        </message>
        <message name="IDS_EXIT_PRESENTATION_MAC" desc="The Mac menu item to leave presentation mode in the view menu.">
          Exit Presentation Mode
        </message>
        <message name="IDS_TOGGLE_FULLSCREEN_TOOLBAR_MAC" desc="The Mac menu checkbox item to show/hide the toolbar in full screen.">
          Hide Toolbar in Full Screen
        </message>
        <message name="IDS_TEXT_BIGGER_MAC" desc="The Mac menu item to zoom in on the page in the view menu.">
          Zoom In
        </message>
        <message name="IDS_TEXT_DEFAULT_MAC" desc="The Mac menu item to make the page actual size in the view menu.">
          Actual Size
        </message>
        <message name="IDS_TEXT_SMALLER_MAC" desc="The Mac menu item to zoom out on the in the view menu.">
          Zoom Out
        </message>
        <message name="IDS_DEVELOPER_MENU_MAC" desc="The Mac menu item for the developer submenu in the view menu.">
          Developer
        </message>
        <!-- View->Developer menu -->
        <message name="IDS_VIEW_SOURCE_MAC" desc="The Mac menu item for view page source in the developer submenu of the view menu.">
          View Source
        </message>
        <message name="IDS_DEV_TOOLS_MAC" desc="The Mac menu item for the developer tools in the developer submenu of the view menu.">
          Developer Tools
        </message>
        <message name="IDS_DEV_TOOLS_CONSOLE_MAC" desc="The Mac menu item for the JavaScript console in the developer submenu of the view menu.">
          JavaScript Console
        </message>
        <message name="IDS_TASK_MANAGER_MAC" desc="The Mac menu item for task manager in the developer submenu of the view menu.">
          Task Manager
        </message>
        <!-- History menu -->
        <message name="IDS_HISTORY_HOME_MAC" desc="The Mac menu item for home in the history menu.">
          Home
        </message>
        <message name="IDS_HISTORY_BACK_MAC" desc="The Mac menu item for back in the history menu.">
          Back
        </message>
        <message name="IDS_HISTORY_FORWARD_MAC" desc="The Mac menu item for forward in the history menu.">
          Forward
        </message>
        <message name="IDS_HISTORY_VISITED_MAC" desc="The Mac menu item for the header of visited items in the history menu.">
          Recently Visited
        </message>
        <message name="IDS_HISTORY_CLOSED_MAC" desc="The Mac menu item for the header of recently closed items in the history menu.">
          Recently Closed
        </message>
        <message name="IDS_HISTORY_CLOSED_RESTORE_WINDOW_MAC" desc="The Mac menu item for restoring all the tabs of a recently closed window.">
          Restore All Tabs
        </message>
        <!-- Bookmarks menu -->
        <message name="IDS_BOOKMARK_ALL_TABS_MAC" desc="The Mac menu item for bookmarking all tabs in the current window.">
          Bookmark All Tabs...
        </message>
        <!-- Window menu -->
        <message name="IDS_MINIMIZE_WINDOW_MAC"
                 desc="The Mac menu item for minimize the window menu."
                 meaning="Mac Menubar: The Mac menu item for minimize the window menu.">
          Minimize
        </message>
        <message name="IDS_ZOOM_WINDOW_MAC"
                 desc="The Mac menu item for zoom (maximize) in the window menu."
                 meaning="Mac Menubar: The Mac menu item for zoom (maximize) in the window menu.">
          Zoom
        </message>
        <message name="IDS_NEXT_TAB_MAC" desc="The Mac menu item for next tab in the window menu.">
          Select Next Tab
        </message>
        <message name="IDS_PREV_TAB_MAC" desc="The Mac menu item for previous tab in the window menu.">
          Select Previous Tab
        </message>
        <message name="IDS_SHOW_DOWNLOADS_MAC" desc="The Mac menu item to show downloads in the window menu.">
          Downloads
        </message>
        <message name="IDS_WINDOW_AUDIO_PLAYING_MAC" desc="The emoji to append to the title of a window showing audio is playing.">
          <ph name="TAB_TITLE">$1<ex>The Title of the Tab</ex></ph> <ph name="EMOJI_PLAYING">$2<ex>(playing)</ex></ph>
        </message>
        <message name="IDS_WINDOW_AUDIO_MUTING_MAC" desc="The emoji to append to the title of a window showing audio is muting.">
          <ph name="TAB_TITLE">$1<ex>The Title of the Tab</ex></ph> <ph name="EMOJI_MUTING">$2<ex>(muting)</ex></ph>
        </message>
        <message name="IDS_SHOW_EXTENSIONS_MAC" desc="The Mac menu item to show extensions in the window menu.">
          Extensions
        </message>
        <message name="IDS_ALL_WINDOWS_FRONT_MAC" desc="The Mac menu item for bring all to front the window menu.">
          Bring All to Front
        </message>
        <!-- Help menu -->
        <message name="IDS_FEEDBACK_MAC" desc="The Mac menu item to report a bug in the Help menu.">
          Report an Issue...
        </message>
        <message name="IDS_HELP_MAC" desc="The Mac menu item to show help in the Help menu.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> Help
        </message>
      </if> <!-- is_macosx -->

      <!-- Linux Global Menubar Menus -->
      <if expr="is_posix and not is_macosx and not is_ios">
        <!-- Unity and some other GNOME configurations now have a permanent,
             Mac-like menu bar that lives outside the window at the top of the
             screen. The following strings should be in Linux style, not Mac
             style (i.e. have ampersand accelerators, be title cased, etc.)

             In general, the Linux UI will try to reuse other menu strings
             since they are otherwise appropriate, but we do need a few
             additional ones with different formatting. -->

        <!-- Menubar Menu Titles -->
        <message name="IDS_FILE_MENU_LINUX" desc="The menu title of the Linux file menu.">
          &amp;File
        </message>
        <message name="IDS_EDIT_MENU_LINUX" desc="The menu title of the Linux edit menu.">
          &amp;Edit
        </message>
        <message name="IDS_VIEW_MENU_LINUX" desc="The menu title of the Linux view menu.">
          &amp;View
        </message>
        <message name="IDS_HISTORY_MENU_LINUX" desc="The menu title of the Linux history menu.">
          Hi&amp;story
        </message>
        <message name="IDS_TOOLS_MENU_LINUX" desc="The menu title of the Linux tools menu.">
          &amp;Tools
        </message>
        <message name="IDS_HELP_MENU_LINUX" desc="The menu title of the Linux help menu.">
          &amp;Help
        </message>

        <!-- File menu items that we can't reuse. -->
        <message name="IDS_REOPEN_CLOSED_TABS_LINUX" desc="The Linux menu item reopen recently closed tabs in the file menu.">
          Reopen Closed Tab
        </message>
        <message name="IDS_OPEN_FILE_LINUX" desc="The Linux menu item to open a file in the file menu.">
          Open &amp;File...
        </message>
        <message name="IDS_OPEN_LOCATION_LINUX" desc="The Linux menu item to open a location in the file menu (puts cursor in the url bar).">
          Open &amp;Location...
        </message>
        <message name="IDS_CLOSE_WINDOW_LINUX" desc="The Linux menu item to close a window in the file menu.">
          Close Win&amp;dow
        </message>
        <message name="IDS_CLOSE_TAB_LINUX" desc="The Linux menu item to close a browser tab in the file menu.">
          &amp;Close Tab
        </message>

        <!-- View menu items that we can't reuse. -->
        <message name="IDS_STOP_MENU_LINUX" desc="The Linux menu item stop in the view menu.">
          &amp;Stop
        </message>
        <message name="IDS_RELOAD_MENU_LINUX" desc="The Linux menu item to reload the current page in the view menu.">
          &amp;Reload This Page
        </message>
        <message name="IDS_TEXT_DEFAULT_LINUX" desc="The Linux menu item to make the page actual size in the view menu.">
          A&amp;ctual Size
        </message>
        <message name="IDS_TEXT_BIGGER_LINUX" desc="The Linux menu item to zoom in on the page in the view menu.">
          Zoom &amp;In
        </message>
        <message name="IDS_TEXT_SMALLER_LINUX" desc="The Linux menu item to zoom out on the in the view menu.">
          Zoom &amp;Out
        </message>

        <!-- History menu -->
        <message name="IDS_HISTORY_HOME_LINUX" desc="The Linux menu item for home in the history menu.">
          Home
        </message>
        <message name="IDS_HISTORY_BACK_LINUX" desc="The Linux menu item for back in the history menu.">
          &amp;Back
        </message>
        <message name="IDS_HISTORY_FORWARD_LINUX" desc="The Linux menu item for forward in the history menu.">
          &amp;Forward
        </message>
        <message name="IDS_HISTORY_VISITED_LINUX" desc="The Linux menu item for the header of most visited items in the history menu.">
          Most Visited
        </message>
        <message name="IDS_HISTORY_CLOSED_LINUX" desc="The Linux menu item for the header of recently closed items in the history menu.">
          Recently Closed
        </message>
        <message name="IDS_HISTORY_CLOSED_RESTORE_WINDOW_LINUX" desc="The Linux menu item for restoring all the tabs of a recently closed window.">
          Restore All Tabs
        </message>

      </if>

      <!-- Geolocation messages -->
      <if expr="not is_android">
        <message name="IDS_GEOLOCATION_INFOBAR_QUESTION" desc="Question asked on the info bar whenever URL wants to access the user's physical location">
          <ph name="URL">
            $1<ex>maps.google.com</ex>
          </ph> wants to use your computer's location.
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_GEOLOCATION_INFOBAR_QUESTION" desc="Mobile: Question asked on the info bar whenever URL wants to access the user's physical location">
          <ph name="URL">
            $1<ex>maps.google.com</ex>
          </ph> wants to use your device's location.
        </message>
      </if>
      <message name="IDS_GEOLOCATION_INFOBAR_PERMISSION_FRAGMENT" desc="Permission fragment used in the permission bubble, after 'This site wants to:' asking for permission to access the user's physical location.">
        Know your location
      </message>
      <message name="IDS_GEOLOCATION_ALLOW_BUTTON" desc="A button in geolocation infobar for allowing access to geolocation for a given domain.">
        Allow
      </message>
      <message name="IDS_GEOLOCATION_DENY_BUTTON" desc="A button in geolocation infobar for denying access to geolocation for a given domain.">
        Deny
      </message>
      <message name="IDS_GEOLOCATION_BUBBLE_SECTION_ALLOWED" desc="Heading for a section in the geolocation bubble listing all sites which are currently tracking the user's location.">
        This page contains elements from the following sites that are tracking your location:
      </message>
      <message name="IDS_GEOLOCATION_BUBBLE_SECTION_DENIED" desc="Heading for a section in the geolocation bubble listing all sites which are currently blocked from accessing the user's location.">
        The following sites have been blocked from tracking your location on this page:
      </message>
      <message name="IDS_GEOLOCATION_BUBBLE_REQUIRE_RELOAD_TO_CLEAR" desc="Hint text for the geolocation bubble informing user they must reload the page for the Clear settings command to take effect.">
        Settings will be cleared on next reload.
      </message>
      <message name="IDS_GEOLOCATION_BUBBLE_CLEAR_LINK" desc="Link on the geolocation bubble that resets the list of allowed and blocked sites.">
        Clear these settings for future visits
      </message>
      <message name="IDS_GEOLOCATION_BUBBLE_MANAGE_LINK" desc="Link on the geolocation bubble that opens up the Content Settings management dialog.">
        Manage location settings...
      </message>
      <message name="IDS_GEOLOCATION_ALLOWED_TOOLTIP" desc="Location bar icon tooltip text when a page is allowed to use geolocation.">
        This page is tracking your location.
      </message>
      <message name="IDS_GEOLOCATION_BLOCKED_TOOLTIP" desc="Location bar icon tooltip text when a page is blocked from using geolocation.">
        This page has been blocked from tracking your location.
      </message>

      <!-- CryptoToken messages -->
      <if expr="not is_android">
        <message name="IDS_CRYPTOTOKEN_INFOBAR_QUESTION" desc="Question asked on the info bar whenever URL wants to access the user's security keys.">
          Allow <ph name="URL">$1<ex>accounts.google.com</ex></ph> to identify you by your Security Key?
        </message>
      </if>
      <message name="IDS_CRYPTOTOKEN_ALLOW_BUTTON" desc="A button in cryptotoken infobar for allowing access to security keys for a given domain.">
        Allow
      </message>
      <message name="IDS_CRYPTOTOKEN_DENY_BUTTON" desc="A button in cryptotoken infobar for denying access to security keys for a given domain.">
        Block
      </message>

      <!-- Web MIDI messages -->
      <message name="IDS_MIDI_SYSEX_TAB_LABEL" desc="Label for MIDI system exclusive message on Content Settings dialog">
        MIDI devices full control
      </message>
      <message name="IDS_MIDI_SYSEX_ALLOW_RADIO" desc="A radio button in Content Settings dialog to allow a site to access MIDI devices with system exclusive messages.">
        Allow all sites to use system exclusive messages to access MIDI devices
      </message>
      <message name="IDS_MIDI_SYSEX_BLOCK_RADIO" desc="A radio button in Content Settings dialog to deny a site to access MIDI devices with system exclusive messages.">
        Do not allow any sites to use system exclusive messages to access MIDI devices
      </message>
      <message name="IDS_MIDI_SYSEX_ASK_RADIO" desc="A radio button in Content Settings dialog to allow a site to query the permision to access MIDI devices with system exclusive messages.">
        Ask me when a site wants to use system exclusive messages to access MIDI devices (recommended)
      </message>
      <message name="IDS_MIDI_SYSEX_INFOBAR_QUESTION" desc="Question asked on the info bar whenever URL wants to access MIDI devices with system exclusive messages.">
        <ph name="URL">
          $1<ex>www.google.com</ex>
        </ph> wants to get full control of your MIDI devices.
      </message>
      <message name="IDS_MIDI_SYSEX_PERMISSION_FRAGMENT" desc="Permission asked in the permission bubble when a URL wants to access MIDI devices with system exclusive messages, along with other permissions requests. Preceded by the prompt 'This site would like to:'">
        Use your MIDI devices
      </message>
      <message name="IDS_MIDI_SYSEX_ALLOW_BUTTON" desc="A button in MIDI access infobar for allowing full access to MIDI devices for a given domain.">
        Allow
      </message>
      <message name="IDS_MIDI_SYSEX_DENY_BUTTON" desc="A button in MIDI access infobar for denying full access to MIDI devices for a given domain.">
        Block
      </message>
      <message name="IDS_MIDI_SYSEX_ALLOWED_TOOLTIP" desc="Location bar icon tooltip text when a page is allowed to use MIDI system exclusive messages.">
        This page has full control of MIDI devices.
      </message>
      <message name="IDS_MIDI_SYSEX_BLOCKED_TOOLTIP" desc="Location bar icon tooltip text when a page is blocked from using MIDI system exclusive messages.">
        This page has been blocked from having full control of MIDI devices.
      </message>
      <message name="IDS_MIDI_SYSEX_BUBBLE_ALLOWED" desc="Title of the MIDI bubble where system exclusive messages are allowed.">
        This site has full control of MIDI devices.
      </message>
      <message name="IDS_MIDI_SYSEX_BUBBLE_DENIED" desc="Title of the MIDI bubble where system exclusive messages are blocked.">
        This site has been blocked from having full control of MIDI devices.
      </message>
      <message name="IDS_MIDI_SYSEX_BUBBLE_REQUIRE_RELOAD_TO_CLEAR" desc="Hint text for the MIDI bubble informing user they must reload the page for the Clear settings command to take effect.">
        Settings will be cleared on next reload.
      </message>
      <message name="IDS_MIDI_SYSEX_BUBBLE_CLEAR_LINK" desc="Link on the MIDI bubble that resets the list of allowed and blocked sites.">
        Clear these settings for future visits
      </message>
      <message name="IDS_MIDI_SYSEX_BUBBLE_MANAGE_LINK" desc="Link on the MIDI bubble that opens up the Content Settings management dialog.">
        Manage MIDI settings...
      </message>

      <!-- Protocol Handler -->
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_TOOLTIP" desc="Location bar icon tooltip text when a page wants to use registerProtocolHandler.">
        This page wants to install a service handler.
      </message>

      <!-- Media Stream -->
      <message name="IDS_MEDIASTREAM_BUBBLE_MANAGE_LINK" desc="Link on the media (camera and microphone) bubble that opens up the Content Settings management dialog for media settings.">
        Manage media settings...
      </message>
      <message name="IDS_MEDIASTREAM_MICROPHONE_BUBBLE_MANAGE_LINK" desc="Link on the microphone bubble that opens up the Content Settings management dialog for microphone settings.">
        Manage microphone settings...
      </message>
      <message name="IDS_MEDIASTREAM_CAMERA_BUBBLE_MANAGE_LINK" desc="Link on the camera bubble that opens up the Content Settings management dialog for camera settings.">
        Manage camera settings...
      </message>
      <message name="IDS_MICROPHONE_CAMERA_ALLOWED" desc="Status text that is used as location bar icon tooltip text and as media settings bubble status text when a page is allowed to use the camera and microphone.">
        This page is accessing your camera and microphone.
      </message>
      <message name="IDS_MICROPHONE_CAMERA_BLOCKED" desc="Status text that is used as location bar icon tooltip text and as media settings bubble status text when a page is blocked from using the camera and microphone.">
        This page has been blocked from accessing your camera and microphone.
      </message>
      <message name="IDS_MICROPHONE_ACCESSED" desc="Microphone usage status text that is used as tooltip text for the location bar icon and as status text of the media settings bubble when a page is using the microphone (but not the camera).">
        This page is accessing your microphone.
      </message>
      <message name="IDS_CAMERA_ACCESSED" desc="Camera usage status text that is used as tooltip text for the location bar icon and as status text of the media settings bubble when a page is using the camera (but not the microphone).">
        This page is accessing your camera.
      </message>
      <message name="IDS_MICROPHONE_BLOCKED" desc="Microphone usage status text that is used as tooltip text for the location bar icon and as status text of the media settings bubble when a page is blocked from using the microphone.">
        This page has been blocked from accessing your microphone.
      </message>
      <message name="IDS_CAMERA_BLOCKED" desc="Camera usage status text that is used as tooltip text for the location bar icon and as status text of the media settings bubble when a page is blocked from using the camera.">
        This page has been blocked from accessing your camera.
      </message>
      <message name="IDS_MEDIASTREAM_SETTING_CHANGED_MESSAGE" desc="Message that is used to suggest reloading when media (camera, microphone) settings was changed by the user. These settings are immediately effective, but the web page might not know how to deal with the new settings.">
        This page may need to be reloaded before the new settings take effect.
      </message>

      <!-- Protected media identifier permission infobar -->
      <if expr="is_android or chromeos">
        <message name="IDS_PROTECTED_MEDIA_IDENTIFIER_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's protected media identifier.">
          Know your unique device identifier
        </message>
        <message name="IDS_PROTECTED_MEDIA_IDENTIFIER_INFOBAR_QUESTION" desc="Question asked on the infobar whenever URL wants to access protected media identifier. It shows the origin of the URL.">
          <ph name="URL">$1<ex>https://www.youtube.com</ex></ph> needs to uniquely identify your device to play premium content.
        </message>
      </if>

      <!-- Fullscreen infobar -->
      <if expr="is_android">
        <message name="IDS_FULLSCREEN_INFOBAR_TEXT" desc="Text to display on the fullscreen infobar when a page enters fullscreen.">
          <ph name="ORIGIN">$1<ex>https://www.youtube.com</ex></ph> is now fullscreen.
        </message>
        <message name="IDS_FULLSCREEN_INFOBAR_EXIT_FULLSCREEN_BUTTON" desc="Label for choosing 'Exit fullscreen' on fullscreen infobar.[CHAR-LIMIT=32]">
          Exit fullscreen
        </message>
        <message name="IDS_FULLSCREEN_INFOBAR_ALLOW_BUTTON" desc="Label for choosing 'Allow' on fullscreen infobar. [CHAR-LIMIT=32]">
          Allow
        </message>
      </if>

      <!-- Media throttle infobar -->
      <if expr="is_android">
        <message name="IDS_MEDIA_THROTTLE_INFOBAR_TEXT" desc="Text to display on the info bar whenever user wants to playback a video after being throttled.">
          Android is having trouble playing media.
        </message>
        <message name="IDS_MEDIA_THROTTLE_INFOBAR_BLOCK_BUTTON" desc="Label for choosing 'Block' on media throttle infobar.[CHAR-LIMIT=32]">
          Wait
        </message>
        <message name="IDS_MEDIA_THROTTLE_INFOBAR_ALLOW_BUTTON" desc="Label for choosing 'Allow' on media throttle infobar. [CHAR-LIMIT=32]">
          Try again
        </message>
      </if>

      <message name="IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE" desc="The title text that is used in the manage passwords bubble when the user has generated a password.">
        Password saved
      </message>
      <message name="IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TEXT" desc="A message that the browser shows after saving a password it has autogenerated for the user. This message appears in a bubble and contains a link to all the user's saved autogenerated passwords. The link text is a separate string in the translation console and appears here as placeholder text.">
        You can access it and all your <ph name="SAVED_PASSWORDS_LINK">$1<ex>Google saved passwords</ex></ph> from any browser.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_SMART_LOCK_TEXT" desc="A message that the browser shows after saving a password it has autogenerated for the user if Smart Lock branding is enabled. This message appears in a bubble and contains a link to all the user's saved autogenerated passwords.">
        Access your passwords from any device at <ph name="MANAGEMENT_LINK">$1<ex>passwords.google.com</ex></ph>.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TEXT_INFOBAR" desc="A message that the browser shows after saving a password it has autogenerated for the user. This message appears in an infobar and contains a link to all the user's saved autogenerated passwords. The link text is a separate string in the translation console and appears here as placeholder text.">
        Password saved. You can access it and all your <ph name="SAVED_PASSWORDS_LINK">$1<ex>Google saved passwords</ex></ph> from any browser.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_SMART_LOCK_TEXT_INFOBAR" desc="A message that the browser shows after saving a password it has autogenerated for the user if Smart Lock branding is enabled. This message appears in an infobar and contains a link to all the user's saved autogenerated passwords.">
        Password saved. Access your passwords from any device at <ph name="MANAGEMENT_LINK">$1<ex>passwords.google.com</ex></ph>.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_LINK" desc="The text for a link to the user's saved passwords. This is inserted into an infobar or a bubble that the browser shows to the user. The infobar and the bubble use a separate string in the translation console that has a placeholder for this link title.">
        Google saved passwords
      </message>
      <message name="IDS_MANAGE_PASSWORDS_TITLE" desc="The title text that is used in the manage passwords bubble when a password is autofilled or after a user has stored a password.">
        Saved passwords for this site:
      </message>
      <message name="IDS_MANAGE_PASSWORDS_REMOTE_TEXT" desc="The text used to tell inform users of how to manage their passwords from a website.">
        Access your passwords from any device at <ph name="LINK_TEXT">$1<ex>passwords.google.com</ex></ph>
      </message>

      <message name="IDS_MANAGE_PASSWORDS_NO_PASSWORDS" desc="The text that is used in the manage passwords bubble when all passwords have been deleted.">
        No passwords saved.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_DELETED" desc="The text that is used in the manage passwords bubble when a password is deleted.">
        Password deleted
      </message>
      <message name="IDS_MANAGE_PASSWORDS_UNDO" desc="The text that is used in the manage passwords bubble when a password is deleted.">
        Undo
      </message>
      <message name="IDS_MANAGE_PASSWORDS_AUTO_SIGNIN_TITLE" desc="The title of the auto-signin toast.">
        Signing in as <ph name="username">$1<ex>chef@google.com</ex></ph>
      </message>
      <message name="IDS_MANAGE_PASSWORDS_AUTO_SIGNIN_SMART_LOCK_WELCOME" desc="A warm welcome in the auto-signin toast appearing for users with Google Smart Lock enabled.">
        <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Smart Lock</ex></ph> remembers your passwords and signs you in to apps and sites automatically across devices.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_AUTO_SIGNIN_DEFAULT_WELCOME" desc="A warm welcome in the auto-signin toast appearing for users with Google Smart Lock disabled.">
        <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Chrome</ex></ph> remembers your passwords and signs you in to sites automatically on this device.
      </message>
      <message name="IDS_MANAGE_PASSWORDS_DELETED_ACCOUNT" desc="The text that is used in the manage accounts bubble when an account is deleted.">
        Account removed
      </message>

      <message name="IDS_ALLOW_AUTOFILL_SYNC_CREDENTIAL" desc="The text for the choice to allow autofilling in about:flags">
        Allow
      </message>
      <message name="IDS_DISALLOW_AUTOFILL_SYNC_CREDENTIAL" desc="The text for the choice to not allow autofilling in about:flags">
        Disallow
      </message>
      <message name="IDS_DISALLOW_AUTOFILL_SYNC_CREDENTIAL_FOR_REAUTH" desc="The text for the choice to not allow autofilling for reauth pages in about:flags">
        Disallow for reauth
      </message>

      <!-- Update Recommended dialog -->
      <if expr="not chromeos">
        <message name="IDS_UPDATE_RECOMMENDED" desc="The main text of the Update Recommended dialog.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> is out of date because it hasn't been relaunched in a while. An update is available and will be applied as soon as you relaunch.
        </message>
        <message name="IDS_RELAUNCH_AND_UPDATE" desc="The button label for relaunching and updating Chrome.">
          Relaunch
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPDATE_RECOMMENDED" desc="The main text of the Update Recommended dialog.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome OS</ex></ph> needs to be restarted to apply the update.
        </message>
        <message name="IDS_RELAUNCH_AND_UPDATE" desc="The button label for restarting and updating Chrome OS.">
          Restart
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_NOT_NOW" desc="The button label for delaying the relaunch and updating Chrome.">
          Not now
        </message>
      </if>
      <if expr="use_titlecase">
        <message name="IDS_NOT_NOW" desc="In Tile Case: The button label for delaying the relaunch and updating Chrome.">
          Not Now
        </message>
      </if>

      <!-- Extra Mac UI Strings -->
      <if expr="is_macosx">
        <message name="IDS_PLEASE_RELAUNCH_BROWSER" desc="Title of the alert when Chrome needs to be relaunched for a change/update to take effect.">
          Please Relaunch <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>
        </message>
        <message name="IDS_SAVE_PAGE_FILE_FORMAT_PROMPT_MAC" desc="The title of the File Format label for saving a page.">
          Format:
        </message>

        <!-- Install from disk image -->
        <message name="IDS_INSTALL_FROM_DMG_TITLE" desc="Title of the dialog asking whether to install from the disk image.  Mac-only.">
          Do you want to install <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>?
        </message>
        <message name="IDS_INSTALL_FROM_DMG_PROMPT" desc="Prompt asking whether to install from the disk image.  Mac-only.">
          You're running <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> from its disk image. Installing it on your computer lets you run it without the disk image, and ensures it will be kept up to date.
        </message>
        <message name="IDS_INSTALL_FROM_DMG_YES" desc="Button to approve installation from the disk image.  Mac-only.">
          Install
        </message>
        <message name="IDS_INSTALL_FROM_DMG_NO" desc="Button to cancel installation from the disk image.  Mac-only.">
          Don't Install
        </message>
        <message name="IDS_INSTALL_FROM_DMG_AUTHENTICATION_PROMPT" desc="The prompt to be displayed in the authentication dialog when installing from the disk image.  The system will add a sentence asking for an administrator's name and password.  Mac-only.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will be installed.
        </message>
        <message name="IDS_INSTALL_FROM_DMG_ERROR_TITLE" desc="Error dialog title to be displayed when installation from the disk image fails.  Mac-only.">
          Installation failed.
        </message>
        <message name="IDS_INSTALL_FROM_DMG_ERROR" desc="Error dialog message to be displayed when installation from the disk image fails.  Mac-only.">
          <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> couldn't complete installation, but will continue to run from its disk image.
        </message>
      </if>

      <!-- File Selection Dialog Policy - Infobar -->
      <if expr="is_android">
        <message name="IDS_FILE_SELECTION_DIALOG_INFOBAR" desc="Mobile: Infobar message on disallowed file selection dialog.">
          Access to local files on your device is disabled by your administrator.
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_FILE_SELECTION_DIALOG_INFOBAR" desc="Infobar message on disallowed file selection dialog.">
          Access to local files on your machine is disabled by your administrator.
        </message>
      </if>

      <if expr="is_posix and not is_macosx and not is_ios">
        <!-- Linux proxy configuration fallback help -->
        <message name="IDS_ABOUT_LINUX_PROXY_CONFIG_TITLE" desc="Title of HTML page shown on systems where system proxy configuration is unsupported.">
          Proxy Configuration Help
        </message>
        <message name="IDS_ABOUT_LINUX_PROXY_CONFIG_BODY" desc="HTML body of page shown on systems where system proxy configuration is unsupported.">
          &lt;p&gt;When running <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> under a supported desktop environment, the system proxy settings will be used.  However, either your system is not supported or there was a problem launching your system configuration.&lt;/p&gt;

          &lt;p&gt;But you can still configure via the command line.  Please see &lt;code&gt;man <ph name="PRODUCT_BINARY_NAME">$2<ex>google-chrome</ex></ph>&lt;/code&gt; for more information on flags and environment variables.&lt;/p&gt;
        </message>
        <message name="IDS_ABOUT_SANDBOX_TITLE" desc="Title of HTML page which contains the status of the sandbox.">
          Sandbox Status
        </message>
        <message name="IDS_ABOUT_SANDBOX_SUID_SANDBOX" desc="The name of a type of sandbox used by Chrome on UNIX like systems. The name 'SUID' stands for 'Set User ID', however it's a technical term and may be best left untranslated.">
          SUID Sandbox
        </message>
        <message name="IDS_ABOUT_SANDBOX_NAMESPACE_SANDBOX" desc="The name of a type of sandbox used by Chrome on Linux systems. A namespace is a technical term which refers to set of names for objects which are disjoint from the members of all other namespaces.">
          Namespace Sandbox
        </message>
        <message name="IDS_ABOUT_SANDBOX_PID_NAMESPACES" desc="This a technical term for an attribute of the SUID or namespace sandboxes. PID stands for 'Process ID' but, as a technical term, may be best left untranslated. A namespace is another technical term which refers to set of names for objects which are disjoint from the members of all other namespaces.">
          PID namespaces
        </message>
        <message name="IDS_ABOUT_SANDBOX_NET_NAMESPACES" desc="This a technical term for an attribute of the SUID or namespace sandboxes. A namespace is a technical term which refers to set of names for objects which are disjoint from the members of all other namespaces.">
          Network namespaces
        </message>
        <message name="IDS_ABOUT_SANDBOX_SECCOMP_BPF_SANDBOX" desc="The name of a type of sandbox used by Chrome on Linux systems. 'Seccomp-BPF' is a technical term which should be left untranslated.">
          Seccomp-BPF sandbox
        </message>
        <message name="IDS_ABOUT_SANDBOX_SECCOMP_BPF_SANDBOX_TSYNC" desc="The name of a type of sandbox used by Chrome on Linux systems. 'Seccomp-BPF' is a technical term which should be left untranslated. TSYNC is a technical term which should be left untranslated.">
          Seccomp-BPF sandbox supports TSYNC
        </message>
        <message name="IDS_ABOUT_SANDBOX_YAMA_LSM" desc="The name of a Linux security module. It is a technical term that should be left untranslated.">
          Yama LSM enforcing
        </message>
        <message name="IDS_ABOUT_SANDBOX_OK" desc="A message telling the user that their sandbox is sufficient.">
          You are adequately sandboxed.
        </message>
        <message name="IDS_ABOUT_SANDBOX_BAD" desc="A message telling the user that their sandbox is insufficient.">
          You are not adequately sandboxed!
        </message>
      </if>

      <message name="IDS_IMAGE_FILES" desc="The description of the image file extensions in the select file dialog.">
        Image Files
      </message>
      <message name="IDS_AUDIO_FILES" desc="The description of the audio file extensions in the select file dialog.">
        Audio Files
      </message>
      <message name="IDS_VIDEO_FILES" desc="The description of the video file extensions in the select file dialog.">
        Video Files
      </message>
      <message name="IDS_CUSTOM_FILES" desc="The description of the custom file extensions in the select file dialog.">
        Custom Files
      </message>

      <!-- Fullscreen Strings -->
      <message name="IDS_FULLSCREEN_USER_ENTERED_FULLSCREEN" desc="Message for the user telling them that they have entered fullscreen mode.">
        You have gone full screen.
      </message>
      <message name="IDS_FULLSCREEN_EXTENSION_TRIGGERED_FULLSCREEN" desc="Message for the user telling them that an extension triggered fullscreen mode.">
        "<ph name="EXTENSION_NAME">$1<ex>MyExtension</ex></ph>" triggered full screen.
      </message>
      <message name="IDS_FULLSCREEN_UNKNOWN_EXTENSION_TRIGGERED_FULLSCREEN" desc="Message for the user telling them that an extension whose name is unknown triggered fullscreen mode.">
        An extension triggered full screen.
      </message>
      <message name="IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN" desc="Text displayed in the bubble when a page has gone fullscreen. (With a domain URL to display)">
        <ph name="FULLSCREEN_ORIGIN">$1<ex>google.com</ex></ph> is now full screen.
      </message>
      <message name="IDS_FULLSCREEN_ENTERED_FULLSCREEN" desc="Text displayed in the bubble when a page has gone fullscreen. (No domain to be shown, e.g. from filesystem page)">
        This page is now full screen.
      </message>
      <message name="IDS_FULLSCREEN_SITE_REQUEST_FULLSCREEN_MOUSELOCK" desc="Text displayed in the bubble that requests permission for staying in fullscreen mode and locking the mouse. (With a domain URL to display)">
        <ph name="FULLSCREEN_ORIGIN">$1<ex>google.com</ex></ph> is now full screen and wants to disable your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_REQUEST_FULLSCREEN_MOUSELOCK" desc="Text displayed in the bubble that requests permission for staying in fullscreen mode and locking the mouse. (No domain to be shown, e.g. from filesystem page)">
        This page is now full screen and wants to disable your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_SITE_REQUEST_MOUSELOCK" desc="Text displayed in the bubble that requests permission for locking the mouse. (With a domain URL to display)">
        <ph name="FULLSCREEN_ORIGIN">$1<ex>google.com</ex></ph> wants to disable your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_REQUEST_MOUSELOCK" desc="Text displayed in the bubble that requests permission for locking the mouse. (No domain to be shown, e.g. from filesystem page)">
        This page wants to disable your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN_MOUSELOCK" desc="Text displayed in the bubble to inform the user that the page has gone fullscreen and locked the mouse. (With a domain URL to display)">
        <ph name="FULLSCREEN_ORIGIN">$1<ex>google.com</ex></ph> is now full screen and has disabled your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_ENTERED_FULLSCREEN_MOUSELOCK" desc="Text displayed in the bubble to inform the user that the page has gone fullscreen and locked the mouse. (No domain to be shown, e.g. from filesystem page)">
        This page is now full screen and has disabled your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_SITE_ENTERED_MOUSELOCK" desc="Text displayed in the bubble to inform the user that the page has locked the mouse. (With a domain URL to display)">
        <ph name="FULLSCREEN_ORIGIN">$1<ex>google.com</ex></ph> has disabled your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_ENTERED_MOUSELOCK" desc="Text displayed in the bubble to inform the user that the page has locked the mouse. (No domain to be shown, e.g. from filesystem page)">
        This page has disabled your mouse cursor.
      </message>
      <message name="IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_SENTENCE" desc="Text displayed in the bubble to tell users how to return to normal mode.">
        Press <ph name="ACCELERATOR">$1<ex>Esc</ex></ph> to exit.
      </message>
      <message name="IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_FULLSCREEN" desc="Text displayed in the bubble to tell users how to return from fullscreen mode (where the web page occupies the entire screen) to normal mode. Please surround the name of the key (e.g. 'Esc') in pipe characters so it can be rendered as a key.">
        Press |<ph name="ACCELERATOR">$1<ex>Esc</ex></ph>| to exit fullscreen
      </message>
      <message name="IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_MOUSELOCK" desc="Text displayed in the bubble to tell users how to return from mouselock mode (where the mouse cursor is hidden) to normal mode. Please surround the name of the key (e.g. 'Esc') in pipe characters so it can be rendered as a key.">
        Press |<ph name="ACCELERATOR">$1<ex>Esc</ex></ph>| to show your cursor
      </message>
      <message name="IDS_FULLSCREEN_ALLOW" desc="Text in the bubble button that grants permission for a site to enter fullscreen and/or lock the mouse.">
        Allow
      </message>
      <message name="IDS_FULLSCREEN_DISMISS" desc="Text in the bubble button that allows a page to stay in fullscreen without persistent UI warning the user that they are in fullscreen mode.">
        Dismiss
      </message>
      <if expr="use_titlecase">
        <message name="IDS_FULLSCREEN_EXIT_FULLSCREEN" desc="In Title Case: Text in the bubble button that forces a webpage out of fullscreen mode.">
          Exit Full Screen
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_FULLSCREEN_EXIT_FULLSCREEN" desc="Text in the bubble button that forces a webpage out of fullscreen mode.">
          Exit full screen
        </message>
      </if>
      <message name="IDS_FULLSCREEN_EXIT" desc="Text in the bubble button that denies to lock the mouse and forces a webpage out of fullscreen mode.">
        Exit
      </message>
      <message name="IDS_FULLSCREEN_DENY" desc="Text in the bubble button that denies to lock the mouse.">
        Deny
      </message>

      <!-- Register Protocol Handler Strings -->
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_MAILTO_NAME" desc="A more user friendly way of describing mailto: links.">
        email
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_WEBCAL_NAME" desc="A more user friendly way of describing webcal: links.">
        web calendar
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_CONFIRM" desc="The message to display when asking a user to confirm the registration of a protocol handler.">
        Allow <ph name="HANDLER_HOSTNAME">$1<ex>google.com</ex></ph> to open all <ph name="PROTOCOL">$2<ex>search</ex></ph> links?
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_CONFIRM_REPLACE" desc="The message to display when asking a user to confirm the registration of a protocol handler.">
        Allow <ph name="HANDLER_HOSTNAME">$1<ex>google.com</ex></ph> to open all <ph name="PROTOCOL">$2<ex>search</ex></ph> links instead of <ph name="REPLACED_HANDLER_TITLE">$3<ex>Elgoog Search</ex></ph>?
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_CONFIRM_FRAGMENT" desc="The permission fragment to display when asking a user to confirm the registration of a protocol handler in a permission bubble. Follows a prompt 'This site would like to:'.">
        Open <ph name="PROTOCOL">$3<ex>search</ex></ph> links
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_CONFIRM_REPLACE_FRAGMENT" desc="The permission fragment to display when asking a user to confirm the registration of a protocol handler. Follows a prompt 'This site would like to:'.">
        Open <ph name="PROTOCOL">$3<ex>search</ex></ph> links instead of <ph name="REPLACED_HANDLER_TITLE">$4<ex>Elgoog Search</ex></ph>
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_ACCEPT" desc="Text to show for the accept button for the register protocol handler request infobar.">
        Allow
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_DENY" desc="Text to show for the deny button for the register protocol handler request infobar.">
        Deny
      </message>
      <message name="IDS_REGISTER_PROTOCOL_HANDLER_IGNORE" desc="Text to show for an ignore prompt for a register protocol handler registration request.">
        Ignore
      </message>

      <!-- PDF reader related strings. Not used on Android -->
      <if expr="not is_android">
        <!-- PDF with unsupported feature bubble -->
        <message name="IDS_PDF_BUBBLE_MESSAGE" desc="Message for the bubble when a user views a PDF with an unsupported feature">
          Parts of this PDF document could not be displayed.
        </message>
        <message name="IDS_PDF_BUBBLE_OPEN_IN_READER_LINK" desc="Title of the link to open a PDF with an unsupported feature in Adobe Reader">
          Open in Adobe Reader
        </message>
        <message name="IDS_PDF_BUBBLE_INSTALL_READER_LINK" desc="Title of the link to open a PDF with an unsupported feature in Adobe Reader">
          Install Adobe Reader
        </message>
        <if expr="is_win">
          <message name="IDS_PDF_BUBBLE_METRO_MODE_LINK" desc="Title of the link to restart Chrome on Windows 8 in metro mode when viewing a PDF with an unsupported feature.">
            Relaunch Chrome on the desktop
          </message>
        </if>
        <message name="IDS_PDF_INFOBAR_QUESTION_ALWAYS_USE_READER" desc="Question asked on the info bar when a user opens a PDF with Reader and we want to ask them if they always want to use it for viewing PDF files.">
          Use Adobe Reader as your default PDF viewer?
        </message>
        <message name="IDS_PDF_INFOBAR_ALWAYS_USE_READER_BUTTON" desc="The label of the 'always' button on the infobar that asks the user if they want to set Adobe Reader as default.">
          Always
        </message>
        <message name="IDS_PDF_PASSWORD_DIALOG_TITLE" desc="The title of the dialog requesting a password to open a protected PDF.">
          Password required
        </message>

        <!-- Adobe Reader is out of date Blocking Page -->
        <message name="IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_TITLE" desc="The title of the Adobe Reader out of date blocking page.">
          Adobe Reader Out Of Date
        </message>
        <message name="IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_BODY" desc="The body of the Adobe Reader out of date blocking page.">
          Adobe Reader is out of date and may be insecure.
        </message>
        <message name="IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_UPDATE" desc="The name of the radio button option to go to the Adobe Reader installer website.">
          Update Adobe Reader now
        </message>
        <message name="IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_PROCEED" desc="The name of the radio button to proceed to open the PDF with the out of date Adobe Reader.">
          Proceed without updating Adobe Reader (not recommended)
        </message>
        <message name="IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_OK" desc="OK button text of the Adobe Reader out of date blocking page.">
          OK
        </message>
        <message name="IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_CANCEL" desc="Cancel button text of the Adobe Reader out of date blocking page.">
          Cancel
        </message>
      </if>

      <!-- Media Capture messages -->
      <message name="IDS_MEDIA_CAPTURE_AUDIO_AND_VIDEO" desc="Question asked on the info bar whenever a web page requests access to the computer's microphone and camera.">
        <ph name="HOST">$1<ex>html5rocks.com</ex></ph> wants to use your camera and microphone.
      </message>
      <message name="IDS_MEDIA_CAPTURE_AUDIO_ONLY" desc="Question asked on the info bar whenever a web page requests access to the computer's microphone.">
        <ph name="HOST">$1<ex>html5rocks.com</ex></ph> wants to use your microphone.
      </message>
      <message name="IDS_MEDIA_CAPTURE_VIDEO_ONLY" desc="Question asked on the info bar whenever a web page requests access to the computer's camera.">
        <ph name="HOST">$1<ex>html5rocks.com</ex></ph> wants to use your camera.
      </message>
      <message name="IDS_MEDIA_CAPTURE_AUDIO_AND_VIDEO_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's microphone and camera.">
        Use your camera and microphone
      </message>
      <message name="IDS_MEDIA_CAPTURE_AUDIO_ONLY_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's microphone.">
        Use your microphone
      </message>
      <message name="IDS_MEDIA_CAPTURE_VIDEO_ONLY_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's camera.">
        Use your camera
      </message>
      <message name="IDS_MEDIA_CAPTURE_ALLOW" desc="Label for a button that grants access to a web page, so they can use a camera and/or a microphone.">
        Allow
      </message>
      <message name="IDS_MEDIA_CAPTURE_BLOCK" desc="Label for a button that blocks access to a web page, so they can't use a camera and/or a microphone.">
        Block
      </message>

      <!-- Quota messages -->
      <if expr="is_android">
        <message name="IDS_REQUEST_QUOTA_INFOBAR_QUESTION" desc="Mobile: For Android device. Question asked on the info bar whenever webapp requests new (larger) quota to persistently store data on the device (e.g. for persistent-type filesystem).">
          <ph name="URL">
            $1<ex>html5rocks.com</ex>
          </ph> wants to permanently store data on your device.
        </message>
        <message name="IDS_REQUEST_LARGE_QUOTA_INFOBAR_QUESTION" desc="Mobile: For Android device. Question asked on the info bar whenever webapp requests new (larger) quota to persistently store large data on the user's device (e.g. for persistent-type filesystem).">
          <ph name="URL">
            $1<ex>html5rocks.com</ex>
          </ph> wants to permanently store large data on your device.
        </message>
      </if>
      <if expr="not is_android">
        <message name="IDS_REQUEST_QUOTA_INFOBAR_QUESTION" desc="Question asked on the info bar whenever webapp requests new (larger) quota to persistently store data on the user's local computer (e.g. for persistent-type filesystem).">
          <ph name="URL">
            $1<ex>html5rocks.com</ex>
          </ph> wants to permanently store data on your local computer.
        </message>
        <message name="IDS_REQUEST_LARGE_QUOTA_INFOBAR_QUESTION" desc="Question asked on the info bar whenever webapp requests new (larger) quota to persistently store large data on the user's local computer (e.g. for persistent-type filesystem).">
          <ph name="URL">
            $1<ex>html5rocks.com</ex>
          </ph> wants to permanently store large data on your local computer.
        </message>
      </if>
      <message name="IDS_REQUEST_QUOTA_PERMISSION_FRAGMENT" desc="Permission fragment presented in the permission bubble when the webapp requests new larger quota to persistently store data on the device. Follows a 'This site would like to:' prompt.">
        Store files on this device
      </message>

      <!-- Android does not support multiple profiles and supervised users -->
      <if expr="not is_android">
        <!-- Manage Profile Dialog -->
        <message name="IDS_PROFILES_MANAGE_TITLE" desc="Title of the manage profile dialog">
          Edit
        </message>
        <message name="IDS_PROFILES_MANAGE_NAME_LABEL" desc="Label next to the profile name text field.">
          Name:
        </message>
        <message name="IDS_PROFILES_MANAGE_ICON_LABEL" desc="Label above the profile avatar icon chooser.">
          Choose a picture and name
        </message>

        <!-- Delete Profile Dialog -->
        <message name="IDS_PROFILES_DELETE_TITLE" desc="Title of the delete profile dialog">
          Remove person?
        </message>
        <message name="IDS_PROFILES_DELETE_OK_BUTTON_LABEL" desc="The text to display on the button to confirm deleting the profile.">
          Remove
        </message>
        <message name="IDS_PROFILES_DELETE_MESSAGE" desc="Message explaining to the user what will happen if they delete this profile">
          Are you sure you want to remove "<ph name="PROFILE_NAME">$1<ex>New User</ex></ph>" and all associated Chrome data from this computer? This cannot be undone.
        </message>
        <message name="IDS_PROFILES_DELETE_LEGACY_SUPERVISED_ADDENDUM" desc="Additional message shown in the same dialog following the IDS_PROFILES_DELETE_MESSAGE, explaining to the user what will happen if they delete the profile of a supervised user.">
          Settings and browsing history for this supervised user may still be visible by the manager at <ph name="BEGIN_LINK">&lt;a target="_blank" href="$1"&gt;</ph><ph name="DISPLAY_LINK">$2</ph><ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
        </message>
        <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TITLE" desc="Title of the disconnect managed profile dialog.">
          Disconnect your Google Account
        </message>
        <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_DOMAIN_INFORMATION" desc="The text that provides the domain information.">
          This account is managed by <ph name="DOMAIN">$1<ex>example.com</ex></ph>
        </message>
        <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_OK_BUTTON_LABEL" desc="The text to display on the button that clears the data and disconnect user account.">
          Clear data and disconnect
        </message>
        <message name="IDS_PROFILES_LIST_ITEM_CURRENT" desc="Text to display in the multi-profiles list when this profile is the current profile">
          <ph name="PROFILE_NAME">$1<ex>New User</ex></ph> (current)
        </message>
        <message name="IDS_PROFILES_LIST_LEGACY_SUPERVISED_USER_LABEL" desc="Text to display in the multi-profiles list next to the profile name when this profile is supervised.">
          (Supervised)
        </message>
        <message name="IDS_PROFILES_LIST_CHILD_LABEL" desc="Text to display in the multi-profiles list next to the profile name when this profile is associated with a child account.">
          (Account for kids)
        </message>
        <message name="IDS_PROFILES_SINGLE_USER_MESSAGE" desc="Text to display in the multi-profiles section when there is only one user">
          You are currently the only <ph name="PRODUCT_NAME">$1<ex>Chrome</ex></ph> user.
        </message>

        <!-- Create Profile Dialog -->
        <message name="IDS_PROFILES_CREATE_TITLE" desc="Title of the create profile dialog">
          Add person
        </message>
        <message name="IDS_PROFILES_CREATE_INSTRUCTIONS" desc="Instructions for the create profile dialog">
          Choose a picture and name
        </message>
        <message name="IDS_PROFILES_CREATE_CONFIRM" desc="Create button confirmation">
          Create
        </message>
        <message name="IDS_PROFILES_CREATE_LOCAL_ERROR" desc="Message shown when a local error (for example, a disk error) occurs during profile creation.">
          Oops! The new user couldn't be created. Please check your hard drive space and permissions and try again.
        </message>
        <message name="IDS_PROFILES_CREATE_REMOTE_ERROR" desc="Message shown when a remote error (for example, a network error) occurs during creation of a new supervised user.">
          Oops! The new supervised user couldn't be created. Please check your network connection and try again later.
        </message>
        <message name="IDS_PROFILES_CREATE_SIGN_IN_ERROR" desc="Message shown when a sign-in error occurs during creation of a new supervised user.">
          Oops! The new supervised user couldn't be created. Please make sure you're signed in properly and try again.
        </message>
        <message name="IDS_PROFILES_CREATE_LEGACY_SUPERVISED_USER_ERROR_EXISTS_REMOTELY" desc="Message shown when the user enters the name of a supervised user that can be imported.">
          Looks like you're already managing a user by that name.<ph name="LINE_BREAK">&lt;br/&gt;</ph>Did you want to <ph name="BEGIN_LINK">&lt;a is="action-link" id="supervised-user-import-existing"&gt;</ph>import <ph name="PROFILE_NAME">$1<ex>John</ex></ph> to this device<ph name="END_LINK">&lt;/a&gt;</ph>?
        </message>
        <message name="IDS_PROFILES_CREATE_LEGACY_SUPERVISED_USER_ERROR_EXISTS_LOCALLY" desc="Message shown when the user enters the name of a supervised user that we already have locally.">
          Looks like you already have a supervised user with this name.
        </message>
        <message name="IDS_PROFILES_CREATE_SUPERVISED_SIGNED_IN_LABEL" desc="Label for the 'Supervised user' checkbox in the create-profile dialog when the current user is signed in.">
          Control and view the websites this person visits from <ph name="CUSTODIAN_EMAIL">$1<ex>user@gmail.com</ex></ph>.
        </message>
        <message name="IDS_PROFILES_CREATE_SUPERVISED_ACCOUNT_DETAILS_OUT_OF_DATE_LABEL" desc="Label for the 'Supervised user' checkbox in the create-profile dialog when the current user is signed in, but their sign-in information is invalid. This will be followed by a 'Sign in again' link.">
          Control and view the websites this person visits from <ph name="CUSTODIAN_EMAIL">$1<ex>user@gmail.com</ex></ph>.
    Your account sign-in details are out of date.
        </message>
        <message name="IDS_PROFILES_CREATE_SUPERVISED_JUST_SIGNED_IN" desc="Warning message shown in the create-profile dialog when the custodian signed in recently, sync has not yet finished initializing, and so the creation process is likely to take extra time.">
          Creating your supervised user. This may take a few moments.
        </message>
        <message name="IDS_PROFILES_CREATE_SUPERVISED_NOT_SIGNED_IN_HTML" desc="Label for the (disabled) 'Supervised user' checkbox in the create-profile dialog when the current user is not signed in, containing a link to the sign in page.">
          <ph name="BEGIN_SIGN_IN_LINK">&lt;a is="action-link" id="create-profile-supervised-sign-in-link"&gt;</ph>Sign in<ph name="END_SIGN_IN_LINK">&lt;/a&gt;</ph> to control and view the websites this person visits.
        </message>
        <message name="IDS_PROFILES_CREATE_SHORTCUT_CHECKBOX" desc="Create Shortcut checkbox when creating a new profile">
          Create a desktop shortcut for this user
        </message>
        <message name="IDS_PROFILES_CREATE_SHORTCUT_BUTTON" desc="Create Shortcut button when editing an existing profile">
          Add desktop shortcut
        </message>
        <message name="IDS_PROFILES_REMOVE_SHORTCUT_BUTTON" desc="Remove Shortcut button when editing an existing profile">
          Remove desktop shortcut
        </message>

        <!-- Legacy supervised-user creation wizard dialogs -->
        <message name="IDS_LEGACY_SUPERVISED_USER_LEARN_MORE_TITLE" desc="Title for the 'Learn more' dialog for the supervised user feature.">
          What is a supervised user?
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_LEARN_MORE_TEXT" desc="Informative text describing the 'supervised user' feature in detail, shown when the 'Learn more' link is clicked in the 'Create User' dialog. The HTML entities at the starts of the lines are a non-breaking space, a bullet, and another non-breaking space.">
          A supervised user can explore the web with your guidance. As the manager of a supervised user in Chrome, you can

&#160;&#8226;&#160;allow or prohibit certain websites,
&#160;&#8226;&#160;review websites the supervised user has visited, and
&#160;&#8226;&#160;manage other settings.

Creating a supervised user does not create a Google Account, and their bookmarks, browsing history, and other preferences will not follow them to other devices with Chrome Sync.

After you create a new supervised user, you can manage their settings at any time, from any device, at <ph name="DISPLAY_LINK">$1</ph>. <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://support.google.com/chrome/?p=ui_supervised_users&amp;hl=[GRITLANGCODE]"&gt;</ph>Learn more about supervised users<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_LEARN_MORE_DONE_BUTTON" desc="Text for the 'OK' button on the 'Learn more' dialog for the supervised user feature.">
          OK, got it
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_CREATED_TITLE" desc="Title for the confirmation dialog that appears after a supervised user has been created.">
          <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph> has been created as a supervised user!
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_CREATED_TEXT" desc="Informative text for the confirmation dialog that appears after a supervised user has been created.">
          A supervised user named <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph> has been created. To set which websites this supervised user can view, you can configure restrictions and settings by visiting <ph name="BEGIN_LINK">&lt;a target="_blank" href="$3"&gt;</ph><ph name="DISPLAY_LINK">$4</ph><ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>. If you do not change the default settings, <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph> can browse all sites on the web.

Please check your email at <ph name="ACCOUNT_EMAIL">$2<ex>jane.doe@gmail.com</ex></ph> for these and further instructions.
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_CREATED_DONE_BUTTON" desc="Text for the button that closes the dialog without making any additional changes, on the supervised user creation confirmation dialog.">
          Got it
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_CREATED_SWITCH_BUTTON" desc="Text for the button that opens a window for the new supervised user, on the supervised user creation confirmation dialog.">
          Switch to <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph>
        </message>

        <!-- Import existing supervised user dialog -->
        <message name="IDS_IMPORT_EXISTING_LEGACY_SUPERVISED_USER_TITLE" desc="Title for the dialog used to import existing supervised users. The dialog appears when the custodian clicks on 'Import existing supervised user' during the user creation flow. The dialog displays a list of existing supervised users for the custodian to choose from">
          Import an existing supervised user
        </message>
        <message name="IDS_IMPORT_EXISTING_LEGACY_SUPERVISED_USER_TEXT" desc="Text that instructs the user to choose one of the displayed supervised users to import to this device.">
          Choose a supervised user to add to this device.
        </message>
        <message name="IDS_CREATE_NEW_LEGACY_SUPERVISED_USER_LINK" desc="The text for the link button that takes the user back from the dialog for importing an existing supervised user to the user creation dialog.">
          Create a new supervised user
        </message>
        <message name="IDS_IMPORT_EXISTING_LEGACY_SUPERVISED_USER_OK" desc="Text on the button to confirm importing an existing supervised user.">
          Import supervised user
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_ALREADY_ON_THIS_DEVICE" desc="Text shown in the list of supervised users beside the name of a supervised user that already exists on the current device.">
          (already on this device)
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_NO_EXISTING_ERROR" desc="Message shown to the custodian when he opens the 'supervised user import' overlay but he has no existing supervised users to import.">
          Oops! Looks like you have no existing supervised users to import. Please create one or more from another device then you can import them here.
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_IMPORT_LOCAL_ERROR" desc="Message shown when a local error (for example, a disk error) occurs during supervised user import.">
          Oops! The supervised user couldn't be imported. Please check your hard drive space and permissions and try again.
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_IMPORT_REMOTE_ERROR" desc="Message shown when a remote error (for example, a network error) occurs during supervised user import.">
          Oops! The supervised user couldn't be imported. Please check your network connection and try again later.
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_IMPORT_SIGN_IN_ERROR" desc="Message shown when a sign-in error occurs during supervised user import.">
          Oops! Looks like there's a problem with your credentials. Please make sure you're signed in properly and try again.
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_SELECT_AVATAR_TITLE" desc="Title for the dialog used to select an avatar for a supervised user being imported. The dialog is shown only when the supervised user being imported has no Chrome synced avatar.">
          Select an avatar for this supervised user
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_SELECT_AVATAR_TEXT" desc="Text that instructs the user to choose an avatar for the supervised user being imported.">
          Choose an avatar for this supervised user.
        </message>
        <message name="IDS_LEGACY_SUPERVISED_USER_SELECT_AVATAR_OK" desc="Text on the button to confirm the avatar selection for the supervised user being imported.">
          Ok, import
        </message>
      </if>

      <if expr="not is_android and not is_ios">
        <!-- User manager web UI -->
        <if expr="use_titlecase">
          <message name="IDS_ADD_USER_BUTTON" desc="Text shown on an add user button on login/locker screen">
            Add Person
          </message>
          <if expr="not chromeos">
            <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_BUTTON" desc="Text shown on a button that confirms removal of a user.">
              Remove This Person
            </message>
            <message name="IDS_CREATE_LEGACY_SUPERVISED_USER_MENU_LABEL" desc="Text shown on a menu option that creates a legacy supervised user.">
              Add Supervised Person
            </message>
          </if>
          <if expr="chromeos">
            <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_BUTTON" desc="Text shown on a button that confirms removal of a user.">
              Remove This User
            </message>
            <message name="IDS_CREATE_LEGACY_SUPERVISED_USER_MENU_LABEL" desc="Text shown on a menu option that creates a legacy supervised user.">
              Add Supervised User
            </message>
          </if>
          <message name="IDS_SCREEN_LOCK_SIGN_OUT">
            Sign out
          </message>
        </if>
        <if expr="not use_titlecase">
          <message name="IDS_ADD_USER_BUTTON" desc="Text shown on an add user button on login/locker screen">
            Add person
          </message>
          <if expr="not chromeos">
            <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_BUTTON" desc="Text shown on a button that confirms removal of a user.">
              Remove this person
            </message>
            <message name="IDS_CREATE_LEGACY_SUPERVISED_USER_MENU_LABEL" desc="Text shown on a menu option that creates a legacy supervised user.">
              Add supervised person
            </message>
          </if>
          <if expr="chromeos">
            <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_BUTTON" desc="Text shown on a button that confirms removal of a user.">
              Remove this user
            </message>
            <message name="IDS_CREATE_LEGACY_SUPERVISED_USER_MENU_LABEL" desc="Text shown on a menu option that creates a legacy supervised user.">
              Add supervised user
            </message>
          </if>
          <message name="IDS_SCREEN_LOCK_SIGN_OUT">
            Sign out
          </message>
        </if>
        <if expr="chromeos">
          <message name="IDS_LAUNCH_APP_BUTTON" desc="Text shown on the button that launches kiosk app from Chrome OS login UI">
            Launch app
          </message>
        </if>
        <message name="IDS_GO_INCOGNITO_BUTTON" desc="Text shown on Chrome OS sign-in screen button that launches guest session. Should be short.">
          Browse as Guest
        </message>
        <message name="IDS_MORE_OPTIONS_BUTTON" desc="Text read but not shown on the [...] button on login screen">
          More Options
        </message>
        <message name="IDS_SCREEN_LOCK_ACTIVE_USER">
          Currently signed in
        </message>
        <message name="IDS_LOGIN_ERROR_AUTHENTICATING" desc="Couldn't sign in because password is invalid">
          Sorry, your password could not be verified. Please try again.
        </message>
        <message name="IDS_LOGIN_ERROR_AUTHENTICATING_OFFLINE" desc="Couldn't unlock because the password can't be validated locally and the user is offline">
          Sorry, your password could not be verified because you are offline.
        </message>
        <message name="IDS_LOGIN_POD_EMPTY_PASSWORD_TEXT" desc="Text to display in the password field for user pod when no password has been entered.">
          Enter password
        </message>
        <message name="IDS_LOGIN_POD_SIGNING_IN" desc="Text to display at the bottom of a user pod during signing in the user. The translation should be as short as possible because of limited UI space.">
          Signing in
        </message>
        <message name="IDS_LOGIN_POD_PASSWORD_FIELD_ACCESSIBLE_NAME" desc="Text to be spoken when the focus is set to the password field of a user pod on the sign-in screen.">
          Password for <ph name="USER_EMAIL_ADDRESS">$1<ex>john.doe@example.com</ex></ph>
        </message>
        <message name="IDS_LOGIN_POD_MENU_BUTTON_ACCESSIBLE_NAME" desc="Text to be spoken when the focus is set to the menu button of the user pod on the login screen.">
          Options menu for <ph name="USER_EMAIL_ADDRESS">$1<ex>john.doe@example.com</ex></ph>
        </message>
        <message name="IDS_LOGIN_POD_MENU_REMOVE_ITEM_ACCESSIBLE_NAME" desc="Text to be spoken when 'Remove user' item is selected on the pod menu.">
          Remove this user
        </message>
        <message name="IDS_LOGIN_POD_LEGACY_SUPERVISED_USER_REMOVE_WARNING" desc="Text shown as a warning when attempting to remove legacy supervised user.">
          All files and local data associated with the supervised user will be permanently deleted once this supervised user is removed. Visited websites and settings for this supervised user may still be visible by the manager at <ph name="MANAGEMENT_URL">$1<ex>www.example.com</ex></ph>.
        </message>
        <if expr="not chromeos">
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC" desc="Main text shown as a warning when attempting to remove an user. This case is for non-synced profiles, with all statistics loaded correctly. The symbol $1 will be substituted with custom JS code, so it should not be replaced by a #.">
            {NUM_ITEMS, plural,
            =1 {This will permanently delete $1 item from this device.}
            other {This will permanently delete $1 items from this device.}}
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC_WITH_ERRORS" desc="Main text shown as a warning when attempting to remove an user. This case is for non-synced profiles, with some statistics failed to load. The symbol $1 will be substituted with custom JS code, so it should not be replaced by a #.">
            {NUM_ITEMS, plural,
            =1 {This will permanently delete at least $1 item from this device.}
            other {This will permanently delete at least $1 items from this device.}}
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC_NOSTATS" desc="Main text shown as a warning when attempting to remove an user. This case is for non-synced profiles with statistics unavailable. (Possible case: Chromium decided not to load the statistics of closed profiles.)">
            This will permanently delete your browsing data from this device.
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_NONSYNC_CALCULATING" desc="Main text shown as a warning when attempting to remove an user. This case is for non-synced profiles when the statistics is still loading. $1 is always replaced by localized version of the ellipsis (...).">
            This will permanently delete <ph name="TOTAL_COUNT">$1<ex>...</ex></ph> items from this device.
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_HISTORY" desc="The title of a statistic (browsing history) shown inside a table below the warning text when attempting to remove an user. A number is displayed next to it.">
            Browsing History
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_PASSWORDS" desc="The title of a statistic (passwords) shown inside a table below the warning text when attempting to remove an user. A number is displayed next to it.">
            Passwords
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_BOOKMARKS" desc="The title of a statistic (bookmarks) shown inside a table below the warning text when attempting to remove an user. A number is displayed next to it.">
            Bookmarks
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_SETTINGS" desc="The title of a statistic (settings) shown inside a table below the warning text when attempting to remove an user. A number is displayed next to it.">
            Settings
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_CALCULATING" desc="This is used in '...' of the warning message 'This will permanently delete ... items from the device.', which is shown when attempting to remove an user. Also shown next to the loading statistics below this warning. All occurences of '...' will be eventually replaced by numbers when the statistics are loaded.">
            ...
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC" desc="Main text shown as a warning when attempting to remove an user. This case is for synced profiles, with all statistics loaded correctly. The symbol $1 will be substituted with custom JS code, so it should not be replaced by a #.">
            {NUM_ITEMS, plural,
            =1 {This will permanently delete $1 item from this device but will not clear synced items from other devices.}
            other {This will permanently delete $1 items from this device but will not clear synced items from other devices.}}
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC_WITH_ERRORS" desc="Main text shown as a warning when attempting to remove an user. This case is for non-synced profiles, with some statistics failed to load. The symbol $1 will be substituted with custom JS code, so it should not be replaced by a #.">
            {NUM_ITEMS, plural,
            =1 {This will permanently delete at least $1 item from this device but will not clear synced items from other devices.}
            other {This will permanently delete at least $1 items from this device but will not clear synced items from other devices.}}
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC_NOSTATS" desc="Main text shown as a warning when attempting to remove an user. This case is for synced profiles with statistics unavailable. (Possible case: Chromium decided not to load the statistics of closed profiles.)">
            This will permanently delete your browsing data from this device but will not clear synced items from other devices.
          </message>
          <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC_CALCULATING" desc="Main text shown as a warning when attempting to remove an user. This case is for synced profiles when the statistics is still loading. $1 is always replaced by localized version of the ellipsis (...).">
            This will permanently delete at least <ph name="TOTAL_COUNT">$1<ex>...</ex></ph> items from this device but will not clear synced items from other devices.
          </message>
        </if>

        <!-- User manager tutorial -->
        <message name="IDS_USER_MANAGER_TUTORIAL_NEXT" desc="Text of the button that advances the tutorial to the next slide">
          Next
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_DONE" desc="The text of the OK button on the last tutorial slide">
          OK, got it
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_GUEST_TITLE" desc="Title of the guest user slide">
          Share with guests
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_FRIENDS_TITLE" desc="Title of the friends and family slide">
          Add family and friends
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_TITLE" desc="Title of the tutorial completion slide">
          You're almost done!
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_USER_NOT_FOUND" desc="Text of the label asking the user if they see their name">
          Don't see your name?
        </message>
      </if>

      <!-- Aura strings -->
      <if expr="use_ash">
        <message name="IDS_LAUNCHER_CONTEXT_MENU_CLOSE" desc="Title text for the 'close' context menu item of the launcher">
          Close
        </message>
        <message name="IDS_LAUNCHER_CONTEXT_MENU_PIN" desc="Title text for the 'pin' context menu item of the launcher">
          Pin
        </message>
        <message name="IDS_LAUNCHER_CONTEXT_MENU_UNPIN" desc="Title text for the 'unpin' context menu item of the launcher">
          Unpin
        </message>
        <message name="IDS_LAUNCHER_CONTEXT_MENU_PIN_ENFORCED_BY_POLICY" desc="Short text for the pin/unpin context menu to tell user the setting is enforced by policy of a shelf item">
          Pinned by administrator
        </message>
      </if>

      <!-- Panel windows -->
      <message name="IDS_PANEL_CLOSE_TOOLTIP"
               desc="Text for the tooltip on panel window close button.">
        Close
      </message>
      <message name="IDS_PANEL_MINIMIZE_TOOLTIP"
               desc="Text for the tooltip on panel window minimize button.">
        Collapse
      </message>
      <message name="IDS_PANEL_RESTORE_TOOLTIP"
             desc="Text for the tooltip on panel window restore button.">
        Expand
      </message>

      <!-- High-contrast mode. -->
      <message name="IDS_HIGH_CONTRAST_NOTIFICATION"
               desc="Text that explains that the user is using Windows High-Contrast mode, so they may be interested in a high-contrast extension or a dark theme. Note to translators: this is the name of a feature in Windows, so please try to find the correct name of that feature in your region.">
        You have High Contrast mode enabled. Would you like to install our High Contrast extension and a dark theme?
      </message>
      <message name="IDS_HIGH_CONTRAST_EXT"
               desc="The title of a link that will open the Chrome Web Store with a High Contrast extension the user can install.">
        High Contrast Extension
      </message>
      <message name="IDS_DARK_THEME"
               desc="The title of a link that will open the Chrome Web Store with a dark theme the user might want to install, if they prefer light text on a dark background.">
        Dark Theme
      </message>

      <message name="IDS_FLAGS_NEW_PROFILE_MANAGEMENT_NAME" desc="Title for the flag for the new profile management.">
        New profile management system
      </message>
      <message name="IDS_FLAGS_NEW_PROFILE_MANAGEMENT_DESCRIPTION" desc="Description for the flag for the new profile management.">
        Enables the new profile management system, including profile lock and the new avatar menu UI.
      </message>
      <message name="IDS_FLAGS_ACCOUNT_CONSISTENCY_NAME" desc="Title for the flag for account consistency between browser and cookie jar.">
        Identity consistency between browser and cookie jar
      </message>
      <message name="IDS_FLAGS_ACCOUNT_CONSISTENCY_DESCRIPTION" desc="Description for the flag for account consistency between browser and cookie jar.">
        When enabled, the browser manages signing in and out of Google accounts.
      </message>
      <message name="IDS_FLAGS_ENABLE_PASSWORD_SEPARATED_SIGNIN_FLOW_NAME" desc="Title for the flag to enable the new gaia password-separated sign in flow.">
        Enable new gaia password-separated sign in flow
      </message>
      <message name="IDS_FLAGS_ENABLE_PASSWORD_SEPARATED_SIGNIN_FLOW_DESCRIPTION" desc="Description for the flag to enable the new gaia password-separated sign in flow.">
        When enabled, signing in to the browser will use a new gaia password-separated sign in flow.
      </message>

      <message name="IDS_FLAGS_GOOGLE_PROFILE_INFO_NAME" desc="Title for the flag to enable the google profile information">
        Google profile name and icon
      </message>
      <message name="IDS_FLAGS_GOOGLE_PROFILE_INFO_DESCRIPTION" desc="Description for the flag to enable the google profile information">
        Enables using Google information to populate the profile name and icon in the avatar menu.
      </message>
      <message name="IDS_FLAGS_OFFER_STORE_UNMASKED_WALLET_CARDS" desc="Name of the flag to force show the checkbox to save Wallet cards locally.">
        Google Payments card saving checkbox
      </message>
      <message name="IDS_FLAGS_OFFER_STORE_UNMASKED_WALLET_CARDS_DESCRIPTION" desc="Name of the flag to force show the checkbox to save Wallet cards locally.">
        Show the checkbox to offer local saving of a credit card downloaded from the server.
      </message>
      <message name="IDS_FLAGS_OFFLINE_AUTO_RELOAD_NAME" desc="Name of the flag to make pages which failed to load while offline auto-reload">
        Offline Auto-Reload Mode
      </message>
      <message name="IDS_FLAGS_OFFLINE_AUTO_RELOAD_DESCRIPTION" desc="Description of the flag to make pages which failed to load while offline auto-reload">
        Pages that fail to load while the browser is offline will be auto-reloaded when the browser is online again.
      </message>
      <message name="IDS_FLAGS_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_NAME" desc="Name of the flag to only enable auto-reload on visible tabs">
        Only Auto-Reload Visible Tabs
      </message>
      <message name="IDS_FLAGS_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_DESCRIPTION" desc="Description of the flag to only auto-reload visible tabs">
        Pages that fail to load while the browser is offline will only be auto-reloaded if their tab is visible.
      </message>
      <message name="IDS_FLAGS_SHOW_SAVED_COPY_NAME" desc="Name of the flag to enable offering users the option of loading a stale copy of a page when an error occurs." translateable="false">
        Show Saved Copy Button
      </message>
      <message name="IDS_FLAGS_SHOW_SAVED_COPY_DESCRIPTION" desc="Description of the flag to enable offering users the option of loading a stale copy of a page when an error occurs." translateable="false">
        When a page fails to load, if a stale copy of the page exists in the browser cache, a button will be presented to allow the user to load that stale copy.  The primary enabling choice puts the button in the most salient position on the error page; the secondary enabling choice puts it secondary to the reload button.
      </message>
      <message name="IDS_FLAGS_ENABLE_SHOW_SAVED_COPY_PRIMARY" desc="Option for IDS_FLAGS_SHOW_SAVED_NAME to use the show saved copy as the primary button." translateable="false">
        Enable: Primary
      </message>
      <message name="IDS_FLAGS_ENABLE_SHOW_SAVED_COPY_SECONDARY" desc="Option for IDS_FLAGS_SHOW_SAVED_COPY_NAME to use the reload as the primary button (in contrast to the show saved button)." translateable="false">
        Enable: Secondary
      </message>
      <message name="IDS_FLAGS_DISABLE_SHOW_SAVED_COPY" desc="Option to disable IDS_FLAGS_SHOW_SAVED_COPY_NAME." translateable="false">
        Disable
      </message>

      <if expr="chromeos">
        <message name="IDS_FLAGS_SMART_VIRTUAL_KEYBOARD_NAME" desc="Name of about:flags option to toggle smart deployment of the virtual keyboard.">
          Smart Deployment of the Virtual Keyboard
        </message>
        <message name="IDS_FLAGS_SMART_VIRTUAL_KEYBOARD_DESCRIPTION" desc="Description of about:flags option to turn off smart deployment of the virtual keyboard">
          Enable/Disable smart deployment of the virtual keyboard.
        </message>

        <message name="IDS_FLAGS_VIRTUAL_KEYBOARD_NAME" desc="Name of about:flags option to turn on the virtual keyboard">
          Virtual Keyboard
        </message>
        <message name="IDS_FLAGS_VIRTUAL_KEYBOARD_DESCRIPTION" desc="Description of about:flags option to turn on the virtual keyboard">
          Enable virtual keyboard support.
        </message>

        <message name="IDS_FLAGS_VIRTUAL_KEYBOARD_OVERSCROLL_NAME" desc="Name of about:flags option to turn on the overscrolling for the virtual keyboard">
          Virtual Keyboard Overscroll
        </message>
        <message name="IDS_FLAGS_VIRTUAL_KEYBOARD_OVERSCROLL_DESCRIPTION" desc="Description of about:flags option to turn on overscrolling for the virtual keyboard">
          Enables virtual keyboard overscroll support.
        </message>

        <message name="IDS_FLAGS_INPUT_VIEW_NAME" desc="Name of about::flags option to enable IME extensions to override the virtual keyboard view">
          Input views
        </message>
        <message name="IDS_FLAGS_INPUT_VIEW_DESCRIPTION" desc="Description of about::flags option to enable IME extensions to override the virtual keyboard view">
          Enable IME extensions to supply custom views for user input such as  virtual keyboards.
        </message>

        <message name="IDS_FLAGS_NEW_KOREAN_IME_NAME" desc="Name of about::flags option for the new Korean IME">
          New Korean IME
        </message>
        <message name="IDS_FLAGS_NEW_KOREAN_IME_DESCRIPTION" desc="Description of about::flags option for the new Korean IME">
          New Korean IME, which is based on Google Input Tools' HMM engine.
        </message>

        <message name="IDS_FLAGS_PHYSICAL_KEYBOARD_AUTOCORRECT_NAME" desc="Name of about::flags option to enable physical keyboard autocorrect for US keyboard">
          Physical keyboard autocorrect
        </message>
        <message name="IDS_FLAGS_PHYSICAL_KEYBOARD_AUTOCORRECT_DESCRIPTION" desc="Description of about::flags option to enable physical keyboard autocorrect for US keyboard">
          Enable physical keyboard autocorrect for US keyboard, which can provide suggestions as typing on physical keyboard.
        </message>

        <message name="IDS_FLAGS_VOICE_INPUT_NAME" desc="Name of about::flags option for voice input on virtual keyboard">
          Voice input on virtual keyboard
        </message>
        <message name="IDS_FLAGS_VOICE_INPUT_DESCRIPTION" desc="Description of about::flags option for voice input on virtual keyboard">
          Enables voice input on virtual keyboard.
        </message>

        <message name="IDS_FLAGS_EXPERIMENTAL_INPUT_VIEW_FEATURES_NAME" desc="Name of about::flags option to enable experimental features for IME input-views">
          Experimental input view features
        </message>
        <message name="IDS_FLAGS_EXPERIMENTAL_INPUT_VIEW_FEATURES_DESCRIPTION" desc="Description of about::flags option to enable experimental features for IME input-views">
          Enable experimental features for IME input views.
        </message>
        <message name="IDS_FLAGS_FLOATING_VIRTUAL_KEYBOARD_NAME" desc="Name of about::flags option to toggle floating virtual keyboard">
          Floating virtual keyboard.
        </message>
        <message name="IDS_FLAGS_FLOATING_VIRTUAL_KEYBOARD_DESCRIPTION" desc="Description of about::flags option to toggle floating virtual keyboard">
          Enable/Disable floating virtual keyboard.
        </message>
        <message name="IDS_FLAGS_GESTURE_TYPING_NAME" desc="Name of about::flags option to toggle gesture typing for the virtual keyboard">
          Gesture typing for the virtual keyboard.
        </message>
        <message name="IDS_FLAGS_GESTURE_TYPING_DESCRIPTION" desc="Description of about::flags option to toggle gesture typing for the virtual keyboard">
          Enable/Disable gesture typing option in the settings page for the virtual keyboard.
        </message>
        <message name="IDS_FLAGS_GESTURE_EDITING_NAME" desc="Name of about::flags option to toggle gesture editing for the virtual keyboard">
          Gesture editing for the virtual keyboard.
        </message>
        <message name="IDS_FLAGS_GESTURE_EDITING_DESCRIPTION" desc="Description of about::flags option to toggle gesture editing in the settings page for the virtual keyboard">
          Enable/Disable gesture editing option in the settings page for the virtual keyboard.
        </message>
        <message name="IDS_FLAGS_CAPTIVE_PORTAL_BYPASS_PROXY_NAME" desc="Name of about::flags option for bypass proxy for captive portal authorization on Chrome OS.">
          Bypass proxy for Captive Portal Authorization
        </message>
        <message name="IDS_FLAGS_CAPTIVE_PORTAL_BYPASS_PROXY_DESCRIPTION" desc="Description of about::flags option for bypass proxy for captive portal authorization on Chrome OS.">
          If proxy is configured, it usually prevents from authorization on different captive portals. This enables opening captive portal authorization dialog in a separate window, which ignores proxy settings.
        </message>
      </if>

      <!-- Strings for controlling credit card scanning feature in about:flags. -->
      <message name="IDS_FLAGS_CREDIT_CARD_SCAN_NAME" desc="The name of about:flags option to enable scanning of credit cards using device camera.">
        Credit card scanning
      </message>
      <message name="IDS_FLAGS_CREDIT_CARD_SCAN_DESCRIPTION" desc="The description of about:flags option to enable scanning of credit cards using device camera.">
        Enable scanning a new credit card number when filling out a credit card form.
      </message>

      <!-- Simple Cache Backend experiment. -->
      <message name="IDS_FLAGS_SIMPLE_CACHE_BACKEND_NAME" desc="Name of about:flags option to turn on the Simple Cache Backend">
        Simple Cache for HTTP
      </message>
      <message name="IDS_FLAGS_SIMPLE_CACHE_BACKEND_DESCRIPTION" desc="Description of about:flags option to turn on the Simple Cache Backend">
        The Simple Cache for HTTP is a new cache. It relies on the filesystem for disk space allocation.
      </message>

      <!-- Spelling feedback field trial. -->
      <message name="IDS_FLAGS_SPELLING_FEEDBACK_FIELD_TRIAL_NAME" desc="Name of about:flags option to enable the field trial for sending feedback to spelling service.">
        Spelling Feedback Field Trial
      </message>
      <message name="IDS_FLAGS_SPELLING_FEEDBACK_FIELD_TRIAL_DESCRIPTION" desc="Description of about:flags option to enable the field trial for sending feedback to spelling service.">
        Enable the field trial for sending user feedback to spelling service.
      </message>

      <!-- Web MIDI API. -->
      <message name="IDS_FLAGS_WEB_MIDI_NAME"
               desc="Name of about:flag option to turn on Web MIDI API">
        Web MIDI API
      </message>
      <message name="IDS_FLAGS_WEB_MIDI_DESCRIPTION"
               desc="Description of about:flag option to turn on Web MIDI API">
        Enable Web MIDI API experimental support.
      </message>

      <!-- Site per process mode -->
      <message name="IDS_FLAGS_SITE_PER_PROCESS_NAME"
               desc="Name of about:flag option to turn on experimental out-of-process iframe support">
        Out of process iframes
      </message>
      <message name="IDS_FLAGS_SITE_PER_PROCESS_DESCRIPTION"
               desc="Description of about:flag option to turn on experimental out-of-process iframe support">
        Highly experimental support for rendering cross-site iframes in separate processes.
      </message>

      <!-- Windows 8 Metro mode. -->
      <if expr="is_win">
        <message name="IDS_METRO_FLOW_DESCRIPTION"
                 desc="Wordy description of what the set-Chrome-as-Metro flow is all about.">
          Click next to choose your default browser.
        </message>
        <message name="IDS_METRO_FLOW_SET_DEFAULT"
                 desc="The label of the button invoking Windows8 default app settings window.">
          Next
        </message>
        <message name="IDS_METRO_MISSING_PLUGIN_PROMPT"
                 desc="Info Bar message to let user do something about the missing plugin">
          <ph name="PLUGIN_NAME">$1<ex>Quicktime</ex></ph> is required to display some elements on this page.
        </message>
        <message name="IDS_METRO_NPAPI_PLUGIN_PROMPT"
                 desc="Infobar message when an NPAPI plugin doesn't run in Metro mode.">
          <ph name="PLUGIN_NAME">$1<ex>Quicktime</ex></ph> only works on the desktop.
        </message>
        <message name="IDS_METRO_DOWNLOAD_COMPLETE_NOTIFICATION"
                desc="Notification displayed when a download request is completed">
          Your download has completed
        </message>
        <message name="IDS_METRO_DOWNLOAD_COMPLETE_NOTIFICATION_TITLE"
                desc="Title for notification displayed when a download request is completed">
          Download complete notification
        </message>
      </if>

      <!-- Media Galleries. -->
      <if expr="not is_android or use_aura">
        <message name="IDS_MEDIA_GALLERIES_DIALOG_HEADER" desc="Header for media gallery permissions dialog.">
          Media-File Permissions for "<ph name="EXTENSION">$1<ex>Photo Editor</ex></ph>"
        </message>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_SUBTEXT_READ_WRITE" desc="Explanatory text for the media gallery access permission. Indicates that the specified (by name) extension has read and write access to the listed folders.">
          "<ph name="EXTENSION">$1<ex>PhotoEditor</ex></ph>" can read and write images, video, and sound files in the checked locations.
        </message>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_SUBTEXT_READ_DELETE" desc="Explanatory text for the media gallery access permission. Indicates that the specified (by name) extension has read and delete access to the listed folders.">
          "<ph name="EXTENSION">$1<ex>PhotoEditor</ex></ph>" can read and delete images, video, and sound files in the checked locations.
        </message>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_SUBTEXT_READ_ONLY" desc="Explanatory text for the media gallery access permission. Indicates that the specified (by name) extension has read-only access to the listed folders.">
          "<ph name="EXTENSION">$1<ex>PhotoEditor</ex></ph>" can read images, video, and sound files in the checked locations.
        </message>
        <message name="IDS_MEDIA_GALLERIES_PERMISSION_SUGGESTIONS" desc="Header in media gallery permission dialog for locations that the app does not have permission for.">
          Suggestions
        </message>
        <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_DIALOG_HEADER" desc="Header for media gallery scan result dialog.">
          Add folders to "<ph name="EXTENSION">$1<ex>Photo Editor</ex></ph>"?
        </message>
        <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_DIALOG_SUBTEXT_READ_WRITE" desc="Explanatory text for the media gallery scan result dialog. Indicates that the specified (by name) extension will have read and write access to the selected folders.">
          "<ph name="EXTENSION">$1<ex>PhotoEditor</ex></ph>" will be able to read and write images, video, and sound files in the checked folders.
        </message>
        <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_DIALOG_SUBTEXT_READ_DELETE" desc="Explanatory text for the media gallery scan result dialog. Indicates that the specified (by name) extension will have read and delete access to the selected folders.">
          "<ph name="EXTENSION">$1<ex>PhotoEditor</ex></ph>" will be able to read and delete images, video, and sound files in the checked folders.
        </message>
        <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_DIALOG_SUBTEXT_READ_ONLY" desc="Explanatory text for the media gallery scan result dialog. Indicates that the specified (by name) extension will have read-only access to the selected folders.">
          "<ph name="EXTENSION">$1<ex>PhotoEditor</ex></ph>" will be able to read images, video, and sound files in the checked folders.
        </message>
        <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_OPEN_FOLDER_VIEW_ACCESSIBILITY_NAME" desc="Accessibility name for an icon that opens the folder view of a gallery from the media galleries scan result dialog.">
          Show in folder
        </message>
        <message name="IDS_MEDIA_GALLERIES_LAST_ATTACHED" desc="Explanatory text indicating to the user when a particular location was last attached, i.e. a removable device that isn't plugged in. The date presented will be a day in a localized format providing year, month, and day.">
          last attached on <ph name="DATE">$1<ex>1/22/11</ex></ph>
        </message>
        <if expr="use_titlecase">
          <message name="IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY" desc="In title case: Button for adding a new gallery by choosing a folder.">
            Add Location...
          </message>
          <message name="IDS_MEDIA_GALLERIES_DIALOG_CANCEL" desc="In title case: The text for the cancel button on the media galleries configuration dialog.">
            Cancel
          </message>
          <message name="IDS_MEDIA_GALLERIES_DIALOG_CONFIRM" desc="In title case: The text for the accept button on the media galleries configuration dialog.">
            Apply
          </message>
          <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_DIALOG_CONFIRM" desc="In title case: The text for the accept button on the media galleries scan result dialog. The results of the dialog are added as new galleries.">
            Add
          </message>
        </if>
        <if expr="not use_titlecase">
          <message name="IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY" desc="In sentence case: Button for adding a new gallery by choosing a folder."
                   meaning="In sentence case: Button for adding a new gallery by choosing a folder.">
            Add location...
          </message>
          <message name="IDS_MEDIA_GALLERIES_DIALOG_CANCEL" desc="In sentence case: The text for the cancel button on the media galleries configuration dialog.">
            Cancel
          </message>
          <message name="IDS_MEDIA_GALLERIES_DIALOG_CONFIRM" desc="In sentence case: The text for the accept button on the media galleries configuration dialog."
                   meaning="In sentence case: The text for the accept button on the media galleries configuration dialog.">
            Apply
          </message>
          <message name="IDS_MEDIA_GALLERIES_SCAN_RESULT_DIALOG_CONFIRM" desc="In sentence case: The text for the accept button on the media galleries scan result dialog. The results of the dialog are added as new galleries.">
            Add
          </message>
        </if>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY_TITLE" desc="The title of the folder selection dialog for adding a new media gallery.">
          Add Media Gallery by Directory
        </message>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_DEVICE_ATTACHED" desc="Label text to indicate a removable storage device is attached.">
          attached
        </message>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_DEVICE_NOT_ATTACHED" desc="Label text to indicate a removable storage device is not attached.">
          not attached
        </message>
        <message name="IDS_MEDIA_GALLERIES_DIALOG_DELETE" desc="Text label of the menu item which removes selected media gallery access for all apps.">
          Permanently remove access for all apps
        </message>
      </if>

      <!-- App List. -->
      <if expr="enable_app_list">
        <message name="IDS_APP_LIST_START_SPEECH_RECOGNITION" desc="Tooltip text for the button to start the speech recognition.">
          Click to start voice search
        </message>
        <message name="IDS_APP_LIST_HOTWORD_LISTENING" desc="Tooltip text for the mic button when it waits for the hotword.">
          Click, or say "Ok Google" to start voice search
        </message>
        <message name="IDS_SEARCH_BOX_HINT" desc="Hint text for the search box in app list window.">
          Search or type URL
        </message>
        <message name="IDS_SEARCH_BOX_HOTWORD_HINT" desc="Hint text for the search box in app list window when the hotword is enabled.">
          Search, or say "Ok Google"
        </message>
        <if expr="not use_titlecase">
          <message name="IDS_APP_LIST_CONTEXT_MENU_NEW_TAB" desc="Title text for the 'open new' context menu item of an app list item configured to open in a tab">
            New tab
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW" desc="Title text for the 'open new' context menu item of an app list item configured to open windowed">
            New window
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_PIN" desc="Title text for the 'pin' context menu item of an app list item.">
            Pin to shelf
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_UNPIN" desc="Title text for the 'unpin' context menu item of an app list item.">
            Unpin from shelf
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_PIN_ENFORCED_BY_POLICY" desc="Short text for the pin/unpin context menu to tell user the setting is enforced by policy of an app list item">
            Pinned by administrator
          </message>
          <message name="IDS_APP_LIST_UNINSTALL_ITEM"
                   desc="Title text for the 'uninstall' context menu item of an app list item.">
            Uninstall...
          </message>
          <message name="IDS_APP_LIST_NEW_WINDOW" desc="The text label of the New Window menu item">
            New window
          </message>
          <message name="IDS_APP_LIST_NEW_INCOGNITO_WINDOW" desc="The text label of the New incognito window menu item">
            New incognito window
          </message>
          <message name="IDS_APP_LIST_OEM_DEFAULT_FOLDER_NAME" desc="The default name for OEM folders in the App Launcher">
            OEM folder
          </message>
        </if>
        <message name="IDS_ADD_TO_APP_LIST_NOTIFICATION_TEXT" desc="Text explaining that the current site can be added to the App Launcher.">
          This page can be added to the App Launcher
        </message>
        <message name="IDS_ADD_TO_APP_LIST_HINT" desc="Hint text for the button allowing the current site to be added to the App Launcher.">
          Add to the App Launcher
        </message>
        <if expr="use_titlecase">
          <message name="IDS_APP_LIST_CONTEXT_MENU_NEW_TAB" desc="Title text for the 'open new' context menu item of an app list item configured to open in a tab">
            New Tab
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW" desc="Title text for the 'open new' context menu item of an app list item configured to open windowed">
            New Window
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_PIN" desc="Title text for the 'pin' context menu item of an app list item.">
            Pin to Shelf
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_UNPIN" desc="Title text for the 'unpin' context menu item of an app list item.">
            Unpin from Shelf
          </message>
          <message name="IDS_APP_LIST_CONTEXT_MENU_PIN_ENFORCED_BY_POLICY" desc="Short text for the pin/unpin context menu to tell user the setting is enforced by policy of an app list item">
            Pinned by administrator
          </message>
          <message name="IDS_APP_LIST_UNINSTALL_ITEM"
                   desc="Title text for the 'uninstall' context menu item of an app list item.">
            Uninstall...
          </message>
          <message name="IDS_APP_LIST_NEW_WINDOW" desc="The text label of the New Window menu item">
            New Window
          </message>
          <message name="IDS_APP_LIST_NEW_INCOGNITO_WINDOW" desc="The text label of the New incognito window menu item">
            New Incognito Window
          </message>
          <message name="IDS_APP_LIST_OEM_DEFAULT_FOLDER_NAME" desc="The default name for OEM folders in the App Launcher">
            OEM Folder
          </message>
        </if>
        <message name="IDS_APP_LIST_SIGNIN_LEARN_MORE_LINK" desc="App launcher sign-in learn more URL.">
          https://support.google.com/chrome/?hl=[GRITLANGCODE]&amp;p=settings_sign_in
        </message>
        <message name="IDS_APP_LIST_SIGNIN_SETTINGS_TEXT" desc="App launcher sign-in settings link text.">
          App Launcher Settings
        </message>
      </if>

      <!-- iOS Chrome to Device strings-->
      <if expr="is_ios">
        <message name="IDS_CHROME_TO_DEVICE_PRINT_TO_PHONE" desc="The message indicating print-to-phone jobs are now available. [Length: 30em]">
          Your document is ready to view.
        </message>
        <message name="IDS_CHROME_TO_DEVICE_SNAPSHOTS" desc="The message indicating snapshot jobs are now available. [Length: 30em]">
          Your page is available to view.
        </message>
      </if>

      <!-- Pepper 3D and WebGL (client 3D APIs) infobar strings -->
      <message name="IDS_3D_APIS_BLOCKED_TEXT" desc="Infobar message when 3D graphics APIs are blocked because the graphics processor was reset recently. NOTE that 'rats' here is being used like 'darn'.">
        Rats! <ph name="API_NAME">$1<ex>WebGL</ex></ph> hit a snag.
      </message>
      <message name="IDS_3D_APIS_WEBGL_NAME" desc="Name of the WebGL API.">
        WebGL
      </message>
      <message name="IDS_3D_APIS_PEPPER_3D_NAME" desc="Name of the Pepper 3D API.">
        Pepper 3D
      </message>
      <message name="IDS_3D_APIS_BLOCKED_OK_BUTTON_LABEL" desc="Label for the 'ok' button on the infobar indicating that 3D APIs were blocked. Clicking this button dismisses the infobar with no other action.">
        Ignore
      </message>
      <message name="IDS_3D_APIS_BLOCKED_TRY_AGAIN_BUTTON_LABEL" desc="Label for the 'cancel' button on the infobar indicating that 3D APIs were blocked. Clicking this button unblocks the APIs and reloads the page.">
        Reload
      </message>

      <!-- Identity internals strings -->
      <message name="IDS_IDENTITY_INTERNALS_TOKEN_CACHE_TEXT" desc="The title of the token cache of the Identity API.">
        Identity API Token Cache
      </message>
      <message name="IDS_IDENTITY_INTERNALS_ACCESS_TOKEN" desc="Label of the row containing the access token.">
        Access Token
      </message>
      <message name="IDS_IDENTITY_INTERNALS_EXTENSION_NAME" desc="Label of the row containing a name of an extension related to the identity token.">
        Extension Name
      </message>
      <message name="IDS_IDENTITY_INTERNALS_EXTENSION_ID" desc="Label of the row containing an id of an extension related to the identity token.">
        Extension Id
      </message>
      <message name="IDS_IDENTITY_INTERNALS_TOKEN_STATUS" desc="Label of the row containing a status of identity token.">
        Token Status
      </message>
      <message name="IDS_IDENTITY_INTERNALS_TOKEN_NOT_FOUND" desc="Label of the token status when token is not found.">
        Not Found
      </message>
      <message name="IDS_IDENTITY_INTERNALS_TOKEN_PRESENT" desc="Label of the token status when token is present and valid for use.">
        Token Present
      </message>
      <message name="IDS_IDENTITY_INTERNALS_EXPIRATION_TIME" desc="Label of the row containing expiration time of identity token.">
        Expiration Time
      </message>
      <message name="IDS_IDENTITY_INTERNALS_SCOPES" desc="Label of the row listing scopes of identity token.">
        Scopes
      </message>
      <message name="IDS_IDENTITY_INTERNALS_REVOKE" desc="Label on a revoke token button.">
        Revoke
      </message>

      <!-- Translated apps strings -->
      <message name="IDS_CHROME_SHORTCUT_DESCRIPTION" desc="Description for the Chrome app shortcut in the app launcher.">
        A fast, simple, and secure web browser, built for the modern web.
      </message>
      <message name="IDS_WEBSTORE_NAME_STORE" desc="Name for the WebStore app in the app launcher.">
        Web Store
      </message>

      <!-- Extension Storage Monitor notification strings -->
      <message name="IDS_EXTENSION_STORAGE_MONITOR_TITLE" desc="The title of the notification when high disk usage is detected for an app or extension.">
        High disk usage detected
      </message>
      <message name="IDS_EXTENSION_STORAGE_MONITOR_TEXT" desc="The message of the notification when high disk usage is detected for an app or extension.">
        <ph name="NAME">$1<ex>Google Docs</ex></ph> is using <ph name="USAGE">$2<ex>500</ex></ph> MB of disk space.
      </message>
      <message name="IDS_EXTENSION_STORAGE_MONITOR_BUTTON_DISMISS_APP" desc="Caption for the button to suppress high disk usage notifications for an app.">
        Don't warn again for this app
      </message>
      <message name="IDS_EXTENSION_STORAGE_MONITOR_BUTTON_DISMISS_EXTENSION" desc="Caption for the button to suppress high disk usage notifications for an extension.">
        Don't warn again for this extension
      </message>
      <message name="IDS_EXTENSION_STORAGE_MONITOR_BUTTON_UNINSTALL_APP" desc="Caption for the button to uninstall an app when high disk usage is detected.">
        Remove app
      </message>
      <message name="IDS_EXTENSION_STORAGE_MONITOR_BUTTON_UNINSTALL_EXTENSION" desc="Caption for the button to uninstall an extension when high disk usage is detected.">
        Remove extension
      </message>

      <!-- Desktop media picker UI for Desktop Capture API -->
      <message name="IDS_DESKTOP_MEDIA_PICKER_TITLE" desc="Title for the window picker dialog shown when desktop capture is requested by an app.">
        Share your screen - <ph name="APP_NAME">$1<ex>Google Hangouts</ex></ph>
      </message>
      <message name="IDS_DESKTOP_MEDIA_PICKER_TEXT" desc="Text for the window picker dialog shown when desktop capture is requested by an app to be used by the app itself.">
        <ph name="APP_NAME">$1<ex>Google Hangouts</ex></ph> would like to share the contents of your screen. Choose what you'd like to share.
      </message>
      <message name="IDS_DESKTOP_MEDIA_PICKER_TEXT_DELEGATED" desc="Text for the window picker dialog shown when desktop capture is requested by an app to be used by a tab.">
        <ph name="APP_NAME">$1<ex>Google Hangouts</ex></ph> would like to share the content of your screen with <ph name="TARGET_NAME">$2<ex>https://google.com</ex></ph>. Choose what you'd like to share.
      </message>
      <message name="IDS_DESKTOP_MEDIA_PICKER_SINGLE_SCREEN_NAME" desc="Name for screens in the desktop media picker UI when there is only one monitor.">
        Entire screen
      </message>
      <message name="IDS_DESKTOP_MEDIA_PICKER_MULTIPLE_SCREEN_NAME" desc="Name for screens in the desktop media picker UI when there are multiple monitors.">
        Screen <ph name="SCREEN_INDEX">$1<ex>1</ex></ph>
      </message>
      <message name="IDS_DESTOP_MEDIA_PICKER_VIRTUAL_SCREEN_NAME" desc="The name of the virtual display which is shown in the picker">
        Virtual Display
      </message>
      <message name="IDS_DESKTOP_MEDIA_PICKER_CHROME_TAB_TITLE" desc="Chrome tab's title shown in window picker dialog">
        Tab: <ph name="CHROME_TAB_TITLE">$1<ex>YouTube</ex></ph>
      </message>

      <!-- Local Device Discovery display strings -->
      <if expr="enable_service_discovery">
        <message name="IDS_LOCAL_DISCOVERY_SERVICE_REGISTER" desc="Name for button to register device in the Cloud">
          Register
        </message>
        <message name="IDS_LOCAL_DISCOVERY_MANAGE_DEVICE" desc="Name for button to manage registered device">
          Manage
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NOTIFICATION_TITLE_PRINTER" desc="Title of notification for one or more new printer showing up on your network. [ICU Syntax]">
        {NUM_PRINTER, plural,
         =1 {New printer on your network}
         other {New printers on your network}}
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NOTIFICATION_CONTENTS_PRINTER" desc="Contents of notification for one or more new printers showing up on your network. [ICU Syntax]">
        {NUM_PRINTER, plural,
          =1 {Add the printer to Google Cloud Print so you can print from anywhere.}
          other {Add # printers to Google Cloud Print so you can print from anywhere.}}
        </message>
        <message name="IDS_LOCAL_DISCOVERY_SERVICE_NAME_PRINTER" desc="Display name for notification for a new printer showing up on your network">
          Google Cloud Print
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NOTIFICATION_BUTTON_PRINTER" desc="Message on registration button for printer">
          Add to Cloud Print
        </message>
        <message name="IDS_LOCAL_DISCOVERY_DEVICES_PAGE_TITLE" desc="Title for devices page">
          Devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_REGISTER_PRINTER_CONFIRMATION" desc="Confirmation for registering a printer to Google Cloud Print">
          Do you wish to register the printer <ph name="PRINTER_NAME">$1</ph> to Google Cloud Print?
        </message>
        <message name="IDS_LOCAL_DISCOVERY_REGISTER_DEVICE_CONFIRMATION" desc="Confirmation for registering a device to Google Cloud Devices">
          Do you wish to register <ph name="DEVICE_NAME">$1</ph> to Google Cloud Devices?
        </message>
        <message name="IDS_LOCAL_DISCOVERY_REGISTER_USER" desc="Label for user picker in registration dialog">
          User:
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CONFIRM_REGISTRATION" desc="Title for 'confirm registration' page">
          Confirm registration
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ADDING_PRINTER" desc="Title for 'adding printer' page">
          Adding printer...
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ADDING_DEVICE" desc="Title for 'adding device' page">
          Adding device...
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ERROR_OCURRED" desc="Title for error page">
          Could not complete registration
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ADDING_PRINTER_MESSAGE1" desc="Message for adding printer number 1">
          You must confirm registration on your printer to finish this process - check it now.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ADDING_PRINTER_MESSAGE2" desc="Message for adding printer number 2">
          Adding the printer to your account - this may take a moment...
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ADDING_DEVICE_MESSAGE1" desc="Message for adding device number 1">
          Adding the device to your account - this may take a moment...
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CONFIRM_CODE_MESSAGE" desc="Message for confirming device security code">
          Make sure the device is showing the same code.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CONFIRM_CODE" desc="button name to confirming security code">
          Confirm
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ERROR_OCURRED_MESSAGE" desc="Message for error page">
          An error has occured. Please check your printer and try again.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NO_DESCRIPTION_PRINTER" desc="Description for printer with an empty description">
          Printer on Google Cloud Print
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NO_DESCRIPTION_DEVICE" desc="Description for device with an empty description">
          Device on Google Cloud Devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_PRINTERS_ON_NETWORK_ZERO" desc="'Zero' case for number indicator for locally discoverable printers">
          No other available devices.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_PRINTERS_ON_NETWORK_ONE" desc="'One' case for number indicator for locally discoverable printers">
          One other available device.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_PRINTERS_ON_NETWORK_MULTIPLE" desc="General case for number indicator for locally discoverable printers">
          <ph name="NUM_PRINTERS">$1</ph> other available devices.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_LOADING" desc="Loading for local discovery screens">
          Loading
        </message>
        <message name="IDS_LOCAL_DISCOVERY_ADD_PRINTERS" desc="Text on button to add printers to cloud print">
          Add Devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NO_PRINTERS_ON_NETWORK_EXPLANATION" desc="Explanatory text in case there are no printers to register on the network">
          Looks like there are no devices available to register on the network. If your device is on and connected to the internet, try registering it using instructions in its instruction manual.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CLOUD_DEVICES_UNAVAILABLE" desc="Explanatory text in case the list of cloud devices can't be retrieved">
          Could not load devices.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_RETRY_LOAD_CLOUD_DEVICES" desc="Text on button to retry loading cloud devices">
          Try again
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CLOUD_DEVICES_NEED_LOGIN" desc="Text on login promo for local discovery page">
          You need to sign in to Chrome to see your devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_REGISTER_NEED_LOGIN" desc="Text on login promo for local discovery registration">
          You need to sign in to Chrome to register new devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CLOUD_DEVICES_LOGIN" desc="Text on login button for local discovery page">
          sign in
        </message>
        <message name="IDS_LOCAL_DISCOVERY_DEVICES_PAGE_BUTTON" desc="Text on button to take user to devices page">
          Manage
        </message>
        <message name="IDS_LOCAL_DISCOVERY_AVAILABLE_DEVICES" desc="Title for 'available devices' section in devices page">
          New devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_MY_DEVICES" desc="Title for 'my devices' section in devices page">
          My devices
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CLOUD_PRINT_CONNECTOR_DISABLED_LABEL" desc="In local discovery page: The label of the cloud print setup button when it hasn't been set up yet.">
          You can add classic printers connected to your computer to <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph>.
        </message>
        <message name="IDS_LOCAL_DISCOVERY_CONNECTOR_SECTION" desc="In local discovery page: Title of cloud print connector section.">
          Classic printers
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NOTIFICATIONS_ENABLE_CHECKBOX_LABEL" desc="Label for notificatiosn-enable checkbox">
          Show notifications when new printers are detected on the network
        </message>
        <message name="IDS_LOCAL_DISCOVERY_NOTIFICATIONS_DISABLE_BUTTON_LABEL" desc="Label for button disabling local device notifications">
          Don't show this again
        </message>
      </if>
      <!-- People search strings -->
      <message name="IDS_PEOPLE_SEARCH_ACTION_EMAIL_TOOLTIP" desc="Tooltip text for sending an email to the person in the result">
        Email this person
      </message>
      <message name="IDS_PEOPLE_SEARCH_ACTION_CHAT_TOOLTIP" desc="Tooltip text for starting a chat with the person in the result">
        Chat with this person
      </message>
      <message name="IDS_LOCAL_DISCOVERY_REGISTER_CANCELED_ON_PRINTER" desc="Label for when registration is canceled on the printer side">
        Printer registration has been canceled.
      </message>
      <message name="IDS_LOCAL_DISCOVERY_REGISTER_TIMEOUT_ON_PRINTER" desc="Label for when registration has timed out on the printer side">
        Printer registration has timed out. In order to register a printer, you must confirm registration on the printer.
      </message>

      <!--Tab media indicator tooltip strings-->
      <message name="IDS_TOOLTIP_TAB_MEDIA_STATE_RECORDING" desc="Extra tool tip text, when the tab is recording media.">
        This tab is using your camera or microphone.
      </message>
      <message name="IDS_TOOLTIP_TAB_MEDIA_STATE_CAPTURING" desc="Extra tool tip text, when the tab content is being captured.">
        This tab's content is being shared.
      </message>
      <message name="IDS_TOOLTIP_TAB_MEDIA_STATE_AUDIO_PLAYING" desc="Extra tool tip text, when the tab is playing audio.">
        This tab is playing audio.
      </message>
      <message name="IDS_TOOLTIP_TAB_MEDIA_STATE_AUDIO_MUTING" desc="Extra tool tip text, when all tab audio output is muted.">
        This tab's audio is being muted.
      </message>

      <!-- ProcessSingleton -->
      <message name="IDS_PROFILE_IN_USE_LINUX_QUIT" desc="Text of button in profile in use dialog to quit without doing anything.">
        Quit
      </message>
      <message name="IDS_PROFILE_IN_USE_LINUX_RELAUNCH" desc="Text of button in dialog to delete the profile lock file.">
        Unlock Profile and Relaunch
      </message>

      <!-- Accessibility alerts -->
      <if expr="chromeos">
        <message name="IDS_A11Y_ALERT_WINDOW_NEEDED" desc="Alert sent to the accessibility api when the user attempts a keyboard command that requires a window to work.">
          Command unavailable. Press control-N to open a new window.
        </message>
        <message name="IDS_A11Y_ALERT_WINDOW_OVERVIEW_MODE_ENTERED" desc="The accessible text read when the user enters window overview mode in Ash.">
          Entered window overview mode
        </message>
      </if>

      <message name="IDS_DESKTOP_MEDIA_PICKER_SHARE" desc="Used for Share on buttons">
        Share
      </message>

      <!-- Autofill experiment flags -->
      <message name="IDS_FLAGS_SINGLE_CLICK_AUTOFILL_NAME" desc="Name of the single click autofill lab">
        Single-click autofill
      </message>
      <message name="IDS_FLAGS_SINGLE_CLICK_AUTOFILL_DESCRIPTION" desc="Description of the single click autofill lab">
        Make autofill suggestions on initial mouse click on a form element.
      </message>

      <if expr="is_android">
        <message name="IDS_FLAGS_AUTOFILL_ACCESSORY_VIEW_NAME" desc="Title for the flag to show Autofill suggestions at top of keyboard">
          Autofill suggestions as keyboard accessory view
        </message>
        <message name="IDS_FLAGS_AUTOFILL_ACCESSORY_VIEW_DESCRIPTION" desc="Description for the flag to show Autofill suggestions at top of keyboard">
          Shows Autofill suggestions on top of the keyboard rather than in a dropdown.
        </message>
      </if>

      <!-- Reader mode experiment flags -->
      <if expr="is_android">
        <message name="IDS_FLAGS_READER_MODE_HEURISTICS_NAME" desc="A name of an about:flags experiment for controlling when to show the reader mode button">
          Reader Mode triggering
        </message>
        <message name="IDS_FLAGS_READER_MODE_HEURISTICS_DESCRIPTION" desc="Describes about:flags experiment options for controlling when to show the reader mode button">
          Determines what pages the Reader Mode button is shown on.
        </message>
        <message name="IDS_FLAGS_READER_MODE_HEURISTICS_MARKUP" desc="A choice in dropdown dialog on about:flags page to show the reader mode button with article structured markup">
          With article structured markup
        </message>
        <message name="IDS_FLAGS_READER_MODE_HEURISTICS_ADABOOST" desc="A choice in dropdown dialog on about:flags page to show the reader mode button on pages that appear to be long form content">
          Appears to be an article
        </message>
        <message name="IDS_FLAGS_READER_MODE_HEURISTICS_ALWAYS_OFF" desc="A choice in dropdown dialog on about:flags page to never show the reader mode button">
          Never
        </message>
        <message name="IDS_FLAGS_READER_MODE_HEURISTICS_ALWAYS_ON" desc="A choice in dropdown dialog on about:flags page to show the reader mode button on all pages">
          Always
        </message>
      </if>

      <!-- Prefetch search results experiment flags -->
      <message name="IDS_FLAGS_PREFETCH_SEARCH_RESULTS_NAME" desc="An about::flags experiment title to prefetch search results">
        Prefetch search results
      </message>
      <message name="IDS_FLAGS_PREFETCH_SEARCH_RESULTS_DESCRIPTION" desc="Describes an about:flags experiment for prefetching search results">
        Prefetch search results for the typed omnibox query and reuse prerendered search base page to commit any search query (not just prefetch query).
      </message>

      <!-- Settings window flags -->
      <message name="IDS_FLAGS_SETTINGS_WINDOW_NAME" desc="An about::flags experiment title to show settings in a separate window">
        Show settings in a window
      </message>
      <message name="IDS_FLAGS_SETTINGS_WINDOW_DESCRIPTION" desc="Describes an about:flags experiment to show settings in a separate window">
        Settings will be shown in a dedicated window instead of as a browser tab.
      </message>

      <!-- Mixed content issue workaround flags -->
      <message name="IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_NAME" desc="Title for the flag to allow insecure WebSocket from https origin">
        Allow insecure WebSocket from https origin
      </message>
      <message name="IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_DESCRIPTION" desc="Description to allow insecure WebSocket from https origin">
        This flag makes Chrome unsafe. Use this only if you understand what this does. Note that this flag may be removed without any notice. If enabled, frames with an https origin can use WebSockets with an insecure URL (ws://).
      </message>

      <if expr="is_android">
        <!-- Experiment flags to enable EmbeddedSearch API in the search results page -->
        <message name="IDS_FLAGS_EMBEDDEDSEARCH_API_NAME" desc="An about::flags experiment title to enable EmbeddedSearch API in the search results page">
          EmbeddedSearch API
        </message>
        <message name="IDS_FLAGS_EMBEDDEDSEARCH_API_DESCRIPTION" desc="Describes an about:flags experiment for enabling EmbeddedSearch API in the search results page">
         EmbeddedSearch API will be used to submit search queries in the search results page.
        </message>

        <!-- Flag strings for seccomp-bpf sandbox flag. -->
        <message name="IDS_FLAGS_SECCOMP_FILTER_SANDBOX_ANDROID_NAME" desc="Title for the flag to enable the seccomp-bpf sandbox on Android.">
          Seccomp-bpf renderer sandbox
        </message>
        <message name="IDS_FLAGS_SECCOMP_FILTER_SANDBOX_ANDROID_DESCRIPTION" desc="Description for the flag to enable the seccomp-bpf sandbox on Android.">
          Renderers will have a second-layer sandbox provided by seccomp-bpf. This requires kernel features only available on select Android versions.
        </message>
      </if>

     <!-- Extension Content Verification -->
      <message name="IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_NAME" desc="Name of the 'Extension Content Verification' flag">
        Extension Content Verification
      </message>
      <message name="IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_DESCRIPTION" desc="Title for the flag to turn on verification of the contents of extensions from the webstore">
        This flag can be used to turn on verification that the contents of the files on disk for extensions from the webstore match what they're expected to be. This can be used to turn on this feature if it would not otherwise have been turned on, but cannot be used to turn it off (because this setting can be tampered with by malware).
      </message>

      <message name="IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_BOOTSTRAP" desc="Description of the 'Extension Content Verification' bootstrap mode">
        Bootstrap (get expected hashes, but do not enforce them)
      </message>

      <message name="IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE" desc="Description of the 'Extension Content Verification' enforce mode">
        Enforce (try to get hashes, and enforce them if successful)
      </message>

      <message name="IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE_STRICT" desc="Description of the 'Extension Content Verification' enforce strict mode">
        Enforce strict (hard fail if we can't get hashes)
      </message>

      <!-- Push messaging strings -->
      <message name="IDS_PUSH_MESSAGES_PERMISSION_QUESTION" desc="Question asked on the info bar whenever a domain wants to send push messages">
          <ph name="URL">
            $1<ex>push.google.com</ex>
          </ph> wants to send you notifications.
      </message>
      <message name="IDS_PUSH_MESSAGES_TAB_LABEL" desc="Label for the push messages section on Content Settings dialog">
        Push Messages
      </message>
      <message name="IDS_PUSH_MESSSAGING_ALLOW_RADIO" desc="A radio button in Content Settings dialog to allow a site to send push messages.">
        Allow all sites to send background push messages
      </message>
      <message name="IDS_PUSH_MESSSAGING_ASK_RADIO" desc="A radio button in Content Settings dialog to allow a site to query the permision send push messages.">
        Ask me when a site wants to send me push messages (recommended)
      </message>
      <message name="IDS_PUSH_MESSSAGING_BLOCK_RADIO" desc="A radio button in Content Settings dialog to deny a site to send push messages.">
        Do not allow any sites to send push messages
      </message>
      <message name="IDS_PUSH_MESSAGES_BUBBLE_FRAGMENT" desc="Question asked on the info bar whenever a domain wants to send push messages">
          Receive push messages
      </message>
      <if expr="enable_notifications">
        <message name="IDS_PUSH_MESSAGING_GENERIC_NOTIFICATION_BODY" desc="Body text of an auto-generated notification informing the user that the site may have received an update in the background, in case the site did not satisfy the visible notification requirement itself.">
          This site has been updated in the background.
        </message>
        <message name="IDS_NOTIFICATIONS_BACKGROUND_SERVICE_NAME" desc="The name of the Notifications service that can run in the background">
          Notifications
        </message>
      </if>

      <!-- Copresence settings/debug strings -->
      <if expr="not is_android and not is_ios">
        <message name="IDS_COPRESENCE_TITLE" desc="Title for the chrome://copresence page.">
          Google Copresence Info
        </message>

        <message name="IDS_COPRESENCE_DIRECTIVES_TITLE" desc="Title for the table of currently active copresence directives (transmit this, receive that).">
          Active Directives
        </message>
        <message name="IDS_COPRESENCE_DIRECTIVE_TYPE" desc="Title for the column in the directives table indicating whether the directive is 'transmit' or 'receive'.">
          Type
        </message>
        <message name="IDS_COPRESENCE_TOKEN_MEDIUM" desc="Title for the column in the directives and tokens tables indicating how tokens are being transmitted. Currently one of 'ultrasound' or 'sound'.">
          Medium
        </message>
        <message name="IDS_COPRESENCE_DURATION" desc="Title for the column in the directives table indicating how long the directive is active, e.g. '10 minutes'.">
          Duration
        </message>

        <message name="IDS_COPRESENCE_TRANSMITTED_TOKENS_TITLE" desc="Title for the table of copresence tokens recently transmitted.">
          Tokens Transmitted
        </message>
        <message name="IDS_COPRESENCE_RECEIVED_TOKENS_TITLE" desc="Title for the table of copresence tokens recently received.">
          Tokens Received
        </message>
        <message name="IDS_COPRESENCE_TOKEN_ID" desc="Title for the column in a tokens table listing the token id (base64 encoded).">
          Token ID
        </message>
        <message name="IDS_COPRESENCE_TOKEN_STATUS" desc="Title for the column in a tokens table indicating the status of a token: e.g. 'transmitted', 'received', 'expired', etc.">
          Status
        </message>
        <message name="IDS_COPRESENCE_TOKEN_TRANSMIT_TIME" desc="Title for the column in the transmitted tokens table indicating when the token was first transmitted, e.g. '12:34 PM'.">
          Time First Transmitted
        </message>
        <message name="IDS_COPRESENCE_TOKEN_RECEIVE_TIME" desc="Title for the column in the received tokens table indicating when the token was last received, e.g. '12:34 AM'.">
          Time Last Received
        </message>

        <message name="IDS_COPRESENCE_CLEAR_STATE" desc="Label for the button that deletes all copresence state in the current profile.">
          Clear Copresence State
        </message>
        <message name="IDS_COPRESENCE_CONFIRM_DELETE" desc="Message explaining which state will be deleted and the effect it will have.">
          Attempts to connect to nearby devices will be cancelled. All local copresence data will be cleared, and apps using copresence may stop working. Are you sure?
        </message>
      </if>

      <!-- Easy Unlock strings -->
      <!-- Strings for the Easy Unlock promo notification -->
      <message name="IDS_EASY_UNLOCK_SETUP_NOTIFICATION_TITLE" desc="Title for the notification inviting the user to use the Easy Unlock feature.">
        Smart Lock for Chromebook
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_NOTIFICATION_MESSAGE" desc="The body text for the notification inviting the user to use the Easy Unlock feature.">
        Tired of typing passwords? Use your phone to unlock your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>—no password needed.
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_NOTIFICATION_BUTTON_TITLE" desc="The text to show on the button in the notification inviting the user to use the Easy Unlock feature.">
        1-minute setup
      </message>
      <!-- Strings for notification shown when the Chromebook is added to Easy Unlock -->
      <message name="IDS_EASY_UNLOCK_CHROMEBOOK_ADDED_NOTIFICATION_TITLE" desc="Title for notification shown when this Chromebook is added to Easy Unlock as an additional Easy Unlock device.">
        Smart Lock is almost ready
      </message>
      <message name="IDS_EASY_UNLOCK_CHROMEBOOK_ADDED_NOTIFICATION_MESSAGE" desc="Message for the notification shown when this Chromebook is added to Easy Unlock as an additional Easy Unlock device.">
        It will be activated next time you unlock this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>. With Smart Lock, your phone will unlock this device—without a password. Bluetooth will be turned on to enable Smart Lock.
      </message>
      <message name="IDS_EASY_UNLOCK_CHROMEBOOK_ADDED_NOTIFICATION_ABOUT_BUTTON" desc="Label of a button on the new chrome notification to bring user to smart lock settings.">
        Learn more
      </message>
      <!-- Strings for the phone changed (aka old Chromebook setup) notification -->
      <message name="IDS_EASY_UNLOCK_PAIRING_CHANGED_NOTIFICATION_TITLE" desc="Title for notification shown when the paired phone is changed.">
        Smart Lock phone changed
      </message>
      <message name="IDS_EASY_UNLOCK_PAIRING_CHANGED_NOTIFICATION_MESSAGE" desc="Message for notification shown when the paired phone is changed.">
        Next time you unlock this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>, Smart Lock will update so you'll be able to just click your picture to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_PAIRING_CHANGED_NOTIFICATION_UPDATE_BUTTON" desc="Label of a button on the notification shown when the paired phone is changed to update Smart lock now.">
        Update now
      </message>
      <message name="IDS_EASY_UNLOCK_NOTIFICATION_LEARN_MORE_BUTTON" desc="Label of a button on the notification to show Smart lock settings.">
        Learn more
      </message>
      <!-- Strings for the phone change applied notification -->
      <message name="IDS_EASY_UNLOCK_PAIRING_CHANGE_APPLIED_NOTIFICATION_TITLE" desc="Title for notification shown when the pairing change is applied.">
        Phone change updated
      </message>
      <message name="IDS_EASY_UNLOCK_PAIRING_CHANGE_APPLIED_NOTIFICATION_MESSAGE" desc="Message for notification shown when the pairing change is applied.">
        Your <ph name="PHONE_NAME">$1<ex>Moto X</ex></ph> can now unlock this <ph name="DEVICE_TYPE">$2<ex>Chromebook</ex></ph> too.
      </message>

      <!-- Strings for the Easy Unlock setup dialog -->
      <!-- Step 1: Intro -->
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_HEADER_TITLE" desc="The text to show as the header title of the Easy Unlock dialog during the first, introductory step.">
        Let’s get started
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_HEADER_TEXT" desc="The text to show as the header body text of the Easy Unlock dialog during the first, introductory step. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Keep your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> unlocked when your phone is unlocked and nearby.
        Note that Bluetooth will be turned on for all <ph name="USER_DISPLAY_EMAIL">$2<ex>user@gmail.com</ex></ph>'s compatible devices, and some hardware information will be sent to Google. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_FIND_PHONE_BUTTON_LABEL" desc="The text to show as the 'Find phone' button label in the Easy Unlock dialog. This button is visible during the first, introductory step.">
        Find your phone
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_FINDING_PHONE_BUTTON_LABEL" desc="The text to show as the 'Finding phone...' button label in the Easy Unlock dialog. This button is visible during the first, introductory step.">
        Finding your phone
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_RETRY_FIND_PHONE_BUTTON_LABEL" desc="The text to show as a label for the button in Easy Unlock setup dialog when the setup app fails to find any phones to be used. Finding a phone is the first setup step. Clicking the button restarts the setup flow.">
        Retry
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_CLOSE_FIND_PHONE_BUTTON_LABEL" desc="The text to show as a label for the button in Easy Unlock setup dialog when the setup app finds only phones with out-of-date software. Finding a phone is the first setup step. Clicking the button closes the setup dialog.">
        Close
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_INTRO_HOW_IS_THIS_SECURE_LINK_TEXT" desc="The displayed text for the link that explains how the Easy Unlock feature is secure. This link is visible during the first, introductory step of the Easy Unlock setup dialog.">
        How this is secure
      </message>
      <!-- Step 1.5: "Secure this phone to continue" -->
      <message name="IDS_EASY_UNLOCK_SETUP_SECURE_PHONE_HEADER_TITLE" desc="The text to show as the header title of the Easy Unlock dialog after a phone has been found but is not secured by a lock screen.">
        Secure your <ph name="PHONE_TYPE">$1<ex>LGE Nexus 5</ex></ph> to continue
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_SECURE_PHONE_HEADER_TEXT" desc="The text to show as the header body text of the Easy Unlock dialog after a suitable phone has been found but is not secured by a lock screen. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        To keep your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> safe, Smart Lock for Chromebook requires a screen lock on the phone that unlocks it. Already secured your phone? Click “Check again” to verify and continue setup.
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_SECURE_PHONE_BUTTON_LABEL" desc="The text to show as the 'How to secure the phone' button label in the Easy Unlock dialog. This button is visible during step 1.5, if the user is prompted to secure their phone.">
        How to secure the phone
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_SECURE_PHONE_LINK_TEXT" desc="The text to show for the link to check the phone again, after the user has enabled a secure lock screen. This button is visible during the 1.5th step of the Easy Unlock dialog, when the user is prompted to secure their phone.">
        Check again
      </message>
      <!-- Step 2: Phone Found -->
      <message name="IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_HEADER_TITLE" desc="The text to show as the header title of the Easy Unlock dialog during the second step, after a suitable phone has been found.">
        Use this phone to unlock your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>?
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_HEADER_TEXT" desc="The text to show as the header body text of the Easy Unlock dialog during the second step, after a suitable phone has been found. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Google sent a notification to this phone. Note that with Bluetooth, your phone may keep your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> unlocked from over 100 feet away. In cases where this could be a problem, you can &lt;a&gt;temporarily disable this feature&lt;/a&gt;.
      </message>
      <!-- TODO(isherman): Remove this duplicate string once proximity work is completed. -->
      <message name="IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_HEADER_TEXT_30_FEET" desc="The text to show as the header body text of the Easy Unlock dialog during the second step, after a suitable phone has been found. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation. This string is identical ot 'IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_HEADER_TEXT', but uses a 30 in place of the 100.">
        Google sent a notification to this phone. Note that with Bluetooth, your phone may keep your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> unlocked from over 30 feet away. In cases where this could be a problem, you can &lt;a&gt;temporarily disable this feature&lt;/a&gt;.
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_USE_THIS_PHONE_BUTTON_LABEL" desc="The text to show as the 'Use this phone' button label in the Easy Unlock dialog. This button is visible during the second step, after a suitable phone is found.">
        Use this phone
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_DEVICE_FORMATTED_BUTTON_LABEL" desc="The text to show as the 'Use [insert_phone_name]' button label in the Easy Unlock dialog. This button is visible during the second step, after a suitable phone is found.">
        Use <ph name="PHONE_NAME">$1<ex>Nexus 6</ex></ph>
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_FOUND_PHONE_SWITCH_PHONE_LINK_LABEL" desc="The text to show for the link to switch phones in the Easy Unlock dialog. This button is visible during the second step, after serveral suitable phones are found.">
        Show another phone
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_PAIRING_PHONE_FAILED_BUTTON_LABEL" desc="Text to show as a label for the button in Easy Unlock setup dialog when pairing Chrome with the phone detected during setup fails. Pairing is the second step in the setup. Clicking the button restarts the whole setup flow.">
        Restart
      </message>
      <!-- Step 2.5: "Recommended: Set up Smart Lock for Android" -->
      <message name="IDS_EASY_UNLOCK_SETUP_ANDROID_SMART_LOCK_HEADER_TITLE" desc="The text to show as the header title of the Easy Unlock dialog to encourage the user to enable Smart Lock for Android if it is not currently enabled.">
        Recommended: Set up Smart Lock for Android
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ANDROID_SMART_LOCK_HEADER_TEXT" desc="The text to show as the header body text of the Easy Unlock dialog to encourage the user to enable Smart Lock for Android if it is not currently enabled. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Update your phone's screen lock so it turns off when you're nearby. You'll unlock the phone faster, and enjoy a better Smart Lock experience on your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>.
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ANDROID_SMART_LOCK_DONE_BUTTON_LABEL" desc="The text to show as the button label in the Easy Unlock dialog step for encouraging the user to enable Smart Lock for Android. Clicking this button advances the dialog to step 3.">
        Next
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ANDROID_SMART_LOCK_ABOUT_LINK_TEXT" desc="The text to show as the link text to access the Smart Lock for Android help article.">
        Learn more
      </message>
      <!-- Step 3: "You're all set" -->
      <message name="IDS_EASY_UNLOCK_SETUP_COMPLETE_HEADER_TITLE" desc="The text to show as the header title of the Easy Unlock dialog during the penultimate step, confirming success.">
        You’re all set!
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_COMPLETE_HEADER_TEXT" desc="The text to show as the header body text of the Easy Unlock dialog during the penultimate step, confirming success.">
        If you have other Chrome devices, they’ll be synced automatically, so your phone will unlock them too.
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_COMPLETE_TRY_IT_OUT_BUTTON_LABEL" desc="The text to show as the 'Try it out' button label in the Easy Unlock dialog. This button is visible during the penultimate step, once the Easy Unlock setup succeeds.">
        Try it out
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_COMPLETE_SETTINGS_LINK_TEXT" desc="The text to show as the link text to access Easy Unlock settings. This button is visible during the penultimate step, once the Easy Unlock setup succeeds.">
        Settings
      </message>
      <!-- Step 4: Post Lock Screen -->
      <message name="IDS_EASY_UNLOCK_SETUP_POST_LOCK_DISMISS_BUTTON_LABEL" desc="The text to show as the button label in the Easy Unlock dialog during the post lockscreen step. Clicking this button dismisses the dialog.">
        Done
      </message>
      <!-- Error strings for the Easy Unlock setup dialog -->
      <message name="IDS_EASY_UNLOCK_LEARN_MORE_LINK_TITLE" desc="Text to use for links that point to more information about Easy Unlock in the easy unlock setup dialog.">
        Learn more
     </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_BLUETOOTH_UNAVAILBLE" desc="The error message to display when the user's Chromebook might not have Bluetooth functionality during Easy Unlock setup. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Can’t find your phone. Make sure your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> has Bluetooth enabled. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_OFFLINE" desc="The error message to display when the user's Chromebook appears to be offline during Easy Unlock setup. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Can’t find your phone. Make sure your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> is connected to the Internet. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_REMOTE_SOFTWARE_OUT_OF_DATE" desc="The error message to display when the user's phone software is too old for compatibility with Easy Unlock. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Found your <ph name="PHONE_TYPE">$1<ex>LGE Nexus 5</ex></ph>. But Smart Lock only works on devices with Android 5.0 and up. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_REMOTE_SOFTWARE_OUT_OF_DATE_GENERIC" desc="The generic error message to display when the user's phone software is too old for compatibility with Easy Unlock. This is only shown when the user's phone type is not known. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Found your phone. But Smart Lock only works on devices with Android 5.0 and up. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_FINDING_PHONE" desc="A generic catch-all error message to display when something goes wrong after the user clicks 'Find my phone' during Easy Unlock setup. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Can’t find your phone. Make sure you’re using a compatible Android phone that’s turned on and within arm’s reach. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_SYNC_PHONE_STATE_FAILED" desc="The error message to display when the Chromebook fails to sync the phone's state.">
        Smart Lock is currently unavailable. Please try again later.
      </message>
      <message name="IDS_EASY_UNLOCK_SETUP_ERROR_CONNECTING_TO_PHONE" desc="A generic catch-all error message to display when something goes wrong after the user clicks 'Use this phone' during Easy Unlock setup. Note that the &lt;a&gt; element surrounds a link; these HTML elements should be preserved in the translation.">
        Couldn’t establish a connection with your phone. Make sure you’re using a compatible Android phone that is turned on and within arm’s reach. &lt;a&gt;Learn more&lt;/a&gt;
      </message>
      <!-- Easy Unlock strings shown on the lock screen -->
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_NO_BLUETOOTH" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when the Chromebook doesn't have Bluetooth enabled.">
        Bluetooth is off on this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>. Type your password to enter, and turn on Bluetooth.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_NO_PHONE" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook cannot be found.">
        Can’t find your phone. Make sure it’s within arm’s reach and Bluetooth is turned on.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_NOT_AUTHENTICATED" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when no phones eligible to unlock the Chromebook can be authenticated.">
        Unable to unlock. Enter your password.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_LOCKED" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook is detected, but it's locked and thus not allowed to unlock the Chromebook.">
        Your phone is locked. Unlock it to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_UNLOCKABLE" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook is detected, but it does not have lock screen enabled, in which case it is not allowed to unlock Chromebooks.">
        To keep your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> safe, Smart Lock for Chromebook requires a screen lock on your phone.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_RSSI_TOO_LOW" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook is detected, but it's not in the Chromebook's proximity (> 30 feet away).">
        Can’t find your phone. Make sure it’s within arm’s reach.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_TX_POWER_TOO_HIGH" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook is detected, but it's not in the Chromebook's proximity (> 1 foot away).">
        Bring your phone closer to your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_LOCKED_AND_TX_POWER_TOO_HIGH" desc="Tooltip for an icon on a user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook is detected, but it's both (a) locked and (b) not in the Chromebook's proximity (> 1 foot away).">
        Unlock your phone and bring it closer to your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_INITIAL_AUTHENTICATED" desc="Tooltip text shown on lock screen when a phone eligible to unlock the Chromebook via Easy Unlock is detected and authenticated for the first time.">
        When your phone is unlocked and nearby, just click to enter. Otherwise, you’ll see a locked icon and need to type your password.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_INSTRUCTIONS" desc="Tooltip for an icon on user's lock screen pod shown by Easy Unlock when a phone eligible to unlock the Chromebook is detected and authenticated. The tooltip shows instructions for hard-locking the Chromebook.">
        If you click this icon, you will manually lock this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>. Next time, you’ll need to type your password to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_UNSUPPORTED_ANDROID_VERSION" desc="Tooltip for the icon on user's lock screen pod shown by Easy Unlock when a phone set up to unlock the Chromebook is detected, but has an unsupported Android version. The user is asked to update the phone.">
        Please update your phone to a newer version of Android to unlock this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_USER" desc="Tooltip text shown on a user's lock screen pod when Easy Unlock feature is enabled for the user, but the user hard locked the device. Hard lock is done by clicking the Easy Unlock icon on the user's pod. When a device is hard locked by a user, the Easy Unlock cannot be used to unlock the device as that user. A password has to be entered to unlock the device.">
        Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> has been manually locked. You'll need to type your password to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_PAIRING_CHANGED" desc="Tooltip text shown on a user's lock screen pod when Easy Unlock feature is enabled for the user, but the pairing data is changed. A password has to be entered to unlock the device.">
        Your phone used for Smart Lock changed. Type your password to update Smart Lock for Chromebook on this device. Next time, you can just click your picture to enter.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_PAIRING_ADDED" desc="Tooltip text shown on a user's lock screen pod when Easy Unlock pairing data is synced on a new Chromebook.">
        One-time activation: Type your password to activate Smart Lock on this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>. With Smart Lock, your phone will unlock this device—without a password. To change or turn off this feature, visit your <ph name="DEVICE_TYPE">$2<ex>Chromebook</ex></ph>'s settings.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_LOGIN_FAILURE" desc="Tooltip text shown on a user's lock screen when Smart Lock signin attempt fails.">
        Smart Lock couldn’t verify your account. Type your password to enter.
      </message>
      <message name="IDS_SMART_LOCK_SCREENLOCK_TOOLTIP_HARDLOCK_REAUTH_USER" desc="Tooltip text shown on a user's lock screen pod to reauthenticate the user before setting up Smart Lock. A password has to be entered to unlock the device.">
        To set up Smart Lock for Chromebook, Google needs to make sure it’s you—type your password to get started.
      </message>
      <message name="IDS_EASY_UNLOCK_SCREENLOCK_USER_POD_AUTH_VALUE" desc="Message on lock screen user pod shown in place of password field when Easy Unlock is enabled and a phone that can unlock the Chromebook is detected in proximity.">
        Click your photo
      </message>
      <message name="IDS_SMART_LOCK_SPINNER_ACCESSIBILITY_LABEL" desc="Label for the spinner icon used for accessibility purposes. This label is needed because this state does not have a tooltip.">
        Finding your phone
      </message>
      <!-- Device types -->
      <message name="IDS_EASY_UNLOCK_GENERIC_DEVICE_TYPE" desc="String for an unknown device type. Currently used to cover all non-ChromeOS devices.">
        Chrome device
      </message>

      <!-- Invalid SSL certificate memory strategy strings -->
      <message name="IDS_FLAGS_REMEMBER_CERTIFICATE_ERROR_DECISIONS_NAME" desc="Name of the remember certificate error decisions lab">
        Remember decisions to proceed through SSL errors for a specified length of time.
      </message>
      <message name="IDS_FLAGS_REMEMBER_CERTIFICATE_ERROR_DECISIONS_DESCRIPTION" desc="Description of the remember certificate error decisions lab">
        Remember decisions to proceed through SSL errors for a specified length of time.
      </message>

    <!-- Built-in hotword detection display strings -->
    <message name="IDS_FLAGS_EXPERIMENTAL_HOTWORD_HARDWARE_NAME" desc="Name of about:flags option for hotword hardware detection.">
      Simulated hardware 'Ok Google' features
    </message>
    <message name="IDS_FLAGS_EXPERIMENTAL_HOTWORD_HARDWARE_DESCRIPTION" desc="Description of about:flags option for hotword hardware detection.">
      Enables an experimental version of 'Ok Google' hotword detection features that have a hardware dependency.
    </message>

      <!-- Message center strings -->
      <message name="IDS_FLAGS_MESSAGE_CENTER_ALWAYS_SCROLL_UP_UPON_REMOVAL_NAME" desc="Name of about:flags option for message center always scroll up experiment.">
        Experiments that message center always scroll up upon notification removal
      </message>
      <message name="IDS_FLAGS_MESSAGE_CENTER_ALWAYS_SCROLL_UP_UPON_REMOVAL_DESCRIPTION" desc="Description of about:flags option for message center always scroll up experiment.">
        Enables experiment that message center always scroll up when a notification is removed.
      </message>

      <!-- Device permissions dialog strings. -->
      <message name="IDS_DEVICE_PERMISSIONS_DIALOG_DEVICE_NAME_COLUMN" desc="Label for the table column displaying the name of a device.">
        Device Name
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_DIALOG_SERIAL_NUMBER_COLUMN" desc="Label for the table column displaying the serial number of a device.">
        Serial Number
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_DIALOG_SELECT" desc="Button confirming the devices selected for access by the app.">
        Select
      </message>
      <message name="IDS_FLAGS_CAST_STREAMING_HW_ENCODING_NAME" desc="Name of chrome:flags option for Cast Streaming hardware video encoding support.">
        Cast Streaming hardware video encoding
      </message>
      <message name="IDS_FLAGS_CAST_STREAMING_HW_ENCODING_DESCRIPTION" desc="Description of chrome:flags option for Cast Streaming hardware video encoding support.">
        This option enables support in Cast Streaming for encoding video streams using platform hardware.
      </message>

      <!-- Hotword Audio Verification (opt-in) App strings. -->
      <message name="IDS_HOTWORD_BROWSER_NAME" desc="Name of the device when we're not running in CrOS">
        <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chromium</ex></ph> browser
      </message>
      <message name="IDS_HOTWORD_OPT_IN_CLOSE" desc="Label for the close button for the 'Ok Google' hotword opt-in dialog.">
        Close
      </message>
      <message name="IDS_HOTWORD_OPT_IN_CANCEL" desc="Text on the cancel button for the 'Ok Google' hotword opt-in dialog.">
        CANCEL
      </message>
      <message name="IDS_HOTWORD_OPT_IN_INTRO_TITLE" desc="Title of the intro page of the 'Ok Google' hotword opt-in dialog.">
        Voice search at any time
      </message>
      <message name="IDS_HOTWORD_OPT_IN_INTRO_SUBTITLE" desc="Sub-title of the intro page of the 'Ok Google' hotword opt-in dialog.">
        Say "Ok Google" when your screen is on and unlocked
      </message>
      <message name="IDS_HOTWORD_OPT_IN_INTRO_DESCRIPTION" desc="Description explaining the steps required to continue through the hotword opt-in process.">
        To make this happen, you'll need to enable Voice &amp; Audio Activity and train your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> in the following steps.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_INTRO_DESCRIPTION_AUDIO_HISTORY_ENABLED" desc="Description explaining the steps required to continue through the hotword opt-in process.">
        To make this happen, you'll need to train your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> in the following step.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_INTRO_START" desc="Text on the start button for the 'Ok Google' hotword opt-in dialog.">
        Get Started
      </message>
      <message name="IDS_HOTWORD_OPT_IN_AUDIO_HISTORY_TITLE" desc="Title of the Audio History page of the 'Ok Google' hotword opt-in dialog.">
        Enable Voice &amp; Audio Activity
      </message>
      <message name="IDS_HOTWORD_OPT_IN_AUDIO_HISTORY_DESCRIPTION_1" desc="Description of the Audio History page of the 'Ok Google' hotword opt-in dialog.">
        When you use audio activation commands, such as "Ok Google" or touching a microphone icon, your private Voice &amp; Audio Activity stores some voice and other audio to your account. A recording of the following speech/audio, plus a few seconds before, will be stored.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_AUDIO_HISTORY_DESCRIPTION_2" desc="Description of the Audio History page of the 'Ok Google' hotword opt-in dialog.">
        This helps Google recognize your voice and improve speech and audio recognition in order to give you results faster and with fewer hassles. <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://support.google.com/websearch?p=chromebook_audiohistory"&gt;</ph>Learn more<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
      </message>
      <message name="IDS_HOTWORD_OPT_IN_AUDIO_HISTORY_DESCRIPTION_3" desc="Description of the Audio History page of the 'Ok Google' hotword opt-in dialog.">
        You can change this setting or <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://history.google.com/history/audio"&gt;</ph>manage your private data<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph> whenever you like. Please remember that when Voice &amp; Audio Activity is on, this data may be saved from any of your signed-in devices.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_AUDIO_HISTORY_AGREE" desc="Text on the agree button for the Audio History section of the 'Ok Google' hotword opt-in dialog.">
        Enable
      </message>
      <message name="IDS_HOTWORD_OPT_IN_AUDIO_HISTORY_WAIT" desc="Text displayed when waiting for Audio History setting in the 'Ok Google' hotword opt-in dialog.">
        Enabling Voice &amp; Audio Activity...
      </message>
      <message name="IDS_HOTWORD_OPT_IN_ERROR" desc="Text displayed on error setting Audio History and training in the 'Ok Google' hotword opt-in dialog.">
        Something went wrong. Please try again.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_TITLE" desc="Title of the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        Let's train your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_DESCRIPTION" desc="Description on the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        To help your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> respond to you and for reliable and easy access to voice search, you need to teach Google the sound of your voice.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_SPEAK" desc="The text describing the action the user should take on the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        Just say "Ok Google" three times
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_FIRST_PROMPT" desc="The first prompt text on the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        Say "Ok Google"
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_MIDDLE_PROMPT" desc="The middle prompt text on the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        Say "Ok Google" again
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_LAST_PROMPT" desc="The last prompt text on the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        Say "Ok Google" one last time
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_RECORDED" desc="The message displayed when an 'Ok Google' utterance has been completed.">
        Complete
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_TIMEOUT" desc="The message displayed when an 'Ok Google' training has time out.">
        Training timed out
      </message>
      <message name="IDS_HOTWORD_OPT_IN_TRAINING_RETRY" desc="Text on the retry button of the voice model training page of the 'Ok Google' hotword opt-in dialog.">
        RETRY
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_TITLE" desc="Title of the finished page of the 'Ok Google' hotword opt-in dialog.">
        You're all set!
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_LIST_INTRO" desc="The text at the beginning of the list describing the Chromebook's new abilities. ">
        Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> can now:
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_LIST_ITEM_1" desc="The text of the first item in the list of Chromebook abilities. ">
        Recognize your voice when you say "Ok Google"
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_LIST_ITEM_2" desc="The text of the second item in the list of Chromebook abilities. ">
        Respond to "Ok Google" when the screen is on and unlocked
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_SETTINGS" desc="The text indicating where the user can change their Chrome settings. ">
        You can change this at any time in <ph name="BEGIN_LINK">&lt;a target="_blank" href="#" id="settings-link"&gt;</ph>Chrome Settings<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_AUDIO_HISTORY" desc="The text indicating where the user can change their account history. ">
        Search queries will be tied to your Google Account. You can view and delete them in your <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://www.google.com/settings/accounthistory"&gt;</ph>Account History<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>.
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISH" desc="Text on the finish button for the 'Ok Google' hotword opt-in dialog.">
        OK
      </message>
      <message name="IDS_HOTWORD_OPT_IN_FINISHED_WAIT" desc="The text displayed when waiting for the voice model training to complete.">
        Processing...
      </message>

      <message name="IDS_CAPTIVE_PORTAL_AUTHORIZATION_DIALOG_NAME" desc="Name of the modal Web dialog (displayed in the title) displaying captive portal login page on ChromeOS.">
        Captive Portal Authorization
      </message>

      <!-- Hotword Notification -->
      <message name="IDS_HOTWORD_NOTIFICATION_TITLE" desc="The text displayed as the title for the hotword notification. ">
        Voice search at any time
      </message>
      <message name="IDS_HOTWORD_NOTIFICATION_DESCRIPTION" desc="The text displayed as the description for the hotword notification. ">
        Enable "Ok Google" to voice search when your screen is on and unlocked
      </message>
      <message name="IDS_HOTWORD_NOTIFICATION_BUTTON" desc="The text displayed on the button of the hotword notification. ">
        Enable "Ok Google"
      </message>

      <message name="IDS_FLAGS_TOUCH_HOVER_NAME" desc="Name of the 'Enable support for hover capable touchscreens' flag.">
        Support for hover capable touchscreens
      </message>
      <message name="IDS_FLAGS_TOUCH_HOVER_DESCRIPTION" desc="Description of the 'Enable support for hover capable touchscreens' flag.">
        Enables hover feature by holding your finger just over the screen to experience a mouseover event.
      </message>

      <!-- Credential management account chooser -->
      <message name="IDS_CREDENTIAL_MANAGEMENT_ACCOUNT_CHOOSER_NO_THANKS" desc="Text of the button to dismiss the account chooser.">
        No thanks
      </message>
      <message name="IDS_CREDENTIAL_MANAGEMENT_ACCOUNT_CHOOSER_MORE" desc="Text of the button to show more options on the account chooser.">
        More
      </message>
      <message name="IDS_CREDENTIAL_MANAGEMENT_ACCOUNT_CHOOSER_PASSWORDS_LINK" desc="Text of the item on the account chooser to show existing passwords.">
        Settings
      </message>
      <message name="IDS_CREDENTIAL_MANAGEMENT_ACCOUNT_CHOOSER_LEARN_MORE" desc="Text of the item on the account chooser to show the help center article about credential management.">
        Learn more
      </message>

      <message name="IDS_ALLOW_INSECURE_LOCALHOST" desc="Name of the 'Allow insecure localhost' flag.">
        Allow invalid certificates for resources loaded from localhost.
      </message>
      <message name="IDS_ALLOW_INSECURE_LOCALHOST_DESCRIPTION" desc="Description of the 'Allow insecure localhost' flag.">
        Allows requests to localhost over HTTPS even when an invalid certificate is presented.
      </message>

      <!-- About device logs UI display strings -->
      <message name="IDS_DEVICE_LOG_TITLE" desc="Title of the chrome://device-log page">
        Device Log
      </message>
      <message name="IDS_DEVICE_AUTO_REFRESH" desc="Instructions for how to auto-refresh the page">
        Add a query param in URL to auto-refresh the page: chrome://device-log/?refresh=&lt;sec&gt;
      </message>
      <message name="IDS_DEVICE_LOG_REFRESH" desc="Button to refresh device log">
        Refresh
      </message>
      <message name="IDS_DEVICE_LOG_LEVEL_SHOW" desc="'Show' label before logging level checkboxes">
        Show:
      </message>
      <message name="IDS_DEVICE_LOG_LEVEL_ERROR" desc="Error logging level checkbox">
        Error
      </message>
      <message name="IDS_DEVICE_LOG_LEVEL_USER" desc="User logging level checkbox">
        User
      </message>
      <message name="IDS_DEVICE_LOG_LEVEL_EVENT" desc="Event logging level checkbox">
        Event
      </message>
      <message name="IDS_DEVICE_LOG_LEVEL_DEBUG" desc="Debug logging level checkbox">
        Debug
      </message>
      <message name="IDS_DEVICE_LOG_TYPE_LOGIN" desc="Checkbox to enable showing events of type LOGIN">
        Login
      </message>
      <message name="IDS_DEVICE_LOG_TYPE_NETWORK" desc="Checkbox to enable showing events of type NETWORK">
        Network
      </message>
      <message name="IDS_DEVICE_LOG_TYPE_POWER" desc="Checkbox to enable showing events of type POWER">
        Power
      </message>
      <message name="IDS_DEVICE_LOG_TYPE_USB" desc="Checkbox to enable showing events of type USB">
        USB
      </message>
      <message name="IDS_DEVICE_LOG_TYPE_HID" desc="Checkbox to enable showing events of type HID (Human Interface Device)">
        HID
      </message>
      <message name="IDS_DEVICE_LOG_FILEINFO" desc="File info checkbox in device event log">
        File Info
      </message>
      <message name="IDS_DEVICE_LOG_TIME_DETAIL" desc="Detailed timestamps checkbox in device event log">
        Detailed Timestamps
      </message>
      <message name="IDS_DEVICE_LOG_ENTRY" desc="Format string for lines in chrome://device-log.">
        [<ph name="TIMESTAMP">$1<ex>Timestamp</ex></ph>]
        <ph name="FILE_INFO">$2<ex>file:123</ex></ph>
        <ph name="EVENT_NAME">$3<ex>Event Description</ex></ph>
      </message>

      <message name="IDS_ENABLE_INVALID_CERT_COLLECTION" desc="Name of the 'Enable invalid certificate collection' flag.">
        Enable opt-in for reporting invalid TLS/SSL certificate chains
      </message>
      <message name="IDS_ENABLE_INVALID_CERT_COLLECTION_DESCRIPTION" desc="Description of the 'Enable invalid certificate collection' flag.">
        Allows users to opt in to the collection of invalid TLS/SSL certificate chains.
      </message>

      <message name="IDS_DURABLE_STORAGE_INFOBAR_QUESTION" desc="">
        <ph name="URL">
          $1<ex>www.google.com</ex>
        </ph> wants to store files on this device.
      </message>

      <message name="IDS_DURABLE_STORAGE_BUBBLE_FRAGMENT" desc="Permission fragment presented in the permission bubble when the webapp requests to be exempt from low-storage driven disk cleanup. Follows a 'This site would like to:' prompt.">
        Store files on this device
      </message>

      <!-- Printer detected notification -->
      <if expr="chromeos">
        <message name="IDS_PRINTER_DETECTED_NOTIFICATION_TITLE" desc="Title for notification shown to the user when a printer gets plugged in to a Chrome OS device.">
          Printer from <ph name="VENDOR_NAME">$1<ex>Google</ex></ph> detected
        </message>
        <message name="IDS_PRINTER_DETECTED_NOTIFICATION_TITLE_UNKNOWN_VENDOR" desc="Title for notification shown to the user when a printer gets plugged in to a Chrome OS device in the case the printer manufacturer name is unknown.">
          Printer detected
        </message>
        <message name="IDS_PRINTER_DETECTED_NOTIFICATION_NO_PRINT_APP_BODY" desc="Content for notification shown to the user when a printer gets plugged in to a Chrome OS device if the active user does not have an app that supports the printer installed.">
          Click to find a print app to use this printer.
        </message>
        <message name="IDS_PRINTER_DETECTED_NOTIFICATION_PRINT_APP_FOUND_BODY" desc="Content for notification shown to the user when a printer gets plugged in to a Chrome OS device if the active user already has a print app that supports the printer installed.">
          Your printer is ready.
        </message>
      </if>

      <!-- Strings describing Chrome security policy for DevTools security panel -->
      <message name="IDS_MAJOR_SHA1" desc="Summary phrase for a security problem where the site's certificate expires in 2017 or later and contains a SHA1 signature in the chain.">
        SHA-1 Certificate
      </message>
      <message name="IDS_MAJOR_SHA1_DESCRIPTION" desc="Description of a security problem where the site's certificate expires in 2017 or later and contains a SHA1 signature in the chain.">
        The certificate for this site expires in 2017 or later, and the certificate chain contains a certificate signed using SHA-1.
      </message>
      <message name="IDS_MINOR_SHA1" desc="Summary phrase for a security problem where the site's certificate expires in 2016 and contains a SHA1 signature in the chain.">
        SHA-1 Certificate
      </message>
      <message name="IDS_MINOR_SHA1_DESCRIPTION" desc="Description of a security problem where the site's certificate expires in 2016 and contains a SHA1 signature in the chain.">
        The certificate for this site expires in 2016, and the certificate chain contains a certificate signed using SHA-1.
      </message>
      <message name="IDS_CERTIFICATE_CHAIN_ERROR" desc="Summary phrase for a security problem with the site's certificate.">
        Certificate Error
      </message>
      <message name="IDS_CERTIFICATE_CHAIN_ERROR_DESCRIPTION_FORMAT" desc="Description of a security problem with the site's certificate.">
        There are issues with the site's certificate chain (<ph name="CERT_ERROR_DESCRIPTION">$1<ex>net::ERR_CERT_AUTHORITY_INVALID</ex></ph>).
      </message>
      <message name="IDS_VALID_SERVER_CERTIFICATE" desc="Summary phrase for a site that has a valid server certificate.">
        Valid Certificate
      </message>
      <message name="IDS_VALID_SERVER_CERTIFICATE_DESCRIPTION" desc="Description of a site that has a valid server certificate.">
        The connection to this site is using a valid, trusted server certificate.
      </message>
      <message name="IDS_SECURE_PROTOCOL_AND_CIPHERSUITE" desc="Summary phrase for a site that uses a modern, secure TLS protocol version and ciphersuite.">
        Secure TLS connection
      </message>
      <message name="IDS_SECURE_PROTOCOL_AND_CIPHERSUITE_DESCRIPTION" desc="Description of a site that uses a modern, secure TLS protocol version and ciphersuite.">
        The connection to this site is using a strong protocol version and cipher suite.
      </message>
      <message name="IDS_SAVE_PASSWORD_TITLE" desc="The title of the save password bubble when a password can be saved.">
        Do you want <ph name="PASSWORD_MANAGER_BRAND">$1<ex>Google Chrome</ex></ph> to save your password for <ph name="ORIGIN">$2<ex>example.com</ex></ph>?
      </message>
      <message name="IDS_MANAGE_PASSWORDS_TITLE_DIFFERENT_DOMAIN" desc="The title text that is used in the manage passwords bubble when a password is autofilled or after a user has stored a password.">
        Saved passwords for <ph name="ORIGIN">$1<ex>example.com</ex></ph>:
      </message>

    <if expr="is_win or is_macosx">
      <!-- Tab discarding -->
      <message name="IDS_FLAGS_AUTOMATIC_TAB_DISCARDING_NAME" desc="Name for the flag to enable or disable automatic tab discarding.">
        Automatic tab discarding
      </message>
      <message name="IDS_FLAGS_AUTOMATIC_TAB_DISCARDING_DESCRIPTION" desc="Description for the flag to enable or disable automatic tab description.">
        If enabled, tabs get automatically discarded from memory when the system memory is low. Discarded tabs are still visible on the tab strip and get reloaded when clicked on. Info about discarded tabs can be found at chrome://discards.
      </message>
    </if>

    <if expr="is_android">
      <message name="IDS_FLAGS_OFFLINE_PAGES_NAME" desc="Name for the flag to enable offline pages.">
        Enable offline pages
      </message>
      <message name="IDS_FLAGS_OFFLINE_PAGES_DESCRIPTION" desc="Description for the flag to enable offline pages.">
        Enable storing pages locally for offline use.
      </message>
      <message name="IDS_FLAGS_NTP_POPULAR_SITES_NAME" desc="Name for the flag to enable showing non-personalized popular suggestions on the New Tab Page, when no personal suggestions are available yet.">
        Show popular sites on the New Tab page
      </message>
      <message name="IDS_FLAGS_NTP_POPULAR_SITES_DESCRIPTION" desc="Description for the flag to enable showing non-personalized popular suggestions on the New Tab Page, when no personal suggestions are available yet.">
        Pre-populate the New Tab page with popular sites.
      </message>
      <message name="IDS_FLAGS_NTP_SWITCH_TO_EXISTING_TAB_NAME" desc="Name of the flag to control the behaviour when opening a suggested web page from the New Tab Page if there is an existing tab open for it.">
        Switch to an existing tab for New Tab Page suggestions.
      </message>
      <message name="IDS_FLAGS_NTP_SWITCH_TO_EXISTING_TAB_DESCRIPTION" desc="Description of the flag to control the behaviour when opening a suggested web page from the New Tab Page if there is an existing tab open for it.">
        When opening a suggested webpage from the New Tab Page, if a tab is already open for the suggestion, switch to that one instead of loading the suggestion in the new tab.
      </message>
      <message name="IDS_FLAGS_NTP_SWITCH_TO_EXISTING_TAB_MATCH_URL" desc="Match the webpage to open with existing tabs by their URLs.">
        Match by URL
      </message>
      <message name="IDS_FLAGS_NTP_SWITCH_TO_EXISTING_TAB_MATCH_HOST" desc="Match the webpage to open with existing tabs by their Hostnames.">
        Match by Hostname
      </message>
      <message name="IDS_FLAGS_USE_ANDROID_MIDI_API_NAME" desc="Name for the flag to use android midi api.">
        Use Android Midi API
      </message>
      <message name="IDS_FLAGS_USE_ANDROID_MIDI_API_DESCRIPTION" desc="Description for the flag to use android midi api.">
        Use Android Midi API for WebMIDI (effective only with Android M+ devices).
      </message>
   </if>

    <if expr="is_win">
      <!-- Exporting tracing events to ETW -->
      <message name="IDS_FLAGS_TRACE_EXPORT_EVENTS_TO_ETW_NAME" desc="Name for the flag to enable exporting of tracing events to ETW.">
        Enable exporting of tracing events to ETW.
      </message>
      <message name="IDS_FLAGS_TRACE_EXPORT_EVENTS_TO_ETW_DESRIPTION" desc="Description for the flag to enable exporting of tracing events to ETW.">
        If enabled, trace events will be exported to the Event Tracing for Windows (ETW) and can then be captured by tools such as UIForETW or Xperf.
      </message>

      <message name="IDS_FLAGS_MERGE_KEY_CHAR_EVENTS_NAME" desc="Name for the flag to enable/disable merging the key event with char event.">
        Enable or disable merging merging the key event (WM_KEY*) with char event (WM_CHAR).
      </message>
      <message name="IDS_FLAGS_MERGE_KEY_CHAR_EVENTS_DESCRIPTION" desc="Description for the flag to enable/disable merging the key event with char event.">
        If disabled, Chrome will handle WM_KEY* and WM_CHAR separatedly.
      </message>
    </if>

    <if expr="not is_ios">
      <!-- WebUsb Notification -->
      <message name="IDS_WEBUSB_DEVICE_DETECTED_NOTIFICATION" desc="Content for notification shown to the user when a USB device gets plugged in.">
        Go to <ph name="LANDING_PAGE">$1<ex>www.google.com</ex></ph> to connect.
      </message>
      <message name="IDS_WEBUSB_DEVICE_DETECTED_NOTIFICATION_TITLE" desc="Title for notification shown to the user when a USB device gets plugged in.">
        <ph name="USB_DEVICE_NAME">$1<ex>Nexus 5</ex></ph> detected
      </message>
    </if>

      <!-- Audio device strings. -->
      <message name="IDS_DEFAULT_AUDIO_DEVICE_NAME" desc="System default audio device (microphone or loudspeaker). This is typically presented to users in a drop-down list of device choices.">
          Default
      </message>
      <if expr="is_win">
        <message name="IDS_COMMUNICATIONS_AUDIO_DEVICE_NAME" desc="System default communications audio device (microphone or loudspeaker). This is typically presented to users in a drop-down list of device choices.">
          Communications
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_BEAMFORMING_ON_DEFAULT_AUDIO_INPUT_DEVICE_NAME" desc="Default audio input device (microphone) with a narrow angle coverage. Only the user in front of the device (i.e. you) will be listened to. This is typically presented to users in a drop-down list of device choices.">
          Default (pick up just you)
        </message>
        <message name="IDS_BEAMFORMING_OFF_DEFAULT_AUDIO_INPUT_DEVICE_NAME" desc="Default audio input device (microphone) with a wide angle coverage. All the sounds in the vicinity will be listend to. This is typically presented to users in a drop-down list of device choices.">
          Default (pick up everything)
        </message>
      </if>

    <if expr="is_android">
      <!-- Data Use -->
      <message name="IDS_DATA_USE_TRACKING_STARTED_SNACKBAR_MESSAGE" desc="Message shown when data use tracking starts." formatter_data="android_java">
        Data use is being measured
      </message>
      <message name="IDS_DATA_USE_TRACKING_ENDED_SNACKBAR_MESSAGE" desc="Message shown when data use tracking has ended." formatter_data="android_java">
        Data use measuring has ended
      </message>
      <message name="IDS_DATA_USE_TRACKING_ENDED_TITLE" desc="Message shown on the dialog when data use tracking has ended." formatter_data="android_java">
        Data use measuring ended
      </message>
      <message name="IDS_DATA_USE_TRACKING_ENDED_MESSAGE" desc="Message shown on the dialog when data use tracking has ended." formatter_data="android_java">
        Your data use will no longer be measured.
      </message>
      <message name="IDS_DATA_USE_LEARN_MORE_TITLE" desc="Title for the 'Learn more' link in the the dialog shown when data use tracking has ended." formatter_data="android_java">
        Learn more
      </message>
      <message name="IDS_DATA_USE_LEARN_MORE_LINK_URL" desc="URL for the 'Learn more' link in the the dialog shown when data use tracking has ended." formatter_data="android_java">
        <!-- Intentionally empty. This is overridden via Finch. -->
      </message>

      <!-- Disable Auto-Hiding Toolbar Flags -->
      <message name="IDS_FLAGS_DISABLE_AUTO_HIDING_TOOLBAR_NAME" desc="Name of the flag to disable auto-hiding the toolbar.">
        Disable auto-hiding the toolbar on large tablets
      </message>
      <message name="IDS_FLAGS_DISABLE_AUTO_HIDING_TOOLBAR_DESCRIPTION" desc="Description of the flag to disable auto-hiding the toolbar.">
        When enabled, the toolbar will never be hidden due to scrolling on devices with a minimum screen dp >= 800. It will still be hidden if page contents go fullscreen.
      </message>

      <!-- Update Menu Item Flags -->
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_NAME" desc="Name of the flag to force show the update menu item.">
        Force show update menu item
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_DESCRIPTION" desc="Description of the flag to force show the update menu item.">
        When enabled, an "Update Chrome" item will be shown in the app menu.
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_SUMMARY_NAME" desc="Name of the flag to show a summary below the update menu item.">
        Update menu item summary
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_SUMMARY_DESCRIPTION" desc="Description of the flag to show a summary below the update menu item.">
        When this flag and the force show update menu item flag are enabled, a summary will be displayed below the update menu item.
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_NO_SUMMARY" desc="Option to not show a summary for the update menu item.">
        No summary
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_DEFAULT_SUMMARY" desc="Option to show the default summary for the update menu item.">
        Default summary
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_NEW_FEATURES_SUMMARY" desc="Option to show a summary for the update menu item prompting users to 'get the latest features'.">
        New features summary
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_ITEM_CUSTOM_SUMMARY" desc="Option to show a custom summary for the update menu item.">
        Custom summary
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_BADGE_NAME" desc="Name of the flag to force show the update menu badge.">
        Force show update menu badge
      </message>
      <message name="IDS_FLAGS_UPDATE_MENU_BADGE_DESCRIPTION" desc="Description of the flag to force show the update menu badge.">
        When enabled, an update badge will be shown on the app menu button.
      </message>
      <message name="IDS_FLAGS_SET_MARKET_URL_FOR_TESTING_NAME" desc="Name of the flag to set a market URL for testing the update menu item.">
        Set market URL for testing
      </message>
      <message name="IDS_FLAGS_SET_MARKET_URL_FOR_TESTING_DESCRIPTION" desc="Description of the flag to set a market URL for testing the update menu item.">
        When enabled, sets the market URL for use in testing the update menu item.
      </message>
    </if>

    <if expr="not is_android and not is_ios">
      <!-- Chooser Bubble Prompt -->
      <message name="IDS_CHOOSER_BUBBLE_PROMPT" desc="The label that is used to introduce chooser details to the user in a popup.">
        This site wants to connect to:
      </message>
      <!-- Chooser Bubble No Devices Found Prompt -->
      <message name="IDS_CHOOSER_BUBBLE_NO_DEVICES_FOUND_PROMPT" desc="The label that is used to inform user that no devices found in the chooser popup.">
        No devices found.
      </message>
      <!-- Chooser Bubble Connect Button Text -->
      <message name="IDS_CHOOSER_BUBBLE_CONNECT_BUTTON_TEXT" desc="The text that is shown on the connect button in the chooser popup.">
        Connect
      </message>
      <!-- Chooser Bubble Cancel Button Text -->
      <message name="IDS_CHOOSER_BUBBLE_CANCEL_BUTTON_TEXT" desc="The text that is shown on the cancel button in the chooser popup.">
        Cancel
      </message>
    </if>

    <if expr="is_android">
      <message name="IDS_FLAGS_TAB_SWITCHER_IN_DOCUMENT_MODE_NAME" desc="Name for the flag to enable tab switcher in document mode.">
        Enable tab switcher in document mode.
      </message>
      <message name="IDS_FLAGS_TAB_SWITCHER_IN_DOCUMENT_MODE_DESCRIPTION" desc="Description for the flag to enable tab switcher in document mode.">
        If enabled, a tab switcher will show even when 'merge tabs and apps' option is on in the settings.
      </message>
    </if>

    <message name="IDS_FLAGS_ENABLE_BROTLI_NAME" desc="Title for the flag to enable Brotli Content-Encoding.">
      Brotli Content-Encoding.
    </message>
    <message name="IDS_FLAGS_ENABLE_BROTLI_DESCRIPTION" desc="Description for the flag to enable Brotli Content-Encoding.">
      Enable Brotli Content-Encoding support.
    </message>
    <message name="IDS_FLAGS_ENABLE_WEBFONTS_INTERVENTION_NAME" desc="Title for the flag to enable WebFonts User Agent Intervention.">
      User Agent Intervention for WebFonts loading.
    </message>
    <message name="IDS_FLAGS_ENABLE_WEBFONTS_INTERVENTION_DESCRIPTION" desc="Description for the flag to enable WebFonts User Agent Intervention.">
      Enable User Agent Intervention for WebFonts loading.
    </message>

    </messages>
  </release>
</grit>
