<?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">

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

      <!-- 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_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_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_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_HOST_LIST_ENTRY" desc="Single entry in a list of websites.">
        - <ph name="WEBSITE_1">$1<ex>www.google.com</ex></ph>
      </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>

      <!-- 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_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_USB" desc="Permission string for access to USB devices.">
        Access your USB devices
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE" desc="Permission string for access to a specific USB device.">
        Access the USB device <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_MISSING_PRODUCT" desc="Permission string for access to a specific USB device when a product name cannot be established for a USB device.">
        Access the USB device from <ph name="VENDOR_NAME">$1<ex>Griffin Technology</ex></ph>
      </message>
      <message name="IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_MISSING_VENDOR" desc="Permission string for access to a specific USB device when a vendor name cannot be established for a USB device.">
        Access the USB device
      </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>

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