<?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" />
    <output filename="extensions_strings_bg.pak" type="data_package" lang="bg" />
    <output filename="extensions_strings_bn.pak" type="data_package" lang="bn" />
    <output filename="extensions_strings_ca.pak" type="data_package" lang="ca" />
    <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" />
    <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" />
    <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" />
    <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" />
    <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" />
    <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" />
    <output filename="extensions_strings_kn.pak" type="data_package" lang="kn" />
    <output filename="extensions_strings_ko.pak" type="data_package" lang="ko" />
    <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" />
    <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. -->

      <!-- 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_PACKAGE_DIRECTORY_ERROR" desc="Message for when an error occurs while trying to create the temporary directory needed to unzip a packaged extension or app.">
        Could not create directory for unzipping: '<ph name="DIRECTORY_PATH">$1<ex>profile/Extensions/CRX_INSTALL</ex></ph>'
      </message>
      <message name="IDS_EXTENSION_PACKAGE_IMAGE_PATH_ERROR" desc="Error message for when a packaged extension or app contains a reference to an image that could be outside the package.">
        Illegal path (absolute or relative with '..'): '<ph name="IMAGE_PATH">$1<ex>../image.png</ex></ph>'
      </message>
      <message name="IDS_EXTENSION_PACKAGE_IMAGE_ERROR" desc="Message for when an error occurs while trying to decode an image found within a packaged extension or app.">
        Could not decode image: '<ph name="IMAGE_NAME">$1<ex>image.png</ex></ph>'
      </message>
      <message name="IDS_EXTENSION_PACKAGE_UNZIP_ERROR" desc="Message for when an error occurs while unzipping a packaged extension or app.">
        Could not unzip extension
      </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>

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

      <!-- 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>
      <message name="IDS_EXTENSION_DISABLED_UPDATE_REQUIRED_BY_POLICY" desc="Error message when an extension doesn't meet minimum version required by administrator policy.">
        The administrator of this machine requires <ph name="EXTENSION_NAME">$1<ex>Google Talk</ex></ph> to have a minimum version of <ph name="EXTENSION_VERSION">$2<ex>1.1.0</ex></ph>. It cannot be enabled until it has updated to that version (or higher).
      </message>

      <!--
        Device API strings. Please keep alphabetized.

        To check UI that displays these strings please use one of the sample
        applications such as:

        https://chrome.google.com/webstore/detail/igkmggljimacfdfalpeelenjeicmfnll
        https://chrome.google.com/webstore/detail/ohndmecdhlgohpibepbboddcoecomnpc

        IDS_EXTENSION_PROMPT_WARNING_* messages appear on the extension details
        page along with other permissions. IDS_*PERMISSIONS_PROMPT* messages
        appear in the device picker displayed by the
        chrome.usb.getUserSelectedDevices and chrome.hid.getUserSelectedDevices
        APIs.
      -->
      <message name="IDS_DEVICE_NAME_WITH_PRODUCT_SERIAL" desc="String describing a device by its product name and serial number.">
        <ph name="PRODUCT_NAME">$1<ex>Power Knob</ex></ph> (serial number <ph name="SERIAL_NUMBER">$2<ex>00001</ex></ph>)
      </message>
      <message name="IDS_DEVICE_NAME_WITH_PRODUCT_UNKNOWN_VENDOR" desc="String describing a device by its product name when only the numeric vendor ID is available.">
        <ph name="PRODUCT_NAME">$1<ex>Power Knob</ex></ph> from vendor <ph name="VENDOR_ID">$2<ex>abcd</ex></ph>
      </message>
      <message name="IDS_DEVICE_NAME_WITH_PRODUCT_UNKNOWN_VENDOR_SERIAL" desc="String describing a device by its product name and serial number when the numeric vendor ID is available.">
        <ph name="PRODUCT_NAME">$1<ex>Power Knob</ex></ph> from vendor <ph name="VENDOR_ID">$2<ex>abcd</ex></ph> (serial number <ph name="SERIAL_NUMBER">$3<ex>00001</ex></ph>)
      </message>
      <message name="IDS_DEVICE_NAME_WITH_PRODUCT_VENDOR" desc="String describing a device by its product name and vendor.">
        <ph name="PRODUCT_NAME">$1<ex>Power Knob</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph>
      </message>
      <message name="IDS_DEVICE_NAME_WITH_PRODUCT_VENDOR_SERIAL" desc="String describing a device by its product name and vendor and serial number.">
        <ph name="PRODUCT_NAME">$1<ex>Power Knob</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph> (serial number <ph name="SERIAL_NUMBER">$3<ex>00001</ex></ph>)
      </message>
      <message name="IDS_DEVICE_NAME_WITH_UNKNOWN_PRODUCT_UNKNOWN_VENDOR" desc="String describing a device when only numeric vendor and product IDs are available.">
        Unknown product <ph name="PRODUCT_ID">$1<ex>1234</ex></ph> from vendor <ph name="VENDOR_ID">$2<ex>abcd</ex></ph>
      </message>
      <message name="IDS_DEVICE_NAME_WITH_UNKNOWN_PRODUCT_UNKNOWN_VENDOR_SERIAL" desc="String describing a device by its serial number when only numeric vendor and product IDs are available.">
        Unknown product <ph name="PRODUCT_ID">$1<ex>1234</ex></ph> from vendor <ph name="VENDOR_ID">$2<ex>abcd</ex></ph> (serial number <ph name="SERIAL_NUMBER">$3<ex>00001</ex></ph>)
      </message>
      <message name="IDS_DEVICE_NAME_WITH_UNKNOWN_PRODUCT_VENDOR" desc="String describing a device by its vendor name when only the numeric product ID is available.">
        Unknown product <ph name="PRODUCT_ID">$1<ex>b33f</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph>
      </message>
      <message name="IDS_DEVICE_NAME_WITH_UNKNOWN_PRODUCT_VENDOR_SERIAL" desc="String describing a device by its vendor name and serial number when only the numeric product ID is available.">
        Unknown product <ph name="PRODUCT_ID">$1<ex>1234</ex></ph> from <ph name="VENDOR_NAME">$2<ex>Griffin Technology</ex></ph> (serial number <ph name="SERIAL_NUMBER">$3<ex>00001</ex></ph>)
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_PROMPT" desc="Instructions asking the user to select one or more devices for use with an app. [ICU Syntax]">
      {0, select,
        single {The application "<ph name="APP_NAME">{1}<ex>Chrome Dev Editor</ex></ph>" is requesting access to one of your devices.}
        multiple {The application "<ph name="APP_NAME">{1}<ex>Chrome Dev Editor</ex></ph>" is requesting access to one or more of your devices.}
        other {UNUSED}}
      </message>
      <message name="IDS_EXTENSION_USB_DEVICE_PRODUCT_NAME_AND_VENDOR" desc="USB device name and vendor string, used in various permission messages for USB 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_HID_DEVICE_PERMISSIONS_PROMPT_TITLE" desc="Title of the HID device selection dialog when the app will accept one or more selected devices. [ICU Syntax]">
      {0, select,
       single {Select a HID device} multiple {Select HID devices}
       other {UNUSED}}
      </message>
      <message name="IDS_USB_DEVICE_PERMISSIONS_PROMPT_TITLE" desc="Title of the USB device selection dialog when the app will accept one or more selected devices. [ICU Syntax]">
      {0, select,
       single {Select a USB device} multiple {Select USB devices}
       other {UNUSED}}
      </message>

      <!-- Extension task manager strings. Please keep alphabetized. -->
      <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_EXTENSIONVIEW_TAG_PREFIX" desc="The prefix for a guest page loaded in an extensionview tag in the Task Manager">
        ExtensionView: <ph name="EXTENSIONVIEW_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>

      <!-- Install related messages. Please keep alphabetized. -->
      <message name="IDS_EXTENSION_INSTALL_PROCESS_CRASHED" desc="Error message in case package fails to install because a utility process crashed.">
        Could not install package because a utility process crashed. Try restarting Chrome and trying again.
      </message>
      <message name="IDS_EXTENSION_PACKAGE_ERROR_CODE" desc="Error message in cases where we fail to install the extension because the crx file is invalid. For example, because the crx header or signature is invalid.">
        Package is invalid: '<ph name="ERROR_CODE">$1<ex>error</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_PACKAGE_ERROR_MESSAGE" desc="The cases where we get an error message string back from some other component. The message might be in English, but these are typically developer errors, and the extension SDK is English.">
        Package is invalid. Details: '<ph name="ERROR_MESSAGE">$1<ex>error</ex></ph>'.
      </message>
      <message name="IDS_EXTENSION_PACKAGE_INSTALL_ERROR" desc="Error message in case package fails to install because of some problem with the filesystem.">
        Could not install package: '<ph name="ERROR_CODE">$1<ex>error</ex></ph>'
      </message>
      <if expr="is_win">
        <message name="IDS_EXTENSION_UNPACK_FAILED" desc="On windows, it is possible to mount a disk without the root of that disk having a drive letter.  The sandbox does not support this. See crbug/49530 .">
          Can not unpack extension.  To safely unpack an extension, there must be a path to your profile directory that starts with a drive letter and does not contain a junction, mount point, or symlink.  No such path exists for your profile.
        </message>
      </if>
      <if expr="not is_win">
        <message name="IDS_EXTENSION_UNPACK_FAILED" desc="">
          Can not unpack extension.  To safely unpack an extension, there must be a path to your profile directory that does not contain a symlink.  No such path exists for your profile.
        </message>
      </if>

      <!-- Utility process names. Please keep alphabetized. -->
      <message name="IDS_UTILITY_PROCESS_EXTENSION_UNPACKER_NAME" desc="The name of the utility process used for unpacking extensions.">
        Extension Unpacker
      </message>
      <message name="IDS_UTILITY_PROCESS_MANIFEST_PARSER_NAME" desc="The name of the utility process used for parsing extension manifests.">
        Extension Manifest Parser
      </message>
    </messages>
  </release>
</grit>
