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

<!--
  Strings for the extensions module. Used mostly for low-level error messages.
  Where possible new strings should be kept in Chrome and the extensions module
  should return an error code, message flag, etc.
-->

<grit latest_public_release="0" current_release="1"
      source_lang_id="en" enc_check="möl">
  <outputs>
    <output filename="grit/extensions_strings.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="extensions_strings_am.pak" type="data_package" lang="am" />
    <output filename="extensions_strings_ar.pak" type="data_package" lang="ar" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_ast.pak" type="data_package" lang="ast" />
    </if>
    <output filename="extensions_strings_bg.pak" type="data_package" lang="bg" />
    <output filename="extensions_strings_bn.pak" type="data_package" lang="bn" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_bs.pak" type="data_package" lang="bs" />
    </if>
    <output filename="extensions_strings_ca.pak" type="data_package" lang="ca" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_ca@valencia.pak" type="data_package" lang="ca@valencia" />
    </if>
    <output filename="extensions_strings_cs.pak" type="data_package" lang="cs" />
    <output filename="extensions_strings_da.pak" type="data_package" lang="da" />
    <output filename="extensions_strings_de.pak" type="data_package" lang="de" />
    <output filename="extensions_strings_el.pak" type="data_package" lang="el" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_en-AU.pak" type="data_package" lang="en-AU" />
    </if>
    <output filename="extensions_strings_en-GB.pak" type="data_package" lang="en-GB" />
    <output filename="extensions_strings_en-US.pak" type="data_package" lang="en" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_eo.pak" type="data_package" lang="eo" />
    </if>
    <output filename="extensions_strings_es.pak" type="data_package" lang="es" />
    <if expr="is_ios">
      <!-- iOS uses es-MX for es-419 -->
      <output filename="extensions_strings_es-MX.pak" type="data_package" lang="es-419" />
    </if>
    <if expr="not is_ios">
      <output filename="extensions_strings_es-419.pak" type="data_package" lang="es-419" />
    </if>
    <output filename="extensions_strings_et.pak" type="data_package" lang="et" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_eu.pak" type="data_package" lang="eu" />
    </if>
    <output filename="extensions_strings_fa.pak" type="data_package" lang="fa" />
    <output filename="extensions_strings_fake-bidi.pak" type="data_package" lang="fake-bidi" />
    <output filename="extensions_strings_fi.pak" type="data_package" lang="fi" />
    <output filename="extensions_strings_fil.pak" type="data_package" lang="fil" />
    <output filename="extensions_strings_fr.pak" type="data_package" lang="fr" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_gl.pak" type="data_package" lang="gl" />
    </if>
    <output filename="extensions_strings_gu.pak" type="data_package" lang="gu" />
    <output filename="extensions_strings_he.pak" type="data_package" lang="he" />
    <output filename="extensions_strings_hi.pak" type="data_package" lang="hi" />
    <output filename="extensions_strings_hr.pak" type="data_package" lang="hr" />
    <output filename="extensions_strings_hu.pak" type="data_package" lang="hu" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_hy.pak" type="data_package" lang="hy" />
      <output filename="extensions_strings_ia.pak" type="data_package" lang="ia" />
    </if>
    <output filename="extensions_strings_id.pak" type="data_package" lang="id" />
    <output filename="extensions_strings_it.pak" type="data_package" lang="it" />
    <output filename="extensions_strings_ja.pak" type="data_package" lang="ja" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_ka.pak" type="data_package" lang="ka" />
    </if>
    <output filename="extensions_strings_kn.pak" type="data_package" lang="kn" />
    <output filename="extensions_strings_ko.pak" type="data_package" lang="ko" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_ku.pak" type="data_package" lang="ku" />
      <output filename="extensions_strings_kw.pak" type="data_package" lang="kw" />
    </if>
    <output filename="extensions_strings_lt.pak" type="data_package" lang="lt" />
    <output filename="extensions_strings_lv.pak" type="data_package" lang="lv" />
    <output filename="extensions_strings_ml.pak" type="data_package" lang="ml" />
    <output filename="extensions_strings_mr.pak" type="data_package" lang="mr" />
    <output filename="extensions_strings_ms.pak" type="data_package" lang="ms" />
    <output filename="extensions_strings_nl.pak" type="data_package" lang="nl" />
    <!-- The translation console uses 'no' for Norwegian Bokmål. It should
         be 'nb'. -->
    <output filename="extensions_strings_nb.pak" type="data_package" lang="no" />
    <output filename="extensions_strings_pl.pak" type="data_package" lang="pl" />
    <if expr="is_ios">
      <!-- iOS uses pt for pt-BR -->
      <output filename="extensions_strings_pt.pak" type="data_package" lang="pt-BR" />
    </if>
    <if expr="not is_ios">
      <output filename="extensions_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
    </if>
    <output filename="extensions_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
    <output filename="extensions_strings_ro.pak" type="data_package" lang="ro" />
    <output filename="extensions_strings_ru.pak" type="data_package" lang="ru" />
    <output filename="extensions_strings_sk.pak" type="data_package" lang="sk" />
    <output filename="extensions_strings_sl.pak" type="data_package" lang="sl" />
    <output filename="extensions_strings_sr.pak" type="data_package" lang="sr" />
    <output filename="extensions_strings_sv.pak" type="data_package" lang="sv" />
    <output filename="extensions_strings_sw.pak" type="data_package" lang="sw" />
    <output filename="extensions_strings_ta.pak" type="data_package" lang="ta" />
    <output filename="extensions_strings_te.pak" type="data_package" lang="te" />
    <output filename="extensions_strings_th.pak" type="data_package" lang="th" />
    <output filename="extensions_strings_tr.pak" type="data_package" lang="tr" />
    <if expr="use_third_party_translations">
      <output filename="extensions_strings_ug.pak" type="data_package" lang="ug" />
    </if>
    <output filename="extensions_strings_uk.pak" type="data_package" lang="uk" />
    <output filename="extensions_strings_vi.pak" type="data_package" lang="vi" />
    <output filename="extensions_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
    <output filename="extensions_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
  </outputs>
  <translations>
    <file path="strings/extensions_strings_am.xtb" lang="am" />
    <file path="strings/extensions_strings_ar.xtb" lang="ar" />
    <file path="strings/extensions_strings_bg.xtb" lang="bg" />
    <file path="strings/extensions_strings_bn.xtb" lang="bn" />
    <file path="strings/extensions_strings_ca.xtb" lang="ca" />
    <file path="strings/extensions_strings_cs.xtb" lang="cs" />
    <file path="strings/extensions_strings_da.xtb" lang="da" />
    <file path="strings/extensions_strings_de.xtb" lang="de" />
    <file path="strings/extensions_strings_el.xtb" lang="el" />
    <file path="strings/extensions_strings_en-GB.xtb" lang="en-GB" />
    <file path="strings/extensions_strings_es.xtb" lang="es" />
    <file path="strings/extensions_strings_es-419.xtb" lang="es-419" />
    <file path="strings/extensions_strings_et.xtb" lang="et" />
    <file path="strings/extensions_strings_fa.xtb" lang="fa" />
    <file path="strings/extensions_strings_fi.xtb" lang="fi" />
    <file path="strings/extensions_strings_fil.xtb" lang="fil" />
    <file path="strings/extensions_strings_fr.xtb" lang="fr" />
    <file path="strings/extensions_strings_gu.xtb" lang="gu" />
    <file path="strings/extensions_strings_hi.xtb" lang="hi" />
    <file path="strings/extensions_strings_hr.xtb" lang="hr" />
    <file path="strings/extensions_strings_hu.xtb" lang="hu" />
    <file path="strings/extensions_strings_id.xtb" lang="id" />
    <file path="strings/extensions_strings_it.xtb" lang="it" />
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file path="strings/extensions_strings_iw.xtb" lang="he" />
    <file path="strings/extensions_strings_ja.xtb" lang="ja" />
    <file path="strings/extensions_strings_kn.xtb" lang="kn" />
    <file path="strings/extensions_strings_ko.xtb" lang="ko" />
    <file path="strings/extensions_strings_lt.xtb" lang="lt" />
    <file path="strings/extensions_strings_lv.xtb" lang="lv" />
    <file path="strings/extensions_strings_ml.xtb" lang="ml" />
    <file path="strings/extensions_strings_mr.xtb" lang="mr" />
    <file path="strings/extensions_strings_ms.xtb" lang="ms" />
    <file path="strings/extensions_strings_nl.xtb" lang="nl" />
    <file path="strings/extensions_strings_no.xtb" lang="no" />
    <file path="strings/extensions_strings_pl.xtb" lang="pl" />
    <file path="strings/extensions_strings_pt-BR.xtb" lang="pt-BR" />
    <file path="strings/extensions_strings_pt-PT.xtb" lang="pt-PT" />
    <file path="strings/extensions_strings_ro.xtb" lang="ro" />
    <file path="strings/extensions_strings_ru.xtb" lang="ru" />
    <file path="strings/extensions_strings_sk.xtb" lang="sk" />
    <file path="strings/extensions_strings_sl.xtb" lang="sl" />
    <file path="strings/extensions_strings_sr.xtb" lang="sr" />
    <file path="strings/extensions_strings_sv.xtb" lang="sv" />
    <file path="strings/extensions_strings_sw.xtb" lang="sw" />
    <file path="strings/extensions_strings_ta.xtb" lang="ta" />
    <file path="strings/extensions_strings_te.xtb" lang="te" />
    <file path="strings/extensions_strings_th.xtb" lang="th" />
    <file path="strings/extensions_strings_tr.xtb" lang="tr" />
    <file path="strings/extensions_strings_uk.xtb" lang="uk" />
    <file path="strings/extensions_strings_vi.xtb" lang="vi" />
    <file path="strings/extensions_strings_zh-CN.xtb" lang="zh-CN" />
    <file path="strings/extensions_strings_zh-TW.xtb" lang="zh-TW" />
  </translations>
  <release seq="1" allow_pseudo="false">
    <messages fallback_to_english="true">

      <!-- Document Scan API strings. Please keep alphabetized. -->
      <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>

      <!-- General extensions strings. Please keep alphabetized. -->
      <message name="IDS_EXTENSION_CONTAINS_PRIVATE_KEY" desc="Error message when an extension includes a file containing a private key.">
        This extension includes the key file '<ph name="KEY_PATH">$1<ex>relative/path/to/file.pem</ex></ph>'. You probably don't want to do that.
      </message>
      <message name="IDS_EXTENSION_LOAD_ABOUT_PAGE_FAILED" desc="">
        Could not load about page '<ph name="ABOUT_PAGE">$1<ex>page.html</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_LOAD_BACKGROUND_SCRIPT_FAILED" desc="">
        Could not load background script '<ph name="BACKGROUND_SCRIPT">$1<ex>script.js</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_LOAD_BACKGROUND_PAGE_FAILED" desc="">
        Could not load background page '<ph name="BACKGROUND_PAGE">$1<ex>page.html</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_LOAD_ICON_FAILED" desc="">
        Could not load extension icon '<ph name="ICON">$1<ex>icon.png</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_LOAD_LAUNCHER_PAGE_FAILED" desc="">
        Could not load launcher page '<ph name="PAGE">$1<ex>index.html</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_LOAD_OPTIONS_PAGE_FAILED" desc="">
        Could not load options page '<ph name="OPTIONS_PAGE">$1<ex>page.html</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_LOCALES_NO_DEFAULT_LOCALE_SPECIFIED" desc="">
        Localization used, but default_locale wasn't specified in the manifest.
      </message>
      <message name="IDS_EXTENSION_MANIFEST_UNREADABLE" desc="">
        Manifest file is missing or unreadable.
      </message>
      <message name="IDS_EXTENSION_MANIFEST_INVALID" desc="">
        Manifest file is invalid.
      </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_LOAD_STATE_PARAMETER_EXTENSION" desc="Parameter to IDS_LOAD_STATE_WAITING_FOR_DELEGATE when we are waiting for an extension. The variable is the extension name.">
        extension <ph name="EXTENSION_NAME">$1<ex>Adblock</ex></ph>
      </message>

      <!-- Bluetooth access permissions. Please keep alphabetized. -->
      <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>

      <!-- Host access permissions. Please keep alphabetized. -->
      <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_HOST_AND_SUBDOMAIN" desc="Permission string requesting access to data on a website and its sub-domains.">
        all <ph name="WEBSITE_1">$1<ex>google.com</ex></ph> sites
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_HOST_AND_SUBDOMAIN_LIST" desc="Single entry permission string requesting access to data on a website and its sub-domains.">
        All <ph name="WEBSITE_1">$1<ex>google.com</ex></ph> sites
      </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>

      <!-- Media capture permissions. Please keep alphabetized. -->
      <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>

      <!-- Media galleries strings. Please keep alphabetized. -->
      <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>

      <!-- Policy strings. Please keep alphabetized. -->
      <message name="IDS_EXTENSION_CANT_INSTALL_POLICY_BLOCKED" desc="Error message when a user tries to install an extension that is blocked by administrator policy.">
        <ph name="EXTENSION_NAME">$1<ex>Google Talk</ex></ph> (extension ID "<ph name="EXTENSION_ID">$2<ex>nckgahadagoaajjgafhacjanaoiihapd</ex></ph>") is blocked by the administrator.
      </message>
      <message name="IDS_EXTENSION_CANT_MODIFY_POLICY_REQUIRED" desc="Error message when a user tries to remove or change an extension that is required by administrator policy.">
        The administrator of this machine requires <ph name="EXTENSION_NAME">$1<ex>Google Talk</ex></ph> to be installed. It cannot be removed or modified.
      </message>
      <message name="IDS_EXTENSION_CANT_UNINSTALL_POLICY_REQUIRED" desc="Error message when a user tries to uninstall an extension that is required by administrator policy.">
        The administrator of this machine requires <ph name="EXTENSION_NAME">$1<ex>Google Talk</ex></ph> to be installed. It cannot be uninstalled.
      </message>

      <!-- Settings override strings. Please keep alphabetized. -->
      <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_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_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>

      <!-- Sockets API strings. Please keep alphabetized. -->
      <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_SOCKET_ANY_HOST" desc="Permission string for access to any computer on the local network or internet.">
        Exchange data with any computer on the local network or internet
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN" desc="Permission string for access to any computer within a single domains on the local network or internet.">
        Exchange data with any computer 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 computer within multiple domains on the local network or internet.">
        Exchange data with any computer 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 computers on the local network or internet.">
        Exchange data with the computer 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 computers on the local network or internet.">
        Exchange data with the computers named: <ph name="HOSTNAMES">$1<ex>foo.example.com bar.example.com</ex></ph>
      </message>

      <!-- Device API strings. Please keep alphabetized. -->
      <message name="IDS_DEVICE_PERMISSIONS_DEVICE_NAME" desc="String describing a device in a list of devices.">
        <ph name="PRODUCT_NAME">$1<ex>SoundKnob</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph>
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_PROMPT_HEADING" desc="Title of the device selection dialog.">
        USB Devices
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_PROMPT_SINGLE" desc="Instructions asking the user to select one device for use with an app.">
        Select a device to use with <ph name="APP_NAME">$1<ex>Chrome Dev Editor</ex></ph>.
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_PROMPT_MULTIPLE" desc="Instructions asking the user to select one or more devices for use with an app.">
        Select devices to use with <ph name="APP_NAME">$1<ex>Chrome Dev Editor</ex></ph>.
      </message>
      <message name="IDS_DEVICE_UNKNOWN_PRODUCT" desc="String used when no human-readable product name is available for a device.">
        Product <ph name="PRODUCT_ID">$1<ex>0x1234</ex></ph>
      </message>
      <message name="IDS_DEVICE_UNKNOWN_VENDOR" desc="String used when no human-readable vendor name is available for a device.">
        Vendor <ph name="VENDOR_ID">$1<ex>0x1234</ex></ph>
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_HID" desc="Permission string for access to HID devices.">
        Access your input devices
      </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_VPN" desc="Permission string for access to VPN API.">
        Access your network traffic
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE" desc="Permission string for access to a specific USB device.">
        Access any <ph name="PRODUCT_NAME">$1<ex>SoundKnob</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph> via USB
      </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_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" desc="Line item for a USB device listed under IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST.">
        <ph name="PRODUCT_NAME">$1<ex>SoundKnob</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph>
      </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_TASK_MANAGER_APPVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in an appview tag in the Task Manager">
        Appview: <ph name="APPVIEW_TAG_NAME">$1<ex>Google Hangouts</ex></ph>
      </message>
      <message name="IDS_EXTENSION_TASK_MANAGER_EXTENSIONOPTIONS_TAG_PREFIX" desc="The prefix for a guest page loaded in an extensionoptions tag in the Task Manager">
        Options: <ph name="EXTENSIONOPTIONS_TAG_NAME">$1<ex>Google Hangouts</ex></ph>
      </message>
      <message name="IDS_EXTENSION_TASK_MANAGER_MIMEHANDLERVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in a mime handler view page in the task manager">
        Mimehandler: <ph name="MIMEHANDLERVIEW_TAG_NAME">$1<ex>My mime handler view</ex></ph>
      </message>
      <message name="IDS_EXTENSION_TASK_MANAGER_WEBVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in a webview tag in the Task Manager">
        Webview: <ph name="WEBVIEW_TAG_NAME">$1<ex>Google</ex></ph>
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_SERIAL" desc="Permission string for accessing a USB device with a known vendor name, product name and serial number.">
        <ph name="PRODUCT_NAME">$1<ex>Nexus 5</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Google Inc.</ex></ph> (serial number <ph name="SERIAL_NUMBER">$3<ex>ABCDEF123456</ex></ph>)
      </message>

      <!-- Global error messages for extensions. Please keep alphabetized. -->
      <message name="IDS_EXTENSION_WARNINGS_NETWORK_DELAY" desc="Warning message indicating that an extension caused excessive network delays for web requests">
        This extension is slowing down <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. You should disable it to restore <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>'s performance.
      </message>
      <message name="IDS_EXTENSION_WARNINGS_NETWORK_CONFLICT" desc="Warning message which indicates that two or more extensions tried to modify a network request in a conflicting way and the modification of this extension was ignored">
        This extension failed to modify a network request because the modification conflicted with another extension.
      </message>
      <message name="IDS_EXTENSION_WARNINGS_REDIRECT_CONFLICT" desc="Warning message indicating that two extensions tried to redirect to different destinations">
        This extension failed to redirect a network request to <ph name="ATTEMPTED_REDIRECT_DESTINATION">$1<ex>http://www.google.com</ex></ph> because another extension (<ph name="EXTENSION_NAME">$2<ex>My Cool Extension</ex></ph>) redirected it to <ph name="ACTUAL_REDIRECT_DESTINATION">$3<ex>https://www.google.com</ex></ph>.
      </message>
      <message name="IDS_EXTENSION_WARNINGS_REQUEST_HEADER_CONFLICT" desc="Warning message which indicates that two or more extensions tried to modify a network request in a conflicting way and the modification of this extension was ignored">
        This extension failed to modify the request header "<ph name="HEADER_NAME">$1<ex>User-Agent</ex></ph>" of a network request because the modification conflicted with another extension (<ph name="EXTENSION_NAME">$2<ex>My Cool Extension</ex></ph>).
      </message>
      <message name="IDS_EXTENSION_WARNINGS_RESPONSE_HEADER_CONFLICT" desc="Warning message which indicates that two or more extensions tried to modify a network request in a conflicting way and the modification of this extension was ignored">
        This extension failed to modify the response header "<ph name="HEADER_NAME">$1<ex>User-Agents</ex></ph>" of a network request because the modification conflicted with another extension (<ph name="EXTENSION_NAME">$2<ex>My Cool Extension</ex></ph>).
      </message>
      <message name="IDS_EXTENSION_WARNINGS_CREDENTIALS_CONFLICT" desc="Warning message which indicates that two or more extensions tried to modify a network request in a conflicting way and the modification of this extension was ignored">
        This extension failed to provide credentials to a network request because another extension (<ph name="EXTENSION_NAME">$1<ex>My Cool Extension</ex></ph>) provided different credentials.
      </message>
      <message name="IDS_EXTENSION_WARNINGS_DOWNLOAD_FILENAME_CONFLICT" desc="Warning message which indicates that two or more extensions tried to determine the filename of a downloaded file in a conflicting way and the modification of this extension was ignored">
        This extension failed to name the download "<ph name="ATTEMPTED_FILENAME">$1<ex>apple.png</ex></ph>" because another extension (<ph name="EXTENSION_NAME">$2<ex>My Cool Extension</ex></ph>) determined a different filename "<ph name="ACTUAL_FILENAME">$3<ex>banana.png</ex></ph>".
      </message>
      <message name="IDS_EXTENSION_WARNING_RELOAD_TOO_FREQUENT" desc="Warning message which indates that an extension got stuck in a reload loop.">
        This extension reloaded itself too frequently.
      </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_WEB_CONNECTABLE" desc="Permission string for allowing websites to connect to extensions.">
        Communicate with cooperating websites
      </message>

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