<?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. If you update this file, be sure also to update
chromium_strings.grd. -->

<grit base_dir="." latest_public_release="0" current_release="1"
      output_all_resource_defines="false" 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" />
    <output filename="google_chrome_strings_es-419.pak" type="data_package" lang="es-419" />
    <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" />
    <output filename="google_chrome_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
    <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">
      <!-- Settings specific strings -->
      <if expr="not is_android">
        <part file="settings_google_chrome_strings.grdp" />
      </if>

      <message name="IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TEXT" desc="Message explaining to the user what will happen if they disconnect the managed profile.">
        Disconnecting <ph name="USERNAME">$1<ex>someone@example.com</ex></ph> will clear your history, bookmarks, settings, and other Chrome data stored on this device. Data stored in your Google Account will not be cleared and can be managed on <ph name="GOOGLE_DASHBOARD_LINK">&lt;a target="_blank" href="$2"&gt;</ph>Google Dashboard<ph name="END_GOOGLE_DASHBOARD_LINK">&lt;/a&gt;</ph>.
      </message>
      <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>
      <if expr="is_win">
        <message name="IDS_SXS_SHORTCUT_NAME" desc="The Chrome shortcut name for canary channel">
          Google Chrome Canary
        </message>
        <message name="IDS_SHORTCUT_NAME_BETA" desc="The Chrome shortcut name for beta channel">
          Google Chrome Beta
        </message>
        <message name="IDS_SHORTCUT_NAME_DEV" desc="The Chrome shortcut name for dev channel">
          Google Chrome Dev
        </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>
      </if>
      <if expr="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>
      <message name="IDS_SHORT_PRODUCT_LOGO_ALT_TEXT" desc="Alt text for the Chrome logo image.">
        Chrome logo
      </message>
      <if expr="is_win">
        <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_BOOKMARK_SYNC_PROMO_LINK" desc="Text of the link to sign in from the bookmark sync promo.">
        sign in to Chrome
      </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_UMA_OPTIN" desc="Text besides the checkbox to let users optin to UMA in the restore from previous crash bubble.">
        Help make Google Chrome better by sending crash reports and <ph name="UMA_LINK">$1<ex>usage statistics</ex></ph> to Google
      </message>
      <if expr="not chromeos">
        <!-- 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>
      <if expr="chromeos">
        <!-- Browser Window Title Format -->
        <message name="IDS_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for titles displayed in tabbed browser windows">
          Chrome - <ph name="PAGE_TITLE">$1<ex>Google</ex></ph>
        </message>
      </if>
      <if expr="not 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="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 <ph name="YEAR">{0,date,y}<ex>2016</ex></ph> Google Inc. All rights reserved.
      </message>
      <if expr="chromeos">
        <message name="IDS_ABOUT_VERSION_LICENSE_EULA" desc="The label below the copyright message, containing the URLs.">
          Chrome open source licenses
        </message>
        <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>
        <message name="IDS_ABOUT_CROS_VERSION_LICENSE_EULA"  desc="Additional text displayed beneath the Chromium open source URLs for Chrome OS.">
          Chrome OS open source licenses
        </message>
        <message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box.">
          Google Chrome OS <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>
      </if>
      <if expr="not chromeos">
        <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>
      </if>
      <if expr="is_macosx">
        <message name="IDS_MAC_10_9_OBSOLETE_NOW" desc="A message displayed on an at-launch infobar and About (Help) page warning the user that the OS version they are using is no longer supported.">
          This computer will no longer receive Google Chrome updates because Mac OS X 10.9 is no longer supported.
        </message>
      </if>
      <if expr="is_win">
        <message name="IDS_WIN_XP_VISTA_OBSOLETE" desc="A message displayed on an at-launch infobar and about:help warning the user that the computer they are using is no longer supported.">
          This computer will no longer receive Google Chrome updates because Windows XP and Windows Vista are no longer supported
        </message>
      </if>
      <message name="IDS_ACCNAME_APP" desc="The accessible name for the app menu.">
        Chrome
      </message>
      <!-- Hung Browser Detector -->
      <if expr="is_win">
        <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>
      </if>
      <!-- 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_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 title of the Google Chrome uninstall dialog.">
          Uninstall Google Chrome
        </message>
      </if>
      <message name="IDS_FR_CUSTOMIZE_DEFAULT_BROWSER" desc="Default browser checkbox label">
        Make Google Chrome the default browser
      </message>
      <if expr="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="not chromeos">
        <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="chromeos">
        <message name="IDS_EXTERNAL_PROTOCOL_TITLE" desc="External Protocol Dialog Title">
          Google Chrome OS can't open this page.
        </message>
      </if>
      <if expr="not 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="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="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 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;a is="action-link" role="button" id="gpu-mode-reset-restart-button" class="standalone-action-link"&gt;</ph>restart<ph name="END_BUTTON">&lt;/a&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>
      <if expr="chromeos">
        <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 diagnostic and usage data to Google.
        </message>
      </if>
      <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>
      <if expr="is_win">
        <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>
      <!-- Password generation strings -->
      <message name="IDS_PASSWORD_GENERATION_PROMPT" desc="Autofill dropdown text describing password generation. The link text is a separate string in the translation console and appears here as placeholder text.">
        Chrome will save this password with <ph name="SAVED_PASSWORD_LINK">$1<ex>Google Smart Lock</ex></ph>. You don’t have to remember it.
      </message>
      <message name="IDS_PASSWORD_GENERATION_SUGGESTION" desc="Text shown next to a generated password describing it as a suggestion.">
        Use a strong password generated by Chrome
      </message>
      <message name="IDS_PASSWORD_MANAGER_TITLE_BRAND" desc="The product name used in the title of the password bubble.">
        Google Chrome
      </message>
      <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>
      <if expr="is_win">
        <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. Type your Windows password to allow this.
        </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_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_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 7 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_SINGLETON_ACQUISITION_FAILED" desc="Error displayed when the installer cannot run because another installer is already running.">
          Another operation on Google Chrome is in progress. Please try again later.
        </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_EXISTING_VERSION_LAUNCHED" desc="A message shown to users who try to install Chrome in their user profile directory when their computer already has Chrome installed for all users. In this case, the installer silently launches the existing version of Chrome for all users rather than installing a second version of Chrome.">
          Google Chrome is already installed for all users on your computer.
        </message>
      </if>
      <!-- Options Dialog -->
      <if expr="is_win">
        <message name="IDS_SHORTCUT_TOOLTIP" desc="Text for the hover-on tooltip for the Google Chrome shortcuts.">
          Access the Internet
        </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>
      </if>
      <message name="IDS_DEFAULT_BROWSER_INFOBAR_TEXT" desc="Text to show in an infobar when Google Chrome is not the current default browser.">
        Google Chrome isn't your default browser.
      </message>
      <if expr="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>
      <if expr="is_win">
        <!-- 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>
        <!-- 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>
      </if>

      <!-- 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> may be dangerous, 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 dangerous, so 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 dangerous, so Chrome has blocked it.
      </message>
      <message name="IDS_BLOCK_REASON_DANGEROUS_DOWNLOAD"
         desc="Message shown to the user on chrome://downloads page to explain that this download is blocked because it is malware.">
        This file is dangerous, so Chrome has blocked it.
      </message>
      <message name="IDS_BLOCK_REASON_UNWANTED_DOWNLOAD"
         desc="Message shown to the user on chrome://downloads page to explain that this download is blocked because it is unwanted sofware.">
        This file may be dangerous, so Chrome has blocked it.
      </message>

      <!-- Remove in-progress downloads confirmation dialog -->
      <message name="IDS_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when one or more downloads are in progress. [ICU Syntax]">
      {NUM_DOWNLOAD, plural,
        =1 {A download is currently in progress. Do you want to cancel the download and exit Google Chrome?}
        other {# downloads are currently in progress. Do you want to cancel the downloads and exit Google Chrome?}}
      </message>

      <!-- Quit all apps confirmation dialog -->
      <if expr="is_macosx">
        <message name="IDS_QUIT_WITH_APPS_TITLE" desc="Title for a notification explaining that Chrome is running in the background.">
          Google Chrome is in background mode.
        </message>
      </if>

      <!-- 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 Chrome page -->
      <if expr="not 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="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="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 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="chromeos">
        <message name="IDS_UPGRADE_UP_TO_DATE" desc="Status label: Already up to date (Chrome OS)">
          Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> is up to date.
        </message>
      </if>
      <if expr="not chromeos">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Google Chrome">
          Updating Google Chrome...
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chrome OS">
          Updating your device...
        </message>
      </if>
      <if expr="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>

      <!-- 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 -->
      <if expr="enable_extensions">
        <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>
        <message name="IDS_EXTENSION_INSTALLED_SYNC_PROMO_LINK_NEW" desc="Text of the link to sign in to Chrome from the extension installed bubble. This will be converted to a link, with additional text around it.">
          sign in to Chrome
        </message>
        <message name="IDS_EXTENSION_INSTALLED_SIGNIN_PROMO_LINK" desc="The first part of the sign-in promo paragraph. This part will be converted to a link and will get more text appended to it (see IDS_EXTENSION_INSTALLED_SIGNIN_PROMO). Keep this text short.">
          Sign in to Chrome
        </message>

        <!-- Extension context menu -->
        <if expr="not use_titlecase">
          <message name="IDS_EXTENSIONS_HIDE_BUTTON_IN_MENU" desc="The extension context menu item to hide the button in the application menu (sentence case).">
            Hide in Chrome menu
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_EXTENSIONS_HIDE_BUTTON_IN_MENU" desc="The extension context menu item to hide the button in the application menu (title case).">
            Hide in Chrome Menu
          </message>
        </if>
      </if>

      <!-- settings reset bubble messages -->
      <message name="IDS_REPORT_BUBBLE_TEXT" desc="Text for the settings reset bubble reporting checkbox.">
        Help make Google Chrome better by reporting the current settings
      </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.">
        Warning: 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>
      <message name="IDS_MD_EXTENSIONS_SHORTCUT_SCOPE_IN_CHROME" desc="The label to indicate that a shortcut will be triggerable only from within the Chrome application.">
        In Chrome
      </message>

      <if expr="enable_extensions">
        <message name="IDS_EXTENSIONS_MULTIPLE_UNSUPPORTED_DISABLED_BODY" desc="Body of the dialog shown when multiple unsupported extensions have been disabled.">
          To make Chrome safer, we disabled some extensions that aren't listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE">$1<ex>Chrome Web Store</ex></ph> and may have been added without your knowledge.
        </message>
        <message name="IDS_EXTENSIONS_SINGLE_UNSUPPORTED_DISABLED_BODY" desc="Body of the dialog shown when a single unsupported extension has been disabled.">
          To make Chrome safer, we disabled the following extension that isn't listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE">$1<ex>Chrome Web Store</ex></ph> and may have been added without your knowledge.
        </message>
      </if>

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

      <message name="IDS_OPEN_IN_CHROME" desc="The text label of the Open in Chrome menu item for the Hosted App app menu">
        &amp;Open in Chrome
      </message>

      <if expr="use_titlecase and not 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 use_titlecase and not 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="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>

      <!-- Chrome sign-in page -->
      <message name="IDS_CHROME_SIGNIN_TITLE" desc="Title on the about:chrome-signin page">
        Chrome
      </message>

      <!-- Tutorial card in the avatar menu bubble -->
      <message name="IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE" desc="The title of the tutorial card in the avatar menu bubble view shown when a user signs in to Chrome.">
        You're now signed in to Chrome
      </message>
      <message name="IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_TITLE" desc="Title of the tutorial card in the avatar menu bubble view that introduces an upgrade user to the new profile management UI.">
        This is your Chrome
      </message>
      <message name="IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_CONTENT_TEXT" desc="The main content of the tutorial card in the avatar menu bubble view that introduces an upgrade user to the new profile management UI.">
        Share a computer? Now you can set up Chrome just the way you like it.
      </message>

      <!-- Account removal view in the avatar menu bubble -->
      <message name="IDS_PROFILES_ACCOUNT_REMOVAL_TEXT" desc="Main text of the account removal view when removing a secondary account.">
        After removing your account from Chrome, you may need to reload your open tabs to take effect.
      </message>
      <message name="IDS_PROFILES_PRIMARY_ACCOUNT_REMOVAL_TEXT" desc="Main text of the account removal view when removing a primary account.">
        You're using <ph name="PROFILE_EMAIL">$1<ex>jessica@gmail.com</ex></ph> to sync your Chrome stuff. To update your sync preference or to use Chrome without a Google account, visit <ph name="SETTINGS_LINK">$2<ex>settings</ex></ph>.
      </message>

      <!-- One click sign-in infobar -->
      <if expr="not chromeos">
        <!-- New one-click sign-in 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_SYNC_DISABLED_MESSAGE" desc="The body of the sign-in 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>
        <message name="IDS_SYNC_USED_PROFILE_ERROR" desc="An error message shown when user tries to sign in to a profile that is used by other user name before.">
          Someone previously signed in to Chrome on this computer as <ph name="ACCOUNT_EMAIL_LAST">$1<ex>user@example.com</ex></ph>. Please create a new Chrome user to keep your information separate.
        </message>
      </if>

      <!-- Enterprise sign-in dialog -->
      <if expr="toolkit_views or is_macosx">
        <message name="IDS_ENTERPRISE_SIGNIN_TITLE" 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" 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" 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>
      </if>

      <if expr="toolkit_views">
        <message name="IDS_ENTERPRISE_FORCE_SIGNOUT_EXPLANATION" desc="Text of the reason to sign out">
          Authentication certificate failed. Please sign in to Google Chrome again as <ph name="USER_NAME">$1<ex>pat@example.com</ex></ph> or contact your administrator for more information. <ph name="ADDITIONAL_EXPLANATION">$2</ph>
        </message>
        <message name="IDS_ENTERPRISE_FORCE_SIGNOUT_EXPLANATION_WITHOUT_USER_NAME" desc="Text of the reason to sign out when there is no valid email address">
          Authentication certificate failed. Please sign in to Google Chrome again or contact your administrator for more information. <ph name="ADDITIONAL_EXPLANATION">$2</ph>
      </message>
      </if>

      <!-- Signin Email Confirmation tab modal dialog -->
      <if expr="not chromeos">
        <message name="IDS_SIGNIN_EMAIL_CONFIRMATION_TITLE" desc="Title of the signin email confirmation tab modal dialog.">
          <ph name="USER_EMAIL_ADDRESS">$1<ex>foo@gmail.com</ex></ph> was previously using Chrome
        </message>
      </if>

      <!-- Chrome Cleanup prompt -->
      <if expr="is_win">
        <message name="IDS_CHROME_CLEANUP_PROMPT_EXPLANATION" desc="Description in the Chrome Cleanup dialog that Chrome browser shows when unwanted software, like ad injectors or software that changes the user's settings without their knowledge, is found on the user's computer. Appears under the title asking 'Remove harmful software?' Actor is Chrome; we are asking, Do you want Chrome to remove harmful software? 'it' is harmful software. User has the option of clicking 'Remove' to proceed with a cleanup, or 'Details' to see more details. Preferrably, the translation for this string should match IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_REMOVE.">
          Chrome found harmful software on your computer. Chrome can remove it and restore your settings to make your browser work normally again.
        </message>
      </if>

      <!-- Sync/sign-in error messages -->
      <if expr="not chromeos">
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sync error bubble view when the user needs to update their sync passphrase.">
          Google Chrome could not sync your data. Please update your Sync passphrase.
        </message>
        <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error bubble view when the user's sign-in credentials are out of date.">
          Google Chrome could not sync your data because your account sign-in details are out of date.
        </message>
        <message name="IDS_SYNC_UNAVAILABLE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error bubble view when sync is not available for their domain.">
          Google Chrome could not sync your data because Sync is not available for your domain.
        </message>
        <message name="IDS_SYNC_OTHER_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error bubble view when there's an error signing in.">
          Google Chrome could not sync your data due to an error signing in.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sync error bubble view when the user needs to update their sync passphrase.">
          Chrome OS could not sync your data. Please update your Sync passphrase.
        </message>
        <message name="IDS_SYNC_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error notification when the user's sign-in credentials are out of date.">
          Chrome OS could not sync your data because your account sign-in details are out of date.
        </message>
        <message name="IDS_SYNC_UNAVAILABLE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error notification when sync is not available for their domain.">
          Chrome OS could not sync your data because Sync is not available for your domain.
        </message>
        <message name="IDS_SYNC_OTHER_SIGN_IN_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sign-in error notification when there's an error signing in.">
          Chrome OS could not sync your data due to an error signing in.
        </message>
      </if>

      <if expr="is_macosx">
        <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 may be saved to your Keychain and accessed or synced by other Chrome users sharing this OS X account.
        </message>
      </if>

      <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 personal details so you don't need to type them again.
      </message>
      <message name="IDS_AUTOFILL_DESCRIBE_LOCAL_COPY" desc="Text label that described a Wallet credit card which has been copied to the local Chrome instance.">
        Copied to Chrome
      </message>

      <!-- Chrome OS keyboard overlay-->
      <if expr="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 Chrome menu
        </message>
      </if>

      <!-- App list -->
      <if expr="enable_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>
        <if expr="is_win or is_macosx">
          <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>
        </if>
        <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 in to Chrome to use apps. This allows Chrome to sync your apps, bookmarks, history, passwords and other settings across devices.
        </message>
        <if expr="not use_titlecase">
          <message name="IDS_APP_LIST_EXTENSIONS_UNINSTALL" desc="Title text for the context menu item of a non-platform-app app list item that removes the app.">
            Remove from Chrome...
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_APP_LIST_EXTENSIONS_UNINSTALL" desc="In Title Case: Title text for the context menu item of a non-platform-app app list item that removes the app.">
            Remove From Chrome...
          </message>
        </if>
      </if>

      <!-- 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>
      <if expr="is_win">
        <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_BETA" desc="Name for the Chrome Apps Start Menu folder name for the Beta channel.">
          Chrome Beta Apps
        </message>
        <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_DEV" desc="Name for the Chrome Apps Start Menu folder name for the Dev channel.">
          Chrome Dev Apps
        </message>
      </if>

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

      <!-- 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 -->
      <if expr="is_linux or is_macosx">
        <message name="IDS_PROFILE_IN_USE_POSIX" 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>
      </if>

      <!-- Mac First-run dialog messages -->
      <if expr="is_macosx">
        <message name="IDS_FIRSTRUN_DLG_MAC_SET_DEFAULT_BROWSER_LABEL" desc="Label for checkbox that sets the default browser">
          Set Google Chrome as your default browser
        </message>
      </if>

      <!-- Material Design User Manager -->
      <if expr="not is_android and not chromeos">
        <!-- Supervised user create confirmation page -->
        <message name="IDS_SUPERVISED_USER_CREATED_TEXT" desc="Informative text for the confirmation dialog that appears after a supervised user has been created.">
          To set which websites <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph> can view, you can configure restrictions and settings by visiting <ph name="BEGIN_LINK_1">&lt;a target="_blank" href="$3"&gt;</ph><ph name="DISPLAY_LINK">$4</ph><ph name="END_LINK_1">&lt;/a&gt;</ph>. If you do not change the default settings, <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph> can browse everything on the web.

To prevent <ph name="NEW_PROFILE_NAME">$1<ex>New User</ex></ph> from accessing your account, make sure you lock your profile when you're not using Chrome. To do this, click your profile name in the upper-right corner of the browser, and select "Exit and childlock."
<ph name="BEGIN_LINK_2">&lt;a target="_blank" href="https://support.google.com/chrome/?p=ui_supervised_users&amp;hl=[GRITLANGCODE]"&gt;</ph>Learn more<ph name="END_LINK_2">&lt;/a&gt;</ph>

Please check your email at <ph name="ACCOUNT_EMAIL">$2<ex>jane.doe@example.com</ex></ph> for further instructions.
        </message>

        <!-- User pod remove sync warning text -->
        <message name="IDS_LOGIN_POD_USER_REMOVE_WARNING_SYNC" desc="Main text shown as a warning when attempting to remove an user.">
          This person's browsing data will be deleted from this device. To recover the data, sign in to Chrome as $2.
        </message>

        <!-- Tutorial -->
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_INTRO_TITLE" desc="Title of the tutorial introduction slide">
          Chrome just got better
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_INTRO_TEXT" desc="Main text of the tutorial introduction slide">
          Now it's easier to use Chrome with your Google Account and on shared computers.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_YOUR_CHROME_TITLE" desc="Title of the personalization slide">
          This is your Chrome
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_YOUR_CHROME_TEXT" desc="Main text of the personalization slide">
          Your web, bookmarks, and other Chrome stuff live here.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_GUEST_TEXT" desc="Main text of the guest user slide">
          Guests can use Chrome without leaving anything behind.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_FRIENDS_TEXT" desc="Main text of the friends and family slide">
          If you share a computer, friends and family can browse separately and set up Chrome just the way they want.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_TEXT" desc="Main text of the tutorial completion slide">
          Click your name to open Chrome and start browsing.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_ADD_USER" desc="Title text for the button that would add a new user">
          Add yourself to Chrome
        </message>
      </if>

      <!-- Settings API bubble -->
      <message name="IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_START_PAGES_SPECIFIC" desc="Text displayed in the Settings API bubble as first line when an extension has changed the start pages, and we are pointing to its icon.">
        This extension has changed what page is shown when you start Chrome.
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_FIRST_LINE_START_PAGES" desc="Text displayed in the Settings API bubble as first line when an extension has changed the start pages, and we are not pointing to its icon.">
        The extension "<ph name="EXTENSION_NAME">$1<ex>AdBlock</ex></ph>" has changed what page is shown when you start Chrome.
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES" desc="Second line in the Settings API bubble. Only shown if the secondary change by the extension was just the start pages. The triple single quotes are needed to preserve the space before and after the sentence which is needed when the language (Chrome is being translated to) uses space as word separator. Please preserve them, unless the language being translated to does not use space as word separator.">
        ''' It also controls what page is shown when you start Chrome. '''
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_AND_HOME" desc="Second line in the Settings API bubble. Only shown if the secondary change by the extension was both the start page and the home page. See IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES for reason for triple quotes.">
        ''' It also controls what page is shown when you start Chrome or click the Home button. '''
      </message>
      <message name="IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_AND_SEARCH" desc="Second line in the Settings API bubble. Only shown if the secondary change by the extension was both the start page and the search engine. See IDS_EXTENSIONS_SETTINGS_API_SECOND_LINE_START_PAGES for reason for triple quotes.">
        ''' It also controls what page is shown when you start Chrome or search from the Omnibox. '''
      </message>

      <!-- Webstore strings -->
      <message name="IDS_WEBSTORE_APP_DESCRIPTION" desc="Description for the WebStore app.">
        Discover great apps, games, extensions and themes for Google Chrome.
      </message>

      <!-- Windows firewall rule strings. -->
      <if expr="is_win">
        <message name="IDS_INBOUND_MDNS_RULE_NAME" desc="The name of the firewall rule allowing inbound mDNS traffic.">
          Google Chrome (mDNS-In)
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_NAME_BETA" desc="The name of the firewall rule allowing inbound mDNS traffic for beta.">
          Google Chrome Beta (mDNS-In)
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_NAME_CANARY" desc="The name of the firewall rule allowing inbound mDNS traffic for canary.">
          Google Chrome Canary (mDNS-In)
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_NAME_DEV" desc="The name of the firewall rule allowing inbound mDNS traffic for dev.">
          Google Chrome Dev (mDNS-In)
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION" desc="The description of the firewall rule allowing inbound mDNS traffic.">
          Inbound rule for Google Chrome to allow mDNS traffic.
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION_BETA" desc="The description of the firewall rule allowing inbound mDNS traffic beta.">
          Inbound rule for Google Chrome Beta to allow mDNS traffic.
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION_CANARY" desc="The description of the firewall rule allowing inbound mDNS traffic canary.">
          Inbound rule for Google Chrome Canary to allow mDNS traffic.
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION_DEV" desc="The description of the firewall rule allowing inbound mDNS traffic dev.">
          Inbound rule for Google Chrome Dev to allow mDNS traffic.
        </message>
      </if>

      <!-- content area context menus. Android does not use it -->
      <if expr="not is_android">
        <message name="IDS_CONTENT_CONTEXT_SPELLING_BUBBLE_TEXT" desc="The text of a bubble that confirms users allows integrating the spelling service of Google to Chrome.">
          Google Chrome can provide smarter spell-checking by sending what you type in the browser to Google servers, allowing you to use the same spell-checking technology used by Google search.
        </message>
        <if expr="not use_titlecase">
          <message name="IDS_CONTENT_CONTEXT_OPENLINKNEWTAB_INAPP" desc="The name of the command to open a link in a newly created browser tab when the user is in an app window">
            Open link in new Chrome &amp;tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD_INAPP" desc="The name of the command to open a link in an incognito browser window when the user is in an app window">
            Open link in Chrome inco&amp;gnito window
          </message>
        </if>
        <if expr="use_titlecase">
          <message name="IDS_CONTENT_CONTEXT_OPENLINKNEWTAB_INAPP" desc="In Title Case: The name of the command to open a link in a newly created browser tab when the user is in an app window">
            Open Link in New Chrome &amp;tab
          </message>
          <message name="IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD_INAPP" desc="In Title Case: The name of the command to open a link in an incognito browser window when the user is in an app window">
            Open Link in Chrome Inco&amp;gnito Window
          </message>
        </if>
      </if>

      <if expr="not is_android">
        <message name="IDS_RESET_PROFILE_SETTINGS_FEEDBACK" desc="Feedback label in the Reset Profile Settings dialog">
          Help make Google Chrome better by reporting the current settings
        </message>
      </if>

      <!-- Update Recommended dialog -->
      <if expr="not chromeos">
        <message name="IDS_UPDATE_RECOMMENDED_DIALOG_TITLE" desc="The window title for the Update Recommended dialog.">
          Relaunch Chrome
        </message>
        <message name="IDS_UPDATE_RECOMMENDED" desc="The main text of the Update Recommended dialog.">
          Chrome is out of date because it hasn't been relaunched in a while. An update is available and will be applied as soon as you relaunch.
        </message>
        <message name="IDS_RELAUNCH_AND_UPDATE" desc="The button in the Update Recommended dialog which updates and relaunches Chrome.">
          Relaunch
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPDATE_RECOMMENDED" desc="The main text of the Update Recommended dialog.">
          Chrome OS needs to be restarted to apply the update.
        </message>
        <message name="IDS_RELAUNCH_AND_UPDATE" desc="The button in the Update Recommended dialog which updates and restarts Chrome OS.">
          Restart
        </message>
      </if>

      <!-- Update bubble -->
      <message name="IDS_REINSTALL_APP" desc="Text for the button the user clicks to reinstall the app.">
        Reinstall Chrome
      </message>
      <if expr="use_titlecase">
        <message name="IDS_UPGRADE_BUBBLE_MENU_ITEM" desc="In Title Case: Text for the Chrome menu option replacing Update required.">
          Chrome is Out of Date
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_UPGRADE_BUBBLE_MENU_ITEM" desc="Text for the Chrome menu option replacing Update required.">
          Chrome is out of date
        </message>
      </if>
      <message name="IDS_UPGRADE_BUBBLE_TITLE" desc="Text for the title of the upgrade bubble view.">
        Can't update Chrome
      </message>
      <message name="IDS_UPGRADE_BUBBLE_TEXT" desc="Text for the upgrade bubble view full description.">
        Chrome couldn't update to the latest version, so you're missing out on new features and security fixes.
      </message>

      <!-- User menu errors -->
      <message name="IDS_SYNC_ERROR_USER_MENU_SUPERVISED_SIGNIN_MESSAGE" desc="Message of the out-of-date signin token error for supervised users in the header of desktop user menu.">
        Your manager must remove and add you back to Chrome.
      </message>
      <message name="IDS_SYNC_ERROR_USER_MENU_UPGRADE_MESSAGE" desc="Message of the out-of-date Chrome client error in the header of desktop user menu.">
        Chrome is out of date
      </message>
      <message name="IDS_SYNC_ERROR_USER_MENU_UPGRADE_BUTTON" desc="Button in the header of desktop user menu that prompts the user to update Chrome to fix the out-of-date Chrome client error.">
        Update Chrome
      </message>

      <!-- Sync errors. Android uses native UI to handle Sync settings -->
      <if expr="not is_android">
        <message name="IDS_SYNC_UPGRADE_CLIENT" desc="Message indicating client needs to be upgraded to the latest version.">
          Update Chrome to start sync
        </message>
        <message name="IDS_SYNC_UPGRADE_CLIENT_LINK_LABEL" desc="Hyperlink text indicating client needs to be upgraded to the latest version.">
          Update Chrome
        </message>
      </if>

      <!-- Upgrade recovery bubble -->
      <message name="IDS_RUN_RECOVERY" desc="Text for the button the user clicks to recover Chrome and its updater.">
        Update Chrome
      </message>
      <message name="IDS_DECLINE_RECOVERY" desc="Text for the button the user clicks to decline recovery request.">
        No, thanks
      </message>
      <message name="IDS_RECOVERY_BUBBLE_TITLE" desc="Text for the title of the chrome recovery bubble view.">
        Chrome is out of date
      </message>
      <message name="IDS_RECOVERY_BUBBLE_TEXT" desc="Text for the chrome recovery bubble view full description.">
        Important security improvements and new features are available in the latest version.
      </message>

      <!-- Critical Notification bubble -->
      <message name="IDS_CRITICAL_NOTIFICATION_HEADLINE" desc="The headline for the critical notification">
        {SECONDS, plural,
         =1 {Google Chrome will restart in 1 second.}
         other {Google Chrome will restart in # seconds.}}
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_HEADLINE_ALTERNATE" desc="The headline for the critical notification when the countdown reaches 0 (will only be seen if an onbeforeunload handler on a web page cancels the shutdown sequence.">
        You should restart Google Chrome now.
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_TEXT" desc="The text of the critical update notification">
        A special security update for Google Chrome was just applied; you should restart now for it to take effect (we'll restore your tabs).
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_RESTART" desc="The restart button label">
        OK - Restart now
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_DISMISS" desc="The dismiss button label">
        Don't restart
      </message>

      <!-- Dialog that asks whether user wants to participate in Safe Browsing Extended Reporting -->
      <message name="IDS_FEEDBACK_SERVICE_DIALOG_TITLE" desc="Title of the dialog asking whether the user wants to upload suspected malicious files for analysis">
        Help make Chrome better
      </message>
      <message name="IDS_FEEDBACK_SERVICE_DIALOG_EXPLANATION" desc="Explanation of the dialog asking whether the user wants to upload suspected malicious files for analysis">
        You can help make Chrome safer and easier to use by automatically reporting details of possible security incidents to Google.
      </message>
      <message name="IDS_FEEDBACK_SERVICE_DIALOG_EXPLANATION_SCOUT" desc="Explanation of the dialog asking whether the user wants to upload some system information and page content for Safe Browsing analysis">
        You can help make Chrome safer and easier to use by automatically sending some system information and page content to Google to help detect dangerous apps and sites.
      </message>

      <!-- Desktop Capture -->
      <message name="IDS_DESKTOP_MEDIA_PICKER_SOURCE_TYPE_TAB" desc="Text for the button on the window picker dialog, clicking which takes one to tab sharing">
        Chrome Tab
      </message>

      <!-- Plugin Placeholders -->
      <if expr="is_linux">
        <message name="IDS_PLUGIN_RESTART_REQUIRED" desc="The placeholder text for a plugin that can't be loaded until the browser is restarted.">
          Restart Chrome to enable <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>
        </message>
      </if>

      <!-- Desktop to iOS promotion -->
      <message name="IDS_PASSWORD_MANAGER_DESKTOP_TO_IOS_PROMO_TEXT" desc="Text for Chrome iOS Promotion appearing in the password bubble after a password is saved.">
        Install Chrome on your phone. We’ll send an SMS to your phone.
      </message>
      <message name="IDS_PASSWORD_MANAGER_DESKTOP_TO_IOS_PROMO_TEXT_WITH_PHONE_NUMBER" desc="Text for Chrome iOS Promotion appearing in the password bubble after a password is saved.">
        Install Chrome on your phone. We’ll send an SMS to your phone: <ph name="PHONE_NUMBER">$1<ex>(650) 123-4567</ex></ph>
      </message>
      <message name="IDS_PASSWORD_MANAGER_DESKTOP_TO_IOS_PROMO_TEXT_V2" desc="Text for Chrome iOS Promotion appearing in the password bubble after a password is saved, this one mentioning explicitly that the SMS will be sent to the recovery phone number.">
        Install Chrome on your phone. We’ll send an SMS to your account recovery phone number.
      </message>
      <message name="IDS_PASSWORD_MANAGER_DESKTOP_TO_IOS_PROMO_TEXT_WITH_PHONE_NUMBER_V2" desc="Text for Chrome iOS Promotion appearing in the password bubble after a password is saved, this one mentioning explicitly that the SMS will be sent to the recovery phone number.">
        Install Chrome on your phone. We’ll send an SMS to your account recovery phone number: <ph name="PHONE_NUMBER">$1<ex>(650) 123-4567</ex></ph>
      </message>
      <message name="IDS_FOOTNOTE_DESKTOP_TO_IOS_PROMO_LINK" desc="Text of the link to get Chrome on the iPhone from the Chrome iOS promotion displayed on the bottom of bubbles.">
        get Chrome on your iPhone
      </message>

      <!-- Runtime permission strings -->
      <if expr="is_android">
        <message name="IDS_INFOBAR_MISSING_CAMERA_PERMISSION_TEXT" desc="Text shown in an infobar when a website has requested access to the camera capabilities, but Chrome is missing the Android camera permission.">
          Chrome needs permission to access your camera for this site.
        </message>
        <message name="IDS_INFOBAR_MISSING_MICROPHONE_PERMISSION_TEXT" desc="Text shown in an infobar when a website has requested access to the microphone capabilities, but Chrome is missing the Android microphone permission.">
          Chrome needs permission to access your microphone for this site.
        </message>
        <message name="IDS_INFOBAR_MISSING_MICROPHONE_CAMERA_PERMISSIONS_TEXT" desc="Text shown in an infobar when a website has requested access to the microphone and camera capabilities, but Chrome is missing the Android microphone and camera permissions.">
          Chrome needs permission to access your camera and microphone for this site.
        </message>
        <message name="IDS_INFOBAR_MISSING_LOCATION_PERMISSION_TEXT" desc="Text shown in an infobar when a website has requested access to the location capabilities, but Chrome is missing the Android location permission.">
          Chrome needs access to your location to share your location with this site.
        </message>
        <message name="IDS_MISSING_STORAGE_PERMISSION_DOWNLOAD_EDUCATION_TEXT" desc="Text shown educating the user that Chrome is missing the Android storage permission, which is required to download files.">
          Chrome needs storage access to download files.
        </message>
      </if>

      <!-- OOM intervention message -->
      <if expr="is_android">
        <message name="IDS_NEAR_OOM_INTERVENTION_MESSAGE" desc="The message stating that the browser intervened to stop the page using too much memory.">
           This page uses too much memory, so Chrome paused it.
        </message>
      </if>

      <!-- OOBE -->
      <if expr="chromeos">
        <message name="IDS_INSTALLING_UPDATE" desc="Label shown on the updates installation screen during OOBE">
          Please wait while Chrome installs the latest system updates.
        </message>
        <message name="IDS_CHECKING_FOR_UPDATE_MSG" desc="Chrome OS OOBE: message shown during checking for update stage.">
          Chrome updates automatically so you always have the freshest version.
        </message>
        <message name="IDS_UPDATE_MSG" desc="Chrome OS OOBE: message shown during update stage.">
          Chrome updates automatically so you always have the freshest version. When this download completes, Chrome will restart and you'll be on your way.
        </message>
        <message name="IDS_EULA_SCREEN_ACCESSIBLE_TITLE" desc="Title to be spoken on opening the OOBE EULA screen">
          Chrome OS terms
        </message>
      </if>

      <!-- Windows 8 Metro mode. -->
      <if expr="is_win">
        <message name="IDS_METRO_FLOW_TAB_TITLE"
                 desc="The dialog window title.">
          Welcome to Chrome
        </message>
        <message name="IDS_METRO_FLOW_TITLE_SHORT"
                 desc="The title at the top of the window guiding user through making Chrome default in Metro.">
          Chrome is almost ready.
        </message>
      </if>

      <!-- Welcome page (chrome://welcome) strings -->
      <if expr="not chromeos">
        <message name="IDS_WELCOME_HEADER" desc="A message which will appear as the header on the Welcome UI if the user has never run Chrome before.">
          Welcome to Chrome
        </message>
        <message name="IDS_WELCOME_HEADER_AFTER_FIRST_RUN" desc="A message which will appear as the header on the Welcome UI if the user has run Chrome before.">
          Take Chrome everywhere
        </message>
        <message name="IDS_DICE_WELCOME_SECOND_HEADER" desc="A second message which will appear as the header on the Welcome UI if the user has never run Chrome before.">
          Web browsing with Google smarts
        </message>
        <message name="IDS_DICE_WELCOME_DECLINE_BUTTON" desc="A button on the welcome page which declines the offer to sign in to Chrome.">
          Not now
        </message>
        <message name="IDS_DICE_WELCOME_DESCRIPTION" desc="A message on the welcome page explaining the purpose of signing in.">
          Sign in for a personalized browsing experience, synced across devices
        </message>
      </if>

      <!-- Windows 10 Welcome page strings -->
      <if expr="is_win">
        <message name="IDS_WIN10_WELCOME_HEADER" desc="A header on the Windows 10 Welcome UI if the user has never run Chrome before.">
          Welcome to Chrome
        </message>
        <message name="IDS_WIN10_WELCOME_HEADER_AFTER_FIRST_RUN" desc="A header on the Windows 10 Welcome UI if the user has run Chrome before.">
          Get to Chrome faster
        </message>
        <message name="IDS_WIN10_WELCOME_MAKE_DEFAULT_SUBHEADING" desc="A subheading on a section which gives instructions on how to make Chrome the default browser.">
          Make Chrome your default browser
        </message>
        <message name="IDS_WIN10_WELCOME_PIN_SUBHEADING" desc="A subheading on a section which gives instructions on how to pin Chrome to the Windows 10 taskbar.">
          Pin Chrome to your taskbar
        </message>
        <message name="IDS_WIN10_WELCOME_SELECT" desc="An instruction asking the user to select Chrome from an external list of apps.">
          Select <ph name="SMALL_PRODUCT_LOGO">&lt;div class="logo-small"&gt;&lt;/div&gt;</ph> <ph name="BEGIN_BOLD">&lt;strong&gt;</ph>Google Chrome<ph name="END_BOLD">&lt;/strong&gt;</ph>
        </message>
        <message name="IDS_WIN10_WELCOME_CLICK_SWITCH_ANYWAY" desc="An instruction asking the user to click on the &quot;Switch anyway&quot; button. It's possible that the button doesn't appear for the user, hence the &quot;if it appears&quot;. The bold portion of this message must match IDS_WIN10_WELCOME_SWITCH_ANYWAY_LABEL.">
          Click <ph name="BEGIN_BOLD">&lt;strong&gt;</ph>Switch anyway<ph name="END_BOLD">&lt;/strong&gt;</ph>, if it appears
        </message>
      </if>
    </messages>
  </release>
</grit>
