<?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"
      output_all_resource_defines="false" 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="extensions_strings_am.xtb" lang="am" />
    <file path="extensions_strings_ar.xtb" lang="ar" />
    <file path="extensions_strings_bg.xtb" lang="bg" />
    <file path="extensions_strings_bn.xtb" lang="bn" />
    <file path="extensions_strings_ca.xtb" lang="ca" />
    <file path="extensions_strings_cs.xtb" lang="cs" />
    <file path="extensions_strings_da.xtb" lang="da" />
    <file path="extensions_strings_de.xtb" lang="de" />
    <file path="extensions_strings_el.xtb" lang="el" />
    <file path="extensions_strings_en-GB.xtb" lang="en-GB" />
    <file path="extensions_strings_es.xtb" lang="es" />
    <file path="extensions_strings_es-419.xtb" lang="es-419" />
    <file path="extensions_strings_et.xtb" lang="et" />
    <file path="extensions_strings_fa.xtb" lang="fa" />
    <file path="extensions_strings_fi.xtb" lang="fi" />
    <file path="extensions_strings_fil.xtb" lang="fil" />
    <file path="extensions_strings_fr.xtb" lang="fr" />
    <file path="extensions_strings_gu.xtb" lang="gu" />
    <file path="extensions_strings_hi.xtb" lang="hi" />
    <file path="extensions_strings_hr.xtb" lang="hr" />
    <file path="extensions_strings_hu.xtb" lang="hu" />
    <file path="extensions_strings_id.xtb" lang="id" />
    <file path="extensions_strings_it.xtb" lang="it" />
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file path="extensions_strings_iw.xtb" lang="he" />
    <file path="extensions_strings_ja.xtb" lang="ja" />
    <file path="extensions_strings_kn.xtb" lang="kn" />
    <file path="extensions_strings_ko.xtb" lang="ko" />
    <file path="extensions_strings_lt.xtb" lang="lt" />
    <file path="extensions_strings_lv.xtb" lang="lv" />
    <file path="extensions_strings_ml.xtb" lang="ml" />
    <file path="extensions_strings_mr.xtb" lang="mr" />
    <file path="extensions_strings_ms.xtb" lang="ms" />
    <file path="extensions_strings_nl.xtb" lang="nl" />
    <file path="extensions_strings_no.xtb" lang="no" />
    <file path="extensions_strings_pl.xtb" lang="pl" />
    <file path="extensions_strings_pt-BR.xtb" lang="pt-BR" />
    <file path="extensions_strings_pt-PT.xtb" lang="pt-PT" />
    <file path="extensions_strings_ro.xtb" lang="ro" />
    <file path="extensions_strings_ru.xtb" lang="ru" />
    <file path="extensions_strings_sk.xtb" lang="sk" />
    <file path="extensions_strings_sl.xtb" lang="sl" />
    <file path="extensions_strings_sr.xtb" lang="sr" />
    <file path="extensions_strings_sv.xtb" lang="sv" />
    <file path="extensions_strings_sw.xtb" lang="sw" />
    <file path="extensions_strings_ta.xtb" lang="ta" />
    <file path="extensions_strings_te.xtb" lang="te" />
    <file path="extensions_strings_th.xtb" lang="th" />
    <file path="extensions_strings_tr.xtb" lang="tr" />
    <file path="extensions_strings_uk.xtb" lang="uk" />
    <file path="extensions_strings_vi.xtb" lang="vi" />
    <file path="extensions_strings_zh-CN.xtb" lang="zh-CN" />
    <file path="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_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_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_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_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_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_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_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_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_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_LOAD_ICON_FAILED" desc="">
        Could not load extension icon '<ph name="ICON">$1<ex>icon.png</ex></ph>'.
      </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_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_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_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_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_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_OUTPUT" desc="Warning displayed in pack dialog when outputing a private key failed.">
        Failed to output 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_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_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_INVALID_FORMAT" desc="Warning displayed in pack dialog when the private key must be a valid format.">
        Input value for private key must be a valid format (PKCS#8-format PEM-encoded RSA key).
      </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_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>
      <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>

      <!-- 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. <ph name="ADMIN_INFO">$3<ex>To request an exception visit https://example.com/exception</ex></ph>
      </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_SINGLE_SELECTION" desc="Instructions asking the user to select one device for use with an app.">
        "<ph name="APP_NAME">$1<ex>Chrome Dev Editor</ex></ph>" is requesting access to one of your devices:
      </message>
      <message name="IDS_DEVICE_PERMISSIONS_PROMPT_MULTIPLE_SELECTION" desc="Instructions asking the user to select one or more devices for use with an app.">
        "<ph name="APP_NAME">$1<ex>Chrome Dev Editor</ex></ph>" is requesting access to one or more of your devices:
      </message>
      <message name="IDS_CAMERA_FACING_USER" desc="Camera that faces the user. Aka. front camera.">
        User-facing
      </message>
      <message name="IDS_CAMERA_FACING_ENVIRONMENT" desc="Camera that faces environment. Aka. back camera.">
        Environment-facing
      </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>

      <!-- 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_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_WARNING_RULESET_FAILED_TO_LOAD" desc="Warning message which indicates that the Declarative Net Request ruleset for the extension failed to load. Hence the extension might not be able to block/redirect network requests.">
        The extension failed to load properly. It might not be able to intercept network requests.
      </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>
      <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>
      <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>
    </messages>
  </release>
</grit>
