<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains definitions of strings that are specific to
Google Chrome. These strings will be translated for each locale that Google
Chrome supports. -->

<grit base_dir="." latest_public_release="0" current_release="1"
      source_lang_id="en" enc_check="möl">
  <outputs>
    <output filename="grit/google_chrome_strings.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="google_chrome_strings_am.pak" type="data_package" lang="am" />
    <output filename="google_chrome_strings_ar.pak" type="data_package" lang="ar" />
    <output filename="google_chrome_strings_bg.pak" type="data_package" lang="bg" />
    <output filename="google_chrome_strings_bn.pak" type="data_package" lang="bn" />
    <output filename="google_chrome_strings_ca.pak" type="data_package" lang="ca" />
    <output filename="google_chrome_strings_cs.pak" type="data_package" lang="cs" />
    <output filename="google_chrome_strings_da.pak" type="data_package" lang="da" />
    <output filename="google_chrome_strings_de.pak" type="data_package" lang="de" />
    <output filename="google_chrome_strings_el.pak" type="data_package" lang="el" />
    <output filename="google_chrome_strings_en-GB.pak" type="data_package" lang="en-GB" />
    <output filename="google_chrome_strings_en-US.pak" type="data_package" lang="en" />
    <output filename="google_chrome_strings_es.pak" type="data_package" lang="es" />
    <if expr="is_ios">
      <!-- iOS uses es-MX for es-419 -->
      <output filename="google_chrome_strings_es-MX.pak" type="data_package" lang="es-419" />
    </if>
    <if expr="not is_ios">
      <output filename="google_chrome_strings_es-419.pak" type="data_package" lang="es-419" />
    </if>
    <output filename="google_chrome_strings_et.pak" type="data_package" lang="et" />
    <output filename="google_chrome_strings_fa.pak" type="data_package" lang="fa" />
    <output filename="google_chrome_strings_fi.pak" type="data_package" lang="fi" />
    <output filename="google_chrome_strings_fil.pak" type="data_package" lang="fil" />
    <output filename="google_chrome_strings_fr.pak" type="data_package" lang="fr" />
    <output filename="google_chrome_strings_gu.pak" type="data_package" lang="gu" />
    <output filename="google_chrome_strings_he.pak" type="data_package" lang="he" />
    <output filename="google_chrome_strings_hi.pak" type="data_package" lang="hi" />
    <output filename="google_chrome_strings_hr.pak" type="data_package" lang="hr" />
    <output filename="google_chrome_strings_hu.pak" type="data_package" lang="hu" />
    <output filename="google_chrome_strings_id.pak" type="data_package" lang="id" />
    <output filename="google_chrome_strings_it.pak" type="data_package" lang="it" />
    <output filename="google_chrome_strings_ja.pak" type="data_package" lang="ja" />
    <output filename="google_chrome_strings_kn.pak" type="data_package" lang="kn" />
    <output filename="google_chrome_strings_ko.pak" type="data_package" lang="ko" />
    <output filename="google_chrome_strings_lt.pak" type="data_package" lang="lt" />
    <output filename="google_chrome_strings_lv.pak" type="data_package" lang="lv" />
    <output filename="google_chrome_strings_ml.pak" type="data_package" lang="ml" />
    <output filename="google_chrome_strings_mr.pak" type="data_package" lang="mr" />
    <output filename="google_chrome_strings_ms.pak" type="data_package" lang="ms" />
    <output filename="google_chrome_strings_nl.pak" type="data_package" lang="nl" />
    <output filename="google_chrome_strings_nb.pak" type="data_package" lang="no" />
    <!-- 'no' for Norwegian Bokmål. It should be 'nb'. -->
    <output filename="google_chrome_strings_pl.pak" type="data_package" lang="pl" />
    <if expr="is_ios">
      <!-- iOS uses pt for pt-BR -->
      <output filename="google_chrome_strings_pt.pak" type="data_package" lang="pt-BR" />
    </if>
    <if expr="not is_ios">
      <output filename="google_chrome_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
    </if>
    <output filename="google_chrome_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
    <output filename="google_chrome_strings_ro.pak" type="data_package" lang="ro" />
    <output filename="google_chrome_strings_ru.pak" type="data_package" lang="ru" />
    <output filename="google_chrome_strings_sk.pak" type="data_package" lang="sk" />
    <output filename="google_chrome_strings_sl.pak" type="data_package" lang="sl" />
    <output filename="google_chrome_strings_sr.pak" type="data_package" lang="sr" />
    <output filename="google_chrome_strings_sv.pak" type="data_package" lang="sv" />
    <output filename="google_chrome_strings_sw.pak" type="data_package" lang="sw" />
    <output filename="google_chrome_strings_ta.pak" type="data_package" lang="ta" />
    <output filename="google_chrome_strings_te.pak" type="data_package" lang="te" />
    <output filename="google_chrome_strings_th.pak" type="data_package" lang="th" />
    <output filename="google_chrome_strings_tr.pak" type="data_package" lang="tr" />
    <output filename="google_chrome_strings_uk.pak" type="data_package" lang="uk" />
    <output filename="google_chrome_strings_vi.pak" type="data_package" lang="vi" />
    <output filename="google_chrome_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
    <output filename="google_chrome_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
    <output filename="google_chrome_strings_fake-bidi.pak" type="data_package" lang="fake-bidi" />
  </outputs>
  <translations>
    <file path="resources/google_chrome_strings_am.xtb" lang="am" />
    <file path="resources/google_chrome_strings_ar.xtb" lang="ar" />
    <file path="resources/google_chrome_strings_bg.xtb" lang="bg" />
    <file path="resources/google_chrome_strings_bn.xtb" lang="bn" />
    <file path="resources/google_chrome_strings_ca.xtb" lang="ca" />
    <file path="resources/google_chrome_strings_cs.xtb" lang="cs" />
    <file path="resources/google_chrome_strings_da.xtb" lang="da" />
    <file path="resources/google_chrome_strings_de.xtb" lang="de" />
    <file path="resources/google_chrome_strings_el.xtb" lang="el" />
    <file path="resources/google_chrome_strings_en-GB.xtb" lang="en-GB" />
    <file path="resources/google_chrome_strings_es.xtb" lang="es" />
    <file path="resources/google_chrome_strings_es-419.xtb" lang="es-419" />
    <file path="resources/google_chrome_strings_et.xtb" lang="et" />
    <file path="resources/google_chrome_strings_fa.xtb" lang="fa" />
    <file path="resources/google_chrome_strings_fi.xtb" lang="fi" />
    <file path="resources/google_chrome_strings_fil.xtb" lang="fil" />
    <file path="resources/google_chrome_strings_fr.xtb" lang="fr" />
    <file path="resources/google_chrome_strings_gu.xtb" lang="gu" />
    <file path="resources/google_chrome_strings_hi.xtb" lang="hi" />
    <file path="resources/google_chrome_strings_hr.xtb" lang="hr" />
    <file path="resources/google_chrome_strings_hu.xtb" lang="hu" />
    <file path="resources/google_chrome_strings_id.xtb" lang="id" />
    <file path="resources/google_chrome_strings_it.xtb" lang="it" />
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file path="resources/google_chrome_strings_iw.xtb" lang="he" />
    <file path="resources/google_chrome_strings_ja.xtb" lang="ja" />
    <file path="resources/google_chrome_strings_kn.xtb" lang="kn" />
    <file path="resources/google_chrome_strings_ko.xtb" lang="ko" />
    <file path="resources/google_chrome_strings_lt.xtb" lang="lt" />
    <file path="resources/google_chrome_strings_lv.xtb" lang="lv" />
    <file path="resources/google_chrome_strings_ml.xtb" lang="ml" />
    <file path="resources/google_chrome_strings_mr.xtb" lang="mr" />
    <file path="resources/google_chrome_strings_ms.xtb" lang="ms" />
    <file path="resources/google_chrome_strings_nl.xtb" lang="nl" />
    <file path="resources/google_chrome_strings_no.xtb" lang="no" />
    <file path="resources/google_chrome_strings_pl.xtb" lang="pl" />
    <file path="resources/google_chrome_strings_pt-BR.xtb" lang="pt-BR" />
    <file path="resources/google_chrome_strings_pt-PT.xtb" lang="pt-PT" />
    <file path="resources/google_chrome_strings_ro.xtb" lang="ro" />
    <file path="resources/google_chrome_strings_ru.xtb" lang="ru" />
    <file path="resources/google_chrome_strings_sk.xtb" lang="sk" />
    <file path="resources/google_chrome_strings_sl.xtb" lang="sl" />
    <file path="resources/google_chrome_strings_sr.xtb" lang="sr" />
    <file path="resources/google_chrome_strings_sv.xtb" lang="sv" />
    <file path="resources/google_chrome_strings_sw.xtb" lang="sw" />
    <file path="resources/google_chrome_strings_ta.xtb" lang="ta" />
    <file path="resources/google_chrome_strings_te.xtb" lang="te" />
    <file path="resources/google_chrome_strings_th.xtb" lang="th" />
    <file path="resources/google_chrome_strings_tr.xtb" lang="tr" />
    <file path="resources/google_chrome_strings_uk.xtb" lang="uk" />
    <file path="resources/google_chrome_strings_vi.xtb" lang="vi" />
    <file path="resources/google_chrome_strings_zh-CN.xtb" lang="zh-CN" />
    <file path="resources/google_chrome_strings_zh-TW.xtb" lang="zh-TW" />
  </translations>
  <release seq="1" allow_pseudo="false">
    <messages fallback_to_english="true">
      <message name="IDS_PRODUCT_NAME" desc="The Chrome application name">
        Google Chrome
      </message>
      <message name="IDS_SHORT_PRODUCT_NAME" desc="The Chrome application short name">
        Chrome
      </message>
      <message name="IDS_SHORT_PRODUCT_NAME_LOWER" desc="The Chrome application short name all lowercase">
        chrome
      </message>
      <message name="IDS_SXS_SHORTCUT_NAME" desc="The Chrome short cut name for SxS channel">
        Google Chrome Canary
      </message>
      <message name="IDS_PRODUCT_DESCRIPTION" desc="Browser description">
        Google Chrome is a web browser that runs webpages and applications with lightning speed. It's fast, stable, and easy to use. Browse the web more safely with malware and phishing protection built into Google Chrome.
      </message>
      <message name="IDS_APP_LAUNCHER_PRODUCT_DESCRIPTION" desc="App Launcher description">
        Google Chrome App Launcher is a standalone platform for Chrome apps.
      </message>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_PRODUCT_OS_NAME" desc="The Chrome OS application name">
          Google Chrome OS
        </message>
        <message name="IDS_SHORT_PRODUCT_OS_NAME" desc="The Chrome OS application short name">
          Chrome OS
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_PRODUCT_FRAME_NAME" desc="The Chrome Frame application name">
          Google Chrome Frame
        </message>
        <message name="IDS_PRODUCT_APP_LAUNCHER_NAME" desc="The Chrome App Launcher application name">
          Google Chrome App Launcher
        </message>
        <message name="IDS_WIN8_INFOBAR_DESKTOP_RESTART_FOR_APP_LIST"
                 desc="Infobar message to restart chrome in desktop mode to display the App Launcher. Aplies to Windows 8 only">
          To use the app launcher, you must relaunch Google Chrome on the desktop.
        </message>
        <message name="IDS_WIN8_INFOBAR_DESKTOP_RESTART_FOR_PACKAGED_APP"
                 desc="Infobar message to restart chrome in desktop mode to launch a Chrome Packaged App. Aplies to Windows 8 only">
          To use Chrome apps, you must relaunch Google Chrome on the desktop.
        </message>
        <message name="IDS_WIN8_INFOBAR_DESKTOP_RESTART_TO_LAUNCH_APPS_YES_BUTTON"
             desc="Infobar button 'yes' text to confirm that the user does wish to switch to desktop mode to use Chrome Apps">
          Relaunch Chrome
        </message>
        <message name="IDS_PRODUCT_BINARIES_NAME" desc="The Chrome Binaries application name">
          Google Chrome Binaries
        </message>
        <message name="IDS_VERSIONMISMATCH_HEADER">
          Chrome Frame Update.
        </message>
        <message name="IDS_VERSIONMISMATCH">
          Chrome Frame has been updated. Please relaunch your browser. Chrome version: <ph name="TODO_0001">%ls<ex>TODO</ex></ph>, Chrome Frame version: <ph name="TODO_0002">%ls<ex>TODO</ex></ph>
        </message>
        <message name="IDS_VERSIONUNKNOWN">
          Unknown version.
        </message>
        <message name="IDS_CHROME_FRAME_MENU_ABOUT" desc="About Chrome Frame label">
          About Chrome Frame...
        </message>
        <message name="IDS_CHROME_FRAME_READY_MODE_LEARN_MORE_URL" desc="Link to knowledge-base article about Chrome Frame Ready Mode">
          http://www.google.com/support/chrome/bin/answer.py?hl=[GRITLANGCODE]&amp;answer=161796
        </message>
        <message name="IDS_CHROME_FRAME_TURNDOWN_LEARN_MORE_URL" desc="Link to knowledge-base article about Chrome Frame turndown">
          http://support.google.com/chrome/?p=ib_chromeframe
        </message>
        <message name="IDS_CHROME_FRAME_TURNDOWN_TEXT_IE_OLDER" desc="Text of Chrome Frame turndown prompt for IE 6, 7, and 8">
          This site is using the Chrome Frame plug-in which will soon be unsupported. Please uninstall it and upgrade to a modern browser.
        </message>
        <message name="IDS_CHROME_FRAME_TURNDOWN_TEXT_IE_NEWER" desc="Text of Chrome Frame turndown prompt for IE 9 and 10">
          This site is using the Chrome Frame plug-in that will soon be unsupported. Please uninstall it and download a compatible browser.
        </message>
        <message name="IDS_SHORTCUT_NEW_WINDOW" desc="The text label of the New window shortcut context menu entry as of Windows 8">
          New window
        </message>
      </if>
      <message name="IDS_CERT_ERROR_COMMON_NAME_INVALID_EXTRA_INFO_2" desc="2nd paragraph of extra information for an unsafe common name in an X509 certificate">
        In this case, the address listed in the certificate does not match the address of the website your browser tried to go to. One possible reason for this is that your communications are being intercepted by an attacker who is presenting a certificate for a different website, which would cause a mismatch. Another possible reason is that the server is set up to return the same certificate for multiple websites, including the one you are attempting to visit, even though that certificate is not valid for all of those websites. Google Chrome can say for sure that you reached &lt;strong&gt;<ph name="DOMAIN2">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but cannot verify that that is the same site as &lt;strong&gt;<ph name="DOMAIN">$2<ex>www.paypal.com</ex></ph>&lt;/strong&gt; which you intended to reach. If you proceed, Chrome will not check for any further name mismatches.
      </message>
      <message name="IDS_CERT_ERROR_EXPIRED_DETAILS" desc="Details for an expired X509 certificate">
        You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented an expired certificate. No information is available to indicate whether that certificate has been compromised since its expiration. This means Google Chrome cannot guarantee that you are communicating with &lt;strong&gt;<ph name="DOMAIN2">$2<ex>paypal.com</ex></ph>&lt;/strong&gt; and not an attacker. Your computer's clock is currently set to <ph name="CURRENT_TIME">$3<ex>Monday, July 18th, 2012 12:31PM</ex></ph>. Does that look right? If not, you should correct the error and refresh this page.
      </message>
      <message name="IDS_CERT_ERROR_NOT_YET_VALID_DETAILS" desc="Details for an X509 certificate that is not yet valid">
        You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented a certificate that is not yet valid. No information is available to indicate whether that certificate can be trusted. Google Chrome cannot reliably guarantee that you are communicating with &lt;strong&gt;<ph name="DOMAIN2">$2<ex>paypal.com</ex></ph>&lt;/strong&gt; and not an attacker. Your computer's clock is currently set to <ph name="CURRENT_TIME">$3<ex>Monday, July 18th, 2012 12:31PM</ex></ph>. Does that look right? If not, you should correct your system's clock and then refresh this page.
      </message>
      <if expr="is_ios">
        <message name="IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS" desc="Details for an X509 certificate with an invalid authority">
          You attempted to reach &lt;strong&gt;<ph
name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented a certificate issued by an entity that is not trusted by Google Chrome. This may mean that the server has generated its own security credentials, which Chrome cannot rely on for identity information, or an attacker may be trying to intercept your communications.
        </message>
      </if>
      <if expr="not is_ios">
        <message name="IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS" desc="Details for an X509 certificate with an invalid authority">
          You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the server presented a certificate issued by an entity that is not trusted by your computer's operating system. This may mean that the server has generated its own security credentials, which Chrome cannot rely on for identity information, or an attacker may be trying to intercept your communications.
        </message>
      </if>
      <message name="IDS_CERT_ERROR_CONTAINS_ERRORS_DETAILS" desc="Details of the error page for an X509 certificate that contains errors">
        You attempted to reach &lt;strong&gt;<ph name="DOMAIN">$1<ex>paypal.com</ex></ph>&lt;/strong&gt;, but the certificate that the server presented contains errors. Google Chrome cannot use a certificate with errors and cannot validate the identity of the site that you have attempted to connect to.
      </message>
      <message name="IDS_TASK_MANAGER_TITLE" desc="The title of the Task Manager window">
        Task Manager - Google Chrome
      </message>
      <message name="IDS_SESSION_CRASHED_VIEW_MESSAGE" desc="Message shown when the last session didn't exit cleanly.">
        Google Chrome didn't shut down correctly. To reopen the pages you had open, click Restore.
      </message>
      <!-- Browser Window Title Format -->
      <message name="IDS_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for titles displayed in tabs and popup windows">
        <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - Google Chrome
      </message>
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_GET_HELP_USING_CHROME" desc="Text of the button which takes the user to the Chrome help page.">
          Get help with using Chrome
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_GET_HELP_USING_CHROME" desc="Text of the button which takes the user to the Chrome help page.">
          Get help with using Chrome OS
        </message>
      </if>
      <message name="IDS_ABOUT_VERSION_COMPANY_NAME" desc="Company name on the about pages">
        Google Inc.
      </message>
      <message name="IDS_ABOUT_VERSION_COPYRIGHT" desc="Copyright information on the about pages">
        Copyright 2013 Google Inc. All rights reserved.
      </message>
      <message name="IDS_ABOUT_VERSION_LICENSE" desc="The label below the copyright message, containing the URLs.">
        Google Chrome is made possible by the <ph name="BEGIN_LINK_CHROMIUM">&lt;a target="_blank" href="$1"&gt;</ph>Chromium<ph name="END_LINK_CHROMIUM">&lt;/a&gt;</ph> open source project and other <ph name="BEGIN_LINK_OSS">&lt;a target="_blank" href="$2"&gt;</ph>open source software<ph name="END_LINK_OSS">&lt;/a&gt;</ph>.
      </message>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_ABOUT_CROS_VERSION_LICENSE" desc="Additional text displayed beneath the Chromium open source URLs for Chrome OS.">
          Chrome OS is made possible by additional <ph name="BEGIN_LINK_CROS_OSS">&lt;a target="_blank" href="$1"&gt;</ph>open source software<ph name="END_LINK_CROS_OSS">&lt;/a&gt;</ph>.
        </message>
      </if>
      <message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box.">
        Google Chrome <ph name="TERMS_OF_SERVICE_LINK">&lt;a target="_blank" href="$1"&gt;</ph>Terms of Service<ph name="END_TERMS_OF_SERVICE_LINK">&lt;/a&gt;</ph>
      </message>
      <message name="IDS_ACCNAME_APP" desc="The accessible name for the app menu.">
        Chrome
      </message>
      <message name="IDS_ACCNAME_TOOLBAR" desc="The accessible name for the application's toolbar.">
        Google Chrome Toolbar
      </message>
      <!-- Hung Browser Detector -->
      <message name="IDS_BROWSER_HUNGBROWSER_MESSAGE" desc="Content of the dialog box shown when the browser is hung">
        Google Chrome is unresponsive. Relaunch now?
      </message>
      <message name="IDS_IMPORT_PROGRESS_INFO" desc="Explanatory text for the importing progress dialog">
        Google Chrome is now importing the following items from <ph name="BROWSER_COMPONENT">$1<ex>History</ex></ph>:
      </message>
      <message name="IDS_IMPORT_FIND_YOUR_BOOKMARKS" desc="Helpful reminder for where to find imported bookmarks">
        Find your bookmarks in the Chrome menu or on the bookmarks bar.
      </message>
      <message name="IDS_IMPORTER_LOCK_TEXT" desc="The message to be displayed on dialog">
        Sadly, your Mozilla Firefox settings are not available while that browser is running. To import those settings to Google Chrome, save your work and close all Firefox windows. Then click Continue.
      </message>
      <!-- Uninstall messages -->
      <if expr="is_win">
        <message name="IDS_UNINSTALL_CLOSE_APP" desc="Message to user when uninstall detects other app instance running">
          Please close all Google Chrome windows and try again.
        </message>
        <message name="IDS_UNINSTALL_CLOSE_APP_IMMERSIVE" desc="Message to user when uninstall detects other app instance running, possibly in the Windows 8 immersive mode">
          Please close all Google Chrome windows (including those in Windows 8 mode) and try again.
        </message>
      </if>
      <message name="IDS_UNINSTALL_VERIFY" desc="Message to confirm user wants to uninstall">
        Are you sure you want to uninstall Google Chrome?
      </message>
      <message name="IDS_UNINSTALL_CHROME" desc="The text of the shortcut in the Start Menu for uninstalling chrome.">
        Uninstall Google Chrome
      </message>
      <message name="IDS_UNINSTALL_APP_LAUNCHER" desc="The text of the shortcut in the Start Menu for uninstalling App Launcher.">
        Uninstall Google Chrome App Launcher
      </message>
      <message name="IDS_FIRSTRUN_DLG_TITLE" desc="Dialog title for first-run dialog">
        Welcome to Google Chrome
      </message>
      <message name="IDS_FIRSTRUN_DLG_OK" desc="Text for OK button on first-run dialog">
        Start Google Chrome
      </message>
      <message name="IDS_FR_CUSTOMIZE_DEFAULT_BROWSER" desc="Default browser checkbox label">
        Make Google Chrome the default browser
      </message>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE"
                 desc="Title for the hard-coded thumbnail that represents the Google Chrome Welcome page.  This is used on the NTP when there aren't enough thumbnails to show.">
          Get Started with Chrome OS
        </message>
      </if>
      <if expr="is_ios">
        <message name="IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE"
                 desc="Title for the hard-coded thumbnail that represents the Google Chrome Welcome page.  This is used on the NTP when there aren't enough thumbnails to show. [Length: 14em]">
          Welcome
        </message>
      </if>
      <if expr="not pp_ifdef('chromeos') and not is_ios">
        <message name="IDS_NEW_TAB_CHROME_WELCOME_PAGE_TITLE"
                 desc="Title for the hard-coded thumbnail that represents the Google Chrome OS Welcome page. This is used on the NTP when there aren't enough thumbnails to show.">
          Welcome to Google Chrome
        </message>
      </if>
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_EXTERNAL_PROTOCOL_INFORMATION" desc="General information about what Chrome is trying to do when opening this external protocol">
          Google Chrome needs to launch an external application to handle <ph name="SCHEME">$1<ex>acrobat:</ex></ph> links. The link requested is <ph name="PROTOLINK">$2<ex>acrobat:yourpdf</ex></ph>.
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_EXTERNAL_PROTOCOL_INFORMATION" desc="General information about what Chrome is trying to do when opening this external protocol">
          Google ChromeOS does not support launching an external application to handle <ph name="SCHEME">$1<ex>acrobat:</ex></ph> links. The link requested is <ph name="PROTOLINK">$2<ex>acrobat:yourpdf</ex></ph>.
        </message>
      </if>
      <!-- Strings used to warn that an OS is not supported -->
      <message name="IDS_UNSUPPORTED_OS_PRE_WIN_XP" desc="The text used to warn the user that Windows pre-XP is not supported">
        Google Chrome requires Windows XP or later. Some features may not work.
      </message>
      <message name="IDS_UNSUPPORTED_OS" desc="The text used to warn the user that current OS is not supported">
        Google Chrome does not support <ph name="OS_NAME">$1<ex>Windows 2000</ex></ph>.
      </message>
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_OPTIONS_RELAUNCH_REQUIRED" desc="The message displayed for an option that requires a relaunch to take effect. This appears in a message box if an option is changed that requires a relaunch.">
          Please close all Google Chrome windows and relaunch it for this change to take effect.
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_OPTIONS_RELAUNCH_REQUIRED" desc="The message displayed for an option that requires a relaunch to take effect. This appears in a message box if an option is changed that requires a relaunch.">
          Please sign out and sign in again for this change to take effect.
        </message>
      </if>
      <if expr="pp_ifdef('use_titlecase')">
        <message name="IDS_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND" desc="In Title Case: The checkbox in the status tray context menu that controls whether chrome keeps running in the background after the last window is closed">
          Let Google Chrome Run In The Background
        </message>
      </if>
      <if expr="not pp_ifdef('use_titlecase')">
        <message name="IDS_STATUS_TRAY_KEEP_CHROME_RUNNING_IN_BACKGROUND" desc="The checkbox in the status tray context menu that controls whether chrome keeps running in the background after the last window is closed">
          Let Google Chrome run in the background
        </message>
      </if>
      <message name="IDS_OPTIONS_SYSTEM_ENABLE_BACKGROUND_MODE" desc="The label of the check-box that enables background mode">
        Continue running background apps when Google Chrome is closed
      </message>
      <message name="IDS_OPTIONS_SYSTEM_ENABLE_HARDWARE_ACCELERATION_MODE" desc="The label of the check-box that enables hardware acceleration mode">
        Use hardware acceleration when available
      </message>
      <message name="IDS_OPTIONS_SYSTEM_ENABLE_HARDWARE_ACCELERATION_MODE_RESTART" desc="The restart string after changing hardware acceleration mode">
        (requires Chrome <ph name="BEGIN_BUTTON">&lt;button id="gpu-mode-reset-restart-button" type="button" class="link-button standalone-link-button"&gt;</ph>restart<ph name="END_BUTTON">&lt;/button&gt;</ph>)
      </message>
      <message name="IDS_CANT_WRITE_USER_DIRECTORY_SUMMARY" desc="Summary of problem displayed in dialog when we can't create a directory for this user.">
Google Chrome cannot read and write to its data directory:

<ph name="USER_DATA_DIRECTORY">$1<ex>C:\Documents and Settings\devint\Local Settings\Application Data\Google\Chrome</ex></ph>
      </message>
      <message name="IDS_EULA_CHECKBOX_ENABLE_LOGGING" desc="The label of the checkbox to enable/disable crash and user metrics logging on EULA screen.">
        Optional: Help make Chrome OS better by automatically sending usage statistics and crash reports to Google.
      </message>
      <message name="IDS_PROFILE_TOO_NEW_ERROR" desc="Error displayed on startup when the profile is from a newer version of the product and can not be read">
Your profile can not be used because it is from a newer version of Google Chrome.

Some features may be unavailable. Please specify a different profile directory or use a newer version of Chrome.
      </message>
      <message name="IDS_PREFERENCES_UNREADABLE_ERROR" desc="Error displayed on startup when user preferences file can not be read">
Your preferences can not be read.

Some features may be unavailable and changes to preferences won't be saved.
      </message>
      <message name="IDS_PREFERENCES_CORRUPT_ERROR" desc="Error displayed on startup when user preferences file can not be read">
Your preferences file is corrupt or invalid.

Google Chrome is unable to recover your settings.
      </message>
      <!-- Crash Recovery Dialog -->
      <message name="IDS_CRASH_RECOVERY_TITLE" desc="Title of dialog shown when the browser crashes.">
        Google Chrome
      </message>
      <message name="IDS_CRASH_RECOVERY_CONTENT" desc="Text content telling the user the browser has crashed.">
        Whoa! Google Chrome has crashed. Relaunch now?
      </message>
      <if expr="not is_android">
        <message name="IDS_PASSWORD_MANAGER_SAVE_PASSWORD_PROMPT" desc="Info bar message to save a password">
          Do you want Google Chrome to save your password?
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_PASSWORD_MANAGER_SAVE_PASSWORD_PROMPT" desc="Mobile: Info bar message to save a password">
          Do you want Google Chrome to save your password for this site?
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_PASSWORDS_PAGE_AUTHENTICATION_PROMPT" desc="Text for the dialog box that prompts the user for their OS account password before revealing plaintext passwords on the password page.">
          Google Chrome is trying to show passwords.
        </message>
      </if>
      <message name="IDS_CANT_WRITE_USER_DIRECTORY_EXIT_BUTTON" desc="Text on button of dialog that closes Chrome if we can't create a directory for this user.">
        Exit Chrome
      </message>
      <message name="IDS_MACHINE_LEVEL_INSTALL_CONFLICT" desc="Error message to display when user tries to run user level Chromium even though machine level Chromium is already installed.">
        An administrator has installed Google Chrome on this system, and it is available for all users. The system-level Google Chrome will replace your user-level installation now.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION" desc="Error displayed when higher version already exists.">
        This computer already has a more recent version of Google Chrome. If the software is not working, please uninstall Google Chrome and try again.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION_APP_LAUNCHER" desc="Error displayed when higher version of the Chrome App Launcher already exists.">
        This computer already has a more recent version of the Google Chrome components. Please use a more recent installer.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION_CF" desc="Error displayed when higher version of Chrome Frame already exists">
        This computer already has a more recent version of Google Chrome Frame. If the software is not working, please uninstall Google Chrome Frame and try again.
      </message>
      <message name="IDS_INSTALL_HIGHER_VERSION_CB_CF" desc="Error displayed when higher version of Chrome and Chrome Frame already exists">
        This computer already has a more recent version of Google Chrome and Google Chrome Frame. If the software is not working, please uninstall both Google Chrome and Google Chrome Frame and try again.
      </message>
      <message name="IDS_INSTALL_SYSTEM_LEVEL_EXISTS" desc="Error displayed during user level install if system level Chrome Frame is already installed.">
        Google Chrome Frame is already installed and available to all users of this computer. If you want to install Google Chrome Frame at the user level, you must first uninstall the system-level version installed by an administrator.
      </message>
      <message name="IDS_INSTALL_FAILED" desc="Error displayed if installation fails due to some unknown error.">
        Installation failed due to unspecified error. If Google Chrome is currently running, please close it and try again.
      </message>
      <message name="IDS_SAME_VERSION_REPAIR_FAILED" desc="Error displayed if installation fails due to Chrome running.">
        Can not install the same Google Chrome version that is currently running. Please close Google Chrome and try again.
      </message>
      <message name="IDS_SAME_VERSION_REPAIR_FAILED_CF" desc="Error displayed if installation fails due to Chrome Frame already running.">
        Can not install the same Google Chrome Frame version that is currently running. Please close Google Chrome Frame and try again.
      </message>
      <message name="IDS_SETUP_PATCH_FAILED" desc="Error message when setup.exe fails to patch itself.">
        Installation failed due to unspecified error. Please download Google Chrome again.
      </message>
      <message name="IDS_INSTALL_OS_NOT_SUPPORTED" desc="Error displayed if OS is not supported">
        Google Chrome requires Windows Vista or Windows XP with SP2 or higher.
      </message>
      <message name="IDS_INSTALL_OS_ERROR" desc="Error displayed when any Windows API call fails and we do not have more specific information.">
        An operating system error occurred during installation. Please download Google Chrome again.
      </message>
      <message name="IDS_INSTALL_TEMP_DIR_FAILED" desc="Error displayed when we fail to create temporary directory during installation.">
        The installer couldn't create a temporary directory. Please check for free disk space and permission to install software.
      </message>
      <message name="IDS_INSTALL_UNCOMPRESSION_FAILED" desc="Error when when we can not uncompress installation archive.">
        The installer failed to uncompress archive. Please download Google Chrome again.
      </message>
      <message name="IDS_INSTALL_INVALID_ARCHIVE" desc="Error displayed when we can not open the installation archive.">
        The installer archive is corrupted or invalid. Please download Google Chrome again.
      </message>
      <message name="IDS_INSTALL_INSUFFICIENT_RIGHTS" desc="Error displayed when a non admin user tries to attempt system level install/uninstall.">
        You do not have appropriate rights for system-level install. Try running the installer again as Administrator.
      </message>
      <message name="IDS_INSTALL_NO_PRODUCTS_TO_UPDATE" desc="Error displayed if the installer is not provided one or more products to install/update.">
        No installation of Google Chrome or Google Chrome Frame found to update.
      </message>
      <message name="IDS_UNINSTALL_COMPLETE" desc="Text displayed on dialog that is shown when uninstall is complete and no reboot is required.">
        Uninstallation complete.
      </message>
      <message name="IDS_INSTALL_DIR_IN_USE" desc="Error during install if Google Chrome version is missing from registry but the installation directory exists and can not be deleted.">
        Google Chrome installation directory seems to be in use. Please reboot your computer and try again.
      </message>
      <message name="IDS_INSTALL_NON_MULTI_INSTALLATION_EXISTS" desc="Error during install if a single-install Google Chrome or Google Chrome Frame is present, thereby preventing the installation of a multi-install Google Chrome or Google Chrome Frame.">
        A conflicting installation of Google Chrome or Google Chrome Frame was found on the system. Please uninstall it and try again.
      </message>
      <message name="IDS_INSTALL_MULTI_INSTALLATION_EXISTS" desc="Error during install if a multi-install Google Chrome or Google Chrome Frame is present, thereby preventing the installation of a single-install Google Chrome or Google Chrome Frame.">
        A conflicting installation of Google Chrome or Google Chrome Frame was found on the system. Please uninstall it and try again.
      </message>
      <message name="IDS_INSTALL_READY_MODE_REQUIRES_CHROME" desc="Chrome Frame in ready mode requires Chrome.">
        Invalid arguments. Google Chrome Frame cannot be installed in ready mode without also installing Google Chrome.
      </message>
      <message name="IDS_INSTALL_INCONSISTENT_UPDATE_POLICY" desc="Error during install if the update policies settings in Group Policy are inconsistent.">
        Google Chrome or Google Chrome Frame cannot be updated due to inconsistent Google Update Group Policy settings. Use the Group Policy Editor to set the update policy override for the Google Chrome Binaries application and try again; see http://goo.gl/uJ9gV for details.
      </message>
      <!-- Options Dialog -->
      <message name="IDS_OPTIONS_IMPROVE_BROWSING_EXPERIENCE" desc="The text in the options panel that describes how we use web services to improve browsing experience.">
        Google Chrome may use web services to improve your browsing experience.
      </message>
      <message name="IDS_IMPORT_BOOKMARKS" desc="Explanatory text for the importing progress dialog when importing a bookmarks.html file from the bookmark manager">
        Google Chrome is now importing Favorites/Bookmarks.
      </message>
      <message name="IDS_OEM_MAIN_SHORTCUT_NAME" desc="Name of the desktop shortcut to start the application for OEM pre-installations.">
        Internet Browser
      </message>
      <message name="IDS_SHORTCUT_TOOLTIP" desc="Text for the hover-on tooltip for the Google Chrome shortcuts.">
        Access the Internet
      </message>
      <message name="IDS_APP_LAUNCHER_SHORTCUT_TOOLTIP" desc="Text for the hover-on tooltip for the App Launcher shortcut.">
        Launch Chrome apps
      </message>
      <message name="IDS_UNINSTALL_DELETE_PROFILE" desc="Text to show user to ask whether to delete all the profile data also during uninstallation.">
        Also delete your browsing data?
      </message>
      <message name="IDS_UNINSTALL_SET_DEFAULT_BROWSER" desc="Text to ask whether to set another browser as default when Chromium is uninstalled.">
        Change default browser to:
      </message>
      <message name="IDS_UNINSTALL_BUTTON_TEXT" desc="Label for uninstall button on Uninstall confirmation dialog.">
        Uninstall
      </message>
      <message name="IDS_DEFAULT_BROWSER_INFOBAR_SHORT_TEXT" desc="More compact text to show in the default browser query infobar.">
        Google Chrome isn't your default browser.
      </message>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_SYNC_OVERVIEW" desc="Chrome OS: The message that appears in the options dialog when sync has not been set up by the user.">
          Set up Sync to save your personalized browser features to the web and access them from Google Chrome on any computer.
        </message>
      </if>
      <!-- Try Chrome Toast Dialog -->
      <message name="IDS_TRY_TOAST_HEADING" desc="Top line of the try-chrome-again dialog">
        There is a new version of Google Chrome available.
      </message>
      <message name="IDS_TRY_TOAST_HEADING2" desc="Top line of the try-chrome-again dialog">
        There's a new version of Google Chrome available, and it's faster than ever.
      </message>
      <message name="IDS_TRY_TOAST_HEADING3" desc="Top line of the try-chrome-again dialog">
        There's a new, safer version of Google Chrome available.
      </message>
      <message name="IDS_TRY_TOAST_HEADING4" desc="Top line of the try-chrome-again dialog">
        Google Chrome has been updated, but you haven't used it for at least 30 days.
      </message>
      <message name="IDS_TRY_TOAST_HEADING_SKYPE" desc="Top line of the try-chrome-again dialog">
        Google Chrome lets you click a phone number on the web and call it with Skype!
      </message>
      <message name="IDS_TRY_TOAST_TRY_OPT" desc="First option radio button on the dialog to try chrome">
        Try it out, it's already installed
      </message>
      <message name="IDS_TRY_TOAST_CANCEL" desc="Try chrome again dialog Cancel button">
        Don't bug me
      </message>
      <message name="IDS_TRY_TOAST_WHY" desc="Text of the url link that explains why this dialog is being shown">
        Why am I seeing this?
      </message>
      <!-- about:conflicts strings -->
      <message name="IDS_CONFLICTS_CHECK_PAGE_TITLE_LONG" desc="The long title on the compatibility page">
        Modules loaded into Google Chrome
      </message>
      <message name="IDS_CONFLICTS_CHECK_WARNING_CONFIRMED" desc="Warning label on the compatibility page">
        This module is known to conflict with Google Chrome.
      </message>
      <message name="IDS_CONFLICTS_CHECK_WARNING_SUSPECTED" desc="Warning label on the compatibility page">
        A module with the same name has been known to conflict with Google Chrome.
      </message>
      <!-- chrome://crashes strings -->
      <message name="IDS_CRASHES_DISABLED_MESSAGE" desc="The explanatory message for chrome://crashes when crash reporting is disabled">
        This page only shows information on your recent crashes if you <ph name="BEGIN_LINK">&lt;a href="https://www.google.com/support/chrome/bin/answer.py?answer=96817"&gt;</ph>enable crash reporting<ph name="END_LINK">&lt;/a&gt;</ph>.
      </message>
      <!-- Page Info bubble -->
      <message name="IDS_PAGE_INFO_INTERNAL_PAGE" desc="Message to display in the page info bubble when the page you are on is a chrome:// page or about:something.">
        You are viewing a secure Google Chrome page.
      </message>
      <!-- Print Preview -->
      <message name="IDS_PRINT_PREVIEW_NO_PLUGIN" desc="Message to display when the PDF viewer is missing.">
        Google Chrome cannot show the print preview when the built-in PDF viewer is missing.
      </message>

      <!-- Download Shelf Items -->
      <message name="IDS_DOWNLOAD_STATUS_CRX_INSTALL_RUNNING"
               desc="Message shown when a CRX has been downloaded and is being unpacked.">
        Adding to Chrome...
      </message>

      <message name="IDS_PROMPT_DOWNLOAD_CHANGES_SETTINGS"
               desc="Message shown on the download shelf when the download is known to change settings in the browser.">
        <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> makes settings changes similar to some malware, so Chrome has blocked it.
      </message>

      <message name="IDS_PROMPT_MALICIOUS_DOWNLOAD_URL"
         desc="Message shown to the user to validate the download when the download url is classified to lead to malware by the safebrowsing database.">
        This file is malicious, and Chrome has blocked it.
      </message>
      <message name="IDS_PROMPT_MALICIOUS_DOWNLOAD_CONTENT"
         desc="Message shown to the user to validate the download when the download content is classified to lead to malware by safebrowsing.">
        <ph name="FILE_NAME">$1<ex>malware.exe</ex></ph> is malicious, and Chrome has blocked it.
      </message>

      <!-- Remove in-progress downloads confirmation dialog -->
      <message name="IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when one download is in progress.">
        A download is currently in progress. Do you want to exit Google Chrome and cancel the download?
      </message>
      <message name="IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when multiple downloads are in progress.">
        Downloads are currently in progress. Do you want to exit Google Chrome and cancel the downloads?
      </message>
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL" desc="Button text for OKing to close the browser when one or more downloads are in progress.">
        Yes, exit Chrome
      </message>

      <!-- "Create application shortcuts" dialog -->
      <if expr="is_posix and not is_macosx and not is_ios">
        <message name="IDS_CREATE_SHORTCUTS_ERROR_LABEL" desc="Contents of the main label in the error dialog box when creating an application shortcut failed for unknown reasons.">
          Google Chrome could not create an application shortcut.
        </message>
      </if>

      <!-- Autolaunch infobar -->
      <message name="IDS_AUTO_LAUNCH_INFOBAR_TEXT" desc="The text to show in the infobar when Chrome was automatically launched on startup">
        Google Chrome is configured to automatically launch when you start your computer.
      </message>

      <!-- about:flags -->
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_FLAGS_RELAUNCH_NOTICE" desc="Notifies the user that he needs to relaunch Chrome. Shown next to a button that says 'Relaunch Now'.">
          Your changes will take effect the next time you relaunch Google Chrome.
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_FLAGS_RELAUNCH_NOTICE" desc="Notifies the user that he needs to restart Chrome OS. Shown next to a button that says 'Restart Now'.">
          Your changes will take effect the next time you restart your device.
        </message>
        <message name="IDS_FLAGS_CHROME_CAPTIVE_PORTAL_DETECTOR" desc="Description for the option of Captive Portal detector.">
          Chrome Captive Portal detector
        </message>
      </if>

      <!-- Obsolete System info bar -->
      <message name="IDS_SYSTEM_OBSOLETE_MESSAGE" desc="Message shown when your OS is no longer supported. This message is followed by a 'Learn more' link.">
         Google Chrome has stopped updating and no longer supports this version of your operating system.
      </message>

      <!-- Google API keys info bar -->
      <message name="IDS_MISSING_GOOGLE_API_KEYS" desc="Message shown when Google API keys are missing. This message is followed by a 'Learn more' link.">
        Google API keys are missing. Some functionality of Google Chrome will be disabled.
      </message>

      <!-- about:memory -->
      <if expr="not is_android">
        <message name="IDS_MEMORY_USAGE_SUMMARY_DESC" desc="Describes the browser summary table in the about memory page, which shows memory usage for Google Chrome and any other active browsers." translateable="false">
Summary of memory used by currently active browsers. For browsers which use multiple processes, memory reflects aggregate memory used across all browser processes.

For Google Chrome, processes used to display diagnostics information (such as this "about:memory") are excluded.
        </message>
      </if>
      <if expr="is_android">
        <message name="IDS_MEMORY_USAGE_SUMMARY_DESC" desc="Describes the browser summary table in the about memory page, which shows memory usage for Google Chrome." translateable="false">
Summary of memory used by Google Chrome. Since Google Chrome uses multiple processes, memory reflects aggregate memory used across all browser processes.

For Google Chrome, processes used to display diagnostics information (such as this "about:memory") are excluded.
        </message>
      </if>

      <!-- About Chrome page -->
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_SUCCESSFUL_RELAUNCH" desc="Status label: Successfully updated Google Chrome">
          Nearly up-to-date! Relaunch Google Chrome to finish updating.
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_SUCCESSFUL_RELAUNCH" desc="Status label: Successfully updated Chrome OS">
          Nearly up-to-date! Restart your device to finish updating.
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH" desc="Status label: Channel was successfully switched on Chrome OS">
          Channel changed. Restart your device to apply changes.
        </message>
      </if>
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UP_TO_DATE" desc="Status label: Already up to date (Google Chrome)">
          Google Chrome is up to date.
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UP_TO_DATE" desc="Status label: Already up to date (Chrome OS)">
          Your device is up to date.
        </message>
      </if>
      <if expr="not pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Google Chrome">
          Updating Google Chrome...
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chrome OS">
          Updating your device...
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_UPGRADE_UPDATING_CHANNEL_SWITCH" desc="Status label: Updating Chrome OS to a specified channel">
          Updating your device to <ph name="CHANNEL_NAME">$1<ex>stable</ex></ph> channel...
        </message>
      </if>

      <!-- iOS Upgrade available info bar-->
      <if expr="is_ios">
        <message name="IDS_UPGRADE_AVAILABLE" desc="Text to inform the user of the presence of a new version of the application">
          Chrome just got better! A new version is available.
        </message>
        <message name="IDS_UPGRADE_AVAILABLE_BUTTON" desc="Diplayed on a button the user can use to upgrade the a more recent version of the application. [Length: 10em]">
          Update
        </message>
      </if>

      <!-- Extension/App install prompt -->
      <message name="IDS_EXTENSION_INLINE_INSTALL_PROMPT_TITLE" desc="Titlebar of the extension or app inline installation prompt window">
        Add to Chrome
      </message>

      <!-- Extension installed bubble -->
      <message name="IDS_EXTENSION_INSTALLED_HEADING" desc="First line in the content area of the extension installed bubble. Instructs that the extension was installed.">
        <ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph> has been added to Chrome.
      </message>

      <!-- chrome://settings/extensions page -->
      <message name="IDS_EXTENSIONS_INCOGNITO_WARNING" desc="Warns the user that Chrome cannot prevent extensions from recording history in incognito mode. Displayed in extensions management UI after an extension is selected to be run in incognito mode.">
        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Warning:<ph name="END_BOLD">&lt;/b&gt;</ph> Google Chrome cannot prevent extensions from recording your browsing history. To disable this extension in incognito mode, unselect this option.
      </message>
      <message name="IDS_EXTENSIONS_UNINSTALL" desc="The link for uninstalling extensions.">
        Remove from Chrome
      </message>

      <!-- Wrench menu -->
      <message name="IDS_APPMENU_TOOLTIP" desc="The tooltip to show for the browser menu">
        Customize and control Google Chrome
      </message>

      <if expr="pp_ifdef('use_titlecase') and not pp_ifdef('chromeos')">
        <message name="IDS_ABOUT" desc="In Title Case: The text label of the About Chrome menu item">
          About &amp;Google Chrome
        </message>
        <message name="IDS_UPDATE_NOW" desc="In Title Case: The text label of the Update Chrome Now menu item">
          Update &amp;Google Chrome
        </message>
      </if>
      <if expr="not pp_ifdef('use_titlecase') and not pp_ifdef('chromeos')">
        <message name="IDS_ABOUT" desc="The text label of the About Chrome menu item">
          About &amp;Google Chrome
        </message>
        <message name="IDS_UPDATE_NOW" desc="The text label of the Update Chrome Now menu item">
          Update &amp;Google Chrome
        </message>
      </if>
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_ABOUT" desc="The text label of the About Chrome OS menu item">
          About &amp;Chrome OS
        </message>
        <message name="IDS_UPDATE_NOW" desc="The text label of the Update Chrome OS Now menu item">
          Update &amp;Chrome OS
        </message>
      </if>

      <if expr="is_macosx">
        <message name="IDS_APP_MENU_PRODUCT_NAME" desc="The application's short name, used for the Mac's application menu, activity monitor, etc. This should be less than 16 characters. Example: Chrome, not Google Chrome.">
          Chrome
        </message>
        <message name="IDS_HELPER_NAME" desc="The helper application's name.  Should contain the Chrome application name (IDS_PRODUCT_NAME). Example: Google Chrome Helper.">
          Google Chrome Helper
        </message>
        <message name="IDS_SHORT_HELPER_NAME" desc="The helper application's short name, used for the Mac's application menu, activity monitor, etc. Example: Chrome Helper, not Google Chrome Helper.">
          Chrome Helper
        </message>
      </if>

      <!-- One click sign in infobar -->
      <if expr="not pp_ifdef('chromeos')">
        <!-- New one-click signin dialog contents for SAML support -->
        <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_TITLE_NEW" desc="The title of the modal dialog window that opens when the user chooses to use one click sign in.">
          You're signed in to Chrome!
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_DIALOG_MESSAGE_NEW" desc="The message of the one click sign in dialog.">
          You're signed in as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Now you can access your bookmarks, history, and other settings on all your signed in devices.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_BUBBLE_MESSAGE" desc="The body of the sync promo NTP bubble.">
          You're now signed in to Chrome! Your bookmarks, history, and other settings will be synced to your Google Account.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_BUBBLE_SYNC_DISABLED_MESSAGE" desc="The body of the signin bubble, when sync has been disabled.">
          You're now signed in to Chrome! Sync is disabled by your administrator.
        </message>
        <message name="IDS_SYNC_WRONG_EMAIL" desc="Message shown when sync setup failed due to the user entering the wrong email address for sign in.">
          You were signed in to Chrome as <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph>. Please use the same account to sign in again.
        </message>
        <message name="IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_MESSAGE" desc="Error message to display when setting up sync for a second time and the user name is different from the previous user name.">
          Someone previously signed in to Chrome on this computer as <ph name="ACCOUNT_EMAIL_LAST">$1<ex>user@example.com</ex></ph>. If that isn't your account, create a new Chrome user to keep your information separate.

Signing in anyway will merge Chrome information like bookmarks, history, and other settings to <ph name="ACCOUNT_EMAIL_NEW">$2<ex>user@example.com</ex></ph>.
        </message>
      </if>

      <!-- Enterprise sign-in profile linking -->
      <message name="IDS_ENTERPRISE_SIGNIN_PROFILE_LINK_DIALOG_TITLE" desc="The title of the dialog to confirm linking the browser profile with the signed-in enterprise account">
        Important information regarding your Chrome data
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_PROFILE_LINK_MESSAGE" desc="The warning message displayed to an enterprise user about to link their profile to their Google account. This message is followed by a 'Learn more' link.">
        You are signing in with a managed account and giving its administrator control over your Google Chrome profile. Your Chrome data, such as your apps, bookmarks, history, passwords, and other settings will become permanently tied to <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>. You will be able to delete this data via the Google Accounts Dashboard, but you will not be able to associate this data with another account.
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_CREATE_NEW_PROFILE_PROMPT" desc="The text of the prompt to create a new profile after signing into an enterprise account">
        If you prefer to keep your existing Chrome data separate, you can create a new Chrome user for <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>.
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_CREATE_NEW_PROFILE_NO" desc="Text of the button to link the current profile with the signed-in enterprise account">
        Link my Chrome data to this account
      </message>

      <!-- Enterprise sign-in dialog (new-style) -->
      <!-- TODO(dconnelly): remove "new-style" once the old dialog is gone. -->
      <message name="IDS_ENTERPRISE_SIGNIN_TITLE_NEW_STYLE" desc="The title of the dialog to confirm linking the browser profile with the signed-in enterprise account">
        Link your Chrome data to this account?
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITHOUT_PROFILE_CREATION_NEW_STYLE" desc="The warning message displayed to an enterprise user about to link their profile to their Google account. This message is followed by a 'Learn more' link.">
        You are signing in with a managed account and giving its administrator control over your Google Chrome profile. Your Chrome data, such as your apps, bookmarks, history, passwords, and other settings will become permanently tied to <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>. You will be able to delete this data via the Google Accounts Dashboard, but you will not be able to associate this data with another account. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph>
      </message>
      <message name="IDS_ENTERPRISE_SIGNIN_EXPLANATION_WITH_PROFILE_CREATION_NEW_STYLE" desc="The warning message displayed to an enterprise user about to link their profile to their Google account. Additionally notifies the user that they can create a new profile instead. This message is followed by a 'Learn more' link.">
        You are signing in with a managed account and giving its administrator control over your Google Chrome profile. Your Chrome data, such as your apps, bookmarks, history, passwords, and other settings will become permanently tied to <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph>. You will be able to delete this data via the Google Accounts Dashboard, but you will not be able to associate this data with another account. You can optionally create a new profile to keep your existing Chrome data separate. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph>
      </message>

      <message name="IDS_OPTIONS_PASSWORDS_MAC_WARNING" desc="The warning for OS X that passwords are shared across profiles in the keychain.">
        On Mac, passwords are saved to your Keychain and may be accessed or synced by other Chrome users sharing this OS X account.
      </message>

      <message name="IDS_AUTOFILL_CC_INFOBAR_TEXT" desc="Text to show in the Autofill credit card request infobar.">
        Do you want Chrome to save this credit card information for completing web forms?
      </message>
      <message name="IDS_AUTOFILL_DIALOG_SAVE_LOCALLY_CHECKBOX" desc="Checkbox that controls whether info the user types into the autofill dialog is saved by chrome.">
        Save details in Chrome
      </message>
      <message name="IDS_AUTOFILL_DIALOG_SAVE_LOCALLY_TOOLTIP" desc="Tooltip which explains function of checkbox that controls whether info the user types into the autofill dialog is saved by chrome.">
        Chrome will securely store your information so you don't need to type it in again, but you will still need to verify your card's security code for future payments.
      </message>
      <message name="IDS_AUTOFILL_NEW_CREDIT_CARD_BUBBLE_TITLE" desc="Title text of the new credit card bubble informing a user their billing information has been saved in chrome.">
        Your billing details have been saved in Chrome.
      </message>
      <message name="IDS_AUTOFILL_WALLET_UPGRADE_CHROME_ERROR" desc="Text explaining that user must upgrade Chrome to use Wallet.">
        You must upgrade Chrome to use Google Wallet [<ph name="ERROR_CODE">$1<ex>54</ex></ph>].
      </message>

      <!-- Network Error Pages -->
      <message name="IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION_BODY" desc="When a page fails to load, sometimes we suggest disabling predicting network actions.  These are details below a header.">
        Go to
        the Chrome menu &gt;
        <ph name="SETTINGS_TITLE">&lt;span jscontent="settingsTitle"&gt;&lt;/span&gt;<ex>Settings</ex></ph>
        &gt;
        <ph name="ADVANCED_TITLE">&lt;span jscontent="advancedTitle"&gt;&lt;/span&gt;<ex>Under the Hood</ex></ph>
        and deselect &quot;<ph name="NO_PREFETCH_DESCRIPTION">&lt;span jscontent="noNetworkPredictionTitle"&gt;&lt;/span&gt;<ex>Predict network actions to improve page load performance</ex></ph>.&quot;
        If this does not resolve the issue, we recommend selecting this option
        again for improved performance.
      </message>
      <message name="IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG_HEADER" desc="When a webpage fails to load, in some cases we suggest reconfiguring the firewall.  This is a header above some details.">
        Allow Chrome to access the network in your firewall or antivirus
        settings.
      </message>
      <if expr="is_macosx">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Mac OSX instructions for disabling use of a proxy server.">
          Go to
          Applications &gt; System Preferences &gt; Network &gt; Advanced &gt; Proxies
          and deselect any proxies that have been selected.
        </message>
      </if>
      <if expr="is_android or is_ios">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Instructions for disabling use of a proxy server (leave empty for Android and iOS).">
        </message>
      </if>
      <if expr="not pp_ifdef('chromeos') and is_posix and not is_macosx and not is_android and not is_ios">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Linux instructions for disabling use of a proxy server.">
          Go to
          the Chrome menu &gt;
          <ph name="SETTINGS_TITLE">&lt;span jscontent="settingsTitle"&gt;&lt;/span&gt;<ex>Settings</ex></ph>
          &gt;
          <ph name="ADVANCED_TITLE">&lt;span jscontent="advancedTitle"&gt;&lt;/span&gt;<ex>Under the Hood</ex></ph>
          &gt;
          <ph name="PROXIES_TITLE">&lt;span jscontent="proxyTitle"&gt;&lt;/span&gt;<ex>Change proxy settings...</ex></ph>
          and make sure your configuration is set to &quot;no proxy&quot; or &quot;direct.&quot;
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_ERRORPAGES_SUGGESTION_PROXY_DISABLE_PLATFORM" desc="Windows instructions for disabling use of a proxy server.">
          Go to
          the Chrome menu &gt;
          <ph name="SETTINGS_TITLE">&lt;span jscontent="settingsTitle"&gt;&lt;/span&gt;<ex>Settings</ex></ph>
          &gt;
          <ph name="ADVANCED_TITLE">&lt;span jscontent="advancedTitle"&gt;&lt;/span&gt;<ex>Under the Hood</ex></ph>
          &gt;
          <ph name="PROXIES_TITLE">&lt;span jscontent="proxyTitle"&gt;&lt;/span&gt;<ex>Change proxy settings...</ex></ph>
          &gt;
          LAN Settings
          and deselect &quot;Use a proxy server for your LAN&quot;.
        </message>
      </if>

      <!-- Chrome OS keyboard overlay-->
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_KEYBOARD_OVERLAY_SHOW_WRENCH_MENU" desc="The text in the keyboard overlay to explain the shortcut that opens the main Chrome menu.">
          Show the Chrome menu
        </message>
      </if>

      <!-- App list -->
      <message name="IDS_APP_LIST_SHORTCUT_NAME" desc="Name for the Chrome App List to appear in the taskbar and in any shortcuts to it.">
        Chrome App Launcher
      </message>
      <message name="IDS_APP_LIST_SHORTCUT_NAME_CANARY" desc="Name for the Chrome App List to appear in the taskbar and in any shortcuts to it for the Canary channel.">
        Chrome App Launcher Canary
      </message>
      <message name="IDS_APP_LIST_SIGNIN_HEADING" desc="Heading for when the launcher needs to sign in.">
        Sign in to Chrome
      </message>
      <message name="IDS_APP_LIST_SIGNIN_TEXT" desc="Text for when the launcher needs to sign in.">
        You need to be signed into Chrome to use apps. This allows Chrome to sync your apps, bookmarks, history, passwords and other settings across devices.
      </message>

      <!-- App shortcuts -->
      <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME" desc="Name for the Chrome Apps Start Menu folder name.">
        Chrome Apps
      </message>
      <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_CANARY" desc="Name for the Chrome Apps Start Menu folder name for the Canary channel.">
        Chrome Canary Apps
      </message>

      <!-- Chrome Conflicts bubble -->
      <if expr="is_win">
        <message name="IDS_OPTIONS_CONFLICTING_MODULE" desc="Shown in a bubble when a conflict has been detected.">
          Software running on your computer is incompatible with Google Chrome.
        </message>
      </if>

      <!-- Chrome OS OOBE Terms of Service screen-->
      <if expr="pp_ifdef('chromeos')">
        <message name="IDS_TERMS_OF_SERVICE_SCREEN_SUBHEADING" desc="Subheading at the top of the Terms of Service screen.">
          <ph name="DOMAIN">$1<ex>example.com</ex></ph> requires that you read and accept the following Terms of Service before using this device. These terms do not expand, modify or limit the Google Chrome OS Terms.
        </message>
      </if>

      <!-- Chrome Notifications center -->
      <if expr="is_win">
        <message name="IDS_MESSAGE_CENTER_BALLOON_TITLE" desc="Title of the first run notification ballon describing the notification center.">
          Chrome Notification Center
        </message>
        <message name="IDS_MESSAGE_CENTER_BALLOON_TEXT" desc="Body text for the the first run notification ballon describing the notification center.">
          You can see all your notifications from Chrome apps, extensions, and websites here.
        </message>
      </if>
      <message name="IDS_MESSAGE_CENTER_TOOLTIP" desc="Tooltip for notification tray icon without unread notifications">
        Chrome - Notifications
      </message>
      <message name="IDS_MESSAGE_CENTER_TOOLTIP_UNREAD" desc="Tooltip for notification tray icon with unread notifications">
        Chrome - Notifications (<ph name="QUANTITY">$1<ex>3</ex></ph> unread)
      </message>

      <!-- MediaStream capture status tray icon -->
      <message name="IDS_MEDIA_STREAM_STATUS_TRAY_TEXT_AUDIO_AND_VIDEO" desc="Tool tip for the capture status tray icon when microphone and camera are being used">
        Google Chrome is using your camera and microphone.
      </message>
      <message name="IDS_MEDIA_STREAM_STATUS_TRAY_TEXT_AUDIO_ONLY" desc="Tool tip for the capture status tray icon when microphone is being used">
        Google Chrome is using your microphone.
      </message>
      <message name="IDS_MEDIA_STREAM_STATUS_TRAY_TEXT_VIDEO_ONLY" desc="Tool tip for the capture status tray icon when camera is being used">
        Google Chrome is using your camera.
      </message>

      <!-- ProcessSingleton -->
      <message name="IDS_PROFILE_IN_USE_LINUX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
        The profile appears to be in use by another Google Chrome process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>).  Chrome has locked the profile so that it doesn't get corrupted.  If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chrome.
      </message>
      <message name="IDS_PROFILE_IN_USE_LINUX_RELAUNCH" desc="Text of button in dialog to delete the profile lock file.">
        Unlock Profile and Relaunch
      </message>

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