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

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