<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains definitions of strings that are distribution specific.
If you update this file, be sure also to update google_chrome_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/chromium_strings.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="chromium_strings_am.pak" type="data_package" lang="am" />
    <output filename="chromium_strings_ar.pak" type="data_package" lang="ar" />
    <output filename="chromium_strings_bg.pak" type="data_package" lang="bg" />
    <output filename="chromium_strings_bn.pak" type="data_package" lang="bn" />
    <output filename="chromium_strings_ca.pak" type="data_package" lang="ca" />
    <output filename="chromium_strings_cs.pak" type="data_package" lang="cs" />
    <output filename="chromium_strings_da.pak" type="data_package" lang="da" />
    <output filename="chromium_strings_de.pak" type="data_package" lang="de" />
    <output filename="chromium_strings_el.pak" type="data_package" lang="el" />
    <output filename="chromium_strings_en-GB.pak" type="data_package" lang="en-GB" />
    <output filename="chromium_strings_en-US.pak" type="data_package" lang="en" />
    <output filename="chromium_strings_es.pak" type="data_package" lang="es" />
    <output filename="chromium_strings_es-419.pak" type="data_package" lang="es-419" />
    <output filename="chromium_strings_et.pak" type="data_package" lang="et" />
    <output filename="chromium_strings_fa.pak" type="data_package" lang="fa" />
    <output filename="chromium_strings_fake-bidi.pak" type="data_package" lang="fake-bidi" />
    <output filename="chromium_strings_fi.pak" type="data_package" lang="fi" />
    <output filename="chromium_strings_fil.pak" type="data_package" lang="fil" />
    <output filename="chromium_strings_fr.pak" type="data_package" lang="fr" />
    <output filename="chromium_strings_gu.pak" type="data_package" lang="gu" />
    <output filename="chromium_strings_he.pak" type="data_package" lang="he" />
    <output filename="chromium_strings_hi.pak" type="data_package" lang="hi" />
    <output filename="chromium_strings_hr.pak" type="data_package" lang="hr" />
    <output filename="chromium_strings_hu.pak" type="data_package" lang="hu" />
    <output filename="chromium_strings_id.pak" type="data_package" lang="id" />
    <output filename="chromium_strings_it.pak" type="data_package" lang="it" />
    <output filename="chromium_strings_ja.pak" type="data_package" lang="ja" />
    <output filename="chromium_strings_kn.pak" type="data_package" lang="kn" />
    <output filename="chromium_strings_ko.pak" type="data_package" lang="ko" />
    <output filename="chromium_strings_lt.pak" type="data_package" lang="lt" />
    <output filename="chromium_strings_lv.pak" type="data_package" lang="lv" />
    <output filename="chromium_strings_ml.pak" type="data_package" lang="ml" />
    <output filename="chromium_strings_mr.pak" type="data_package" lang="mr" />
    <output filename="chromium_strings_ms.pak" type="data_package" lang="ms" />
    <output filename="chromium_strings_nl.pak" type="data_package" lang="nl" />
    <output filename="chromium_strings_nb.pak" type="data_package" lang="no" />
    <!-- 'no' for Norwegian Bokmål. It should be 'nb'. -->
    <output filename="chromium_strings_pl.pak" type="data_package" lang="pl" />
    <output filename="chromium_strings_pt-BR.pak" type="data_package" lang="pt-BR" />
    <output filename="chromium_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
    <output filename="chromium_strings_ro.pak" type="data_package" lang="ro" />
    <output filename="chromium_strings_ru.pak" type="data_package" lang="ru" />
    <output filename="chromium_strings_sk.pak" type="data_package" lang="sk" />
    <output filename="chromium_strings_sl.pak" type="data_package" lang="sl" />
    <output filename="chromium_strings_sr.pak" type="data_package" lang="sr" />
    <output filename="chromium_strings_sv.pak" type="data_package" lang="sv" />
    <output filename="chromium_strings_sw.pak" type="data_package" lang="sw" />
    <output filename="chromium_strings_ta.pak" type="data_package" lang="ta" />
    <output filename="chromium_strings_te.pak" type="data_package" lang="te" />
    <output filename="chromium_strings_th.pak" type="data_package" lang="th" />
    <output filename="chromium_strings_tr.pak" type="data_package" lang="tr" />
    <output filename="chromium_strings_uk.pak" type="data_package" lang="uk" />
    <output filename="chromium_strings_vi.pak" type="data_package" lang="vi" />
    <output filename="chromium_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
    <output filename="chromium_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
  </outputs>
  <translations>
    <file path="resources/chromium_strings_am.xtb" lang="am" />
    <file path="resources/chromium_strings_ar.xtb" lang="ar" />
    <file path="resources/chromium_strings_bg.xtb" lang="bg" />
    <file path="resources/chromium_strings_bn.xtb" lang="bn" />
    <file path="resources/chromium_strings_ca.xtb" lang="ca" />
    <file path="resources/chromium_strings_cs.xtb" lang="cs" />
    <file path="resources/chromium_strings_da.xtb" lang="da" />
    <file path="resources/chromium_strings_de.xtb" lang="de" />
    <file path="resources/chromium_strings_el.xtb" lang="el" />
    <file path="resources/chromium_strings_en-GB.xtb" lang="en-GB" />
    <file path="resources/chromium_strings_es.xtb" lang="es" />
    <file path="resources/chromium_strings_es-419.xtb" lang="es-419" />
    <file path="resources/chromium_strings_et.xtb" lang="et" />
    <file path="resources/chromium_strings_fa.xtb" lang="fa" />
    <file path="resources/chromium_strings_fi.xtb" lang="fi" />
    <file path="resources/chromium_strings_fil.xtb" lang="fil" />
    <file path="resources/chromium_strings_fr.xtb" lang="fr" />
    <file path="resources/chromium_strings_gu.xtb" lang="gu" />
    <file path="resources/chromium_strings_hi.xtb" lang="hi" />
    <file path="resources/chromium_strings_hr.xtb" lang="hr" />
    <file path="resources/chromium_strings_hu.xtb" lang="hu" />
    <file path="resources/chromium_strings_id.xtb" lang="id" />
    <file path="resources/chromium_strings_it.xtb" lang="it" />
    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
    <file path="resources/chromium_strings_iw.xtb" lang="he" />
    <file path="resources/chromium_strings_ja.xtb" lang="ja" />
    <file path="resources/chromium_strings_kn.xtb" lang="kn" />
    <file path="resources/chromium_strings_ko.xtb" lang="ko" />
    <file path="resources/chromium_strings_lt.xtb" lang="lt" />
    <file path="resources/chromium_strings_lv.xtb" lang="lv" />
    <file path="resources/chromium_strings_ml.xtb" lang="ml" />
    <file path="resources/chromium_strings_mr.xtb" lang="mr" />
    <file path="resources/chromium_strings_ms.xtb" lang="ms" />
    <file path="resources/chromium_strings_nl.xtb" lang="nl" />
    <file path="resources/chromium_strings_no.xtb" lang="no" />
    <file path="resources/chromium_strings_pl.xtb" lang="pl" />
    <file path="resources/chromium_strings_pt-BR.xtb" lang="pt-BR" />
    <file path="resources/chromium_strings_pt-PT.xtb" lang="pt-PT" />
    <file path="resources/chromium_strings_ro.xtb" lang="ro" />
    <file path="resources/chromium_strings_ru.xtb" lang="ru" />
    <file path="resources/chromium_strings_sk.xtb" lang="sk" />
    <file path="resources/chromium_strings_sl.xtb" lang="sl" />
    <file path="resources/chromium_strings_sr.xtb" lang="sr" />
    <file path="resources/chromium_strings_sv.xtb" lang="sv" />
    <file path="resources/chromium_strings_sw.xtb" lang="sw" />
    <file path="resources/chromium_strings_ta.xtb" lang="ta" />
    <file path="resources/chromium_strings_te.xtb" lang="te" />
    <file path="resources/chromium_strings_th.xtb" lang="th" />
    <file path="resources/chromium_strings_tr.xtb" lang="tr" />
    <file path="resources/chromium_strings_uk.xtb" lang="uk" />
    <file path="resources/chromium_strings_vi.xtb" lang="vi" />
    <file path="resources/chromium_strings_zh-CN.xtb" lang="zh-CN" />
    <file path="resources/chromium_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_chromium_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 Chromium 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">
        Chromium
      </message>
      <message name="IDS_SHORT_PRODUCT_NAME" desc="The Chrome application short name.">
        Chromium
      </message>
      <if expr="is_win">
        <message name="IDS_SXS_SHORTCUT_NAME" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_SHORTCUT_NAME_BETA" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_SHORTCUT_NAME_DEV" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_PRODUCT_DESCRIPTION" desc="Browser description">
          Chromium 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 Chromium.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_PRODUCT_OS_NAME" desc="The Chrome OS application name">
          Chromium OS
        </message>
        <message name="IDS_SHORT_PRODUCT_OS_NAME" desc="The Chrome OS application short name">
          Chromium OS
        </message>
      </if>
      <message name="IDS_SHORT_PRODUCT_LOGO_ALT_TEXT" desc="Alt text for the Chromium logo image.">
        Chromium logo
      </message>
      <!-- Chrome enterprise logo won't be used in Chromium -->
      <message name="IDS_PRODUCT_LOGO_ENTERPRISE_ALT_TEXT" desc="Alt text for the Chromium Enterprise logo image."/>
      <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 Chromium
      </message>
      <message name="IDS_TASK_MANAGER_TITLE" desc="The title of the Task Manager window">
        Task Manager - Chromium
      </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 Chromium 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> - Chromium
        </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">
          Chromium - <ph name="PAGE_TITLE">$1<ex>Google</ex></ph>
        </message>
      </if>
      <!-- Accessible window title format - includes the channel, and the same
           on all browser platforms rather than different on Chrome OS. -->
      <message name="IDS_ACCESSIBLE_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for the accessible name of a tabbed browser window">
        <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - Chromium
      </message>
      <message name="IDS_ACCESSIBLE_BETA_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for the accessible name of a tabbed browser window for the beta channel version of the browser">
        <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - Chromium Beta
      </message>
      <message name="IDS_ACCESSIBLE_DEV_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for the accessible name of a tabbed browser window for the developer (dev) channel version of the browser">
        <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - Chromium Dev
      </message>
      <message name="IDS_ACCESSIBLE_CANARY_BROWSER_WINDOW_TITLE_FORMAT" desc="The format for the accessible name of a tabbed browser window for the canary (nightly build) channel version of the browser">
        <ph name="PAGE_TITLE">$1<ex>Google</ex></ph> - Chromium Canary
      </message>
      <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 Chromium
        </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 Chromium OS
        </message>
      </if>
      <message name="IDS_ABOUT_VERSION_COMPANY_NAME" desc="Company name on the about pages">
        The Chromium Authors
      </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> The Chromium Authors. All rights reserved.
      </message>
      <if expr="chromeos">
        <message name="IDS_ABOUT_CROS_VERSION_LICENSE" desc="Additional text displayed beneath the Chromium open source URLs for Chrome OS.">
          Chromium 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_WITH_LINUX_VERSION_LICENSE" desc="Additional text displayed beneath the Chromium open source URLs for Chrome OS when Crostini is installed.">
          Chromium 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>, as is <ph name="BEGIN_LINK_LINUX_OSS">&lt;a target="_blank" href="$2"&gt;</ph>Linux (Beta)<ph name="END_LINK_LINUX_OSS">&lt;/a&gt;</ph>.
        </message>
        <message name="IDS_ABOUT_SAFETY_INFORMATION" desc="The safety label in the About box." translateable="false">
          Not used in Chromium. Placeholder to keep resource maps in sync.
        </message>
      </if>
      <message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box." translateable="false">
        Not used in Chromium. Placeholder to keep resource maps in sync. It expects one argument: <ph name="ARGUMENT">$1</ph>.
      </message>
      <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.">
          Chromium may not function correctly because it is no longer supported on Mac OS X 10.9.
        </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.">
          Chromium may not function correctly because it is no longer supported on Windows XP or Windows Vista
        </message>
      </if>
      <message name="IDS_ACCNAME_APP" desc="The accessible name for the app menu.">
        Chromium
      </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">
          Chromium 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 Chromium 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 Chromium?
        </message>
        <message name="IDS_UNINSTALL_CHROME" desc="The title of the Chromium uninstall dialog.">
          Uninstall Chromium
        </message>
      </if>
      <message name="IDS_FR_CUSTOMIZE_DEFAULT_BROWSER" desc="Default browser checkbox label">
        Make Chromium the default browser
      </message>
      <if expr="chromeos">
        <message name="IDS_EXTERNAL_PROTOCOL_TITLE" desc="External Protocol Dialog Title">
          Chromium OS can't open this page.
        </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 Chromium 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 Chromium run in the background
        </message>
      </if>
      <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.">
Chromium 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">
          Optional: Help make Chromium better by automatically sending usage statistics and crash reports 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 Chromium.

Some features may be unavailable. Please specify a different profile directory or use a newer version of Chromium.
      </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.

Chromium 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.">
        Chromium
      </message>
      <if expr="is_win">
        <message name="IDS_CRASH_RECOVERY_CONTENT" desc="Text content telling the user the browser has crashed.">
          Whoa! Chromium has crashed. Relaunch now?
        </message>
      </if>
      <!-- Password generation strings -->
      <message name="IDS_PASSWORD_GENERATION_PROMPT" desc="Autofill dropdown text describing password generation.">
        Chromium will save this password in your Google Account. You won’t have to remember it.
      </message>
      <message name="IDS_PASSWORD_MANAGER_TITLE_BRAND" desc="The product name used in the title of the password bubble.">
        Chromium
      </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.">
          Chromium is trying to show passwords.
        </message>
        <message name="IDS_PASSWORDS_PAGE_EXPORT_AUTHENTICATION_PROMPT" desc="Text for the dialog box that prompts the user for their OS account password before exporting passwords to a file.">
          Chromium wants to export your 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.">
          Chromium is trying to show passwords. Type your Windows password to allow this.
        </message>
        <message name="IDS_PASSWORDS_PAGE_EXPORT_AUTHENTICATION_PROMPT" desc="Text for the dialog box that prompts the user for their OS account password before exporting passwords to a file.">
          Chromium wants to export your 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 Chromium. If the software is not working, please uninstall Chromium 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 Chromium 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 Chromium version that is currently running. Please close Chromium 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 Chromium again.
        </message>
        <message name="IDS_INSTALL_OS_NOT_SUPPORTED" desc="Error displayed if OS is not supported">
          Chromium 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 Chromium 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 Chromium 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 Chromium 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 Chromium 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.">
          Chromium 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 Chromium 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 Chromium is not the current default browser.">
        Chromium 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 Chromium 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 Chromium available.
        </message>
        <message name="IDS_TRY_TOAST_HEADING2" desc="Top line of the try-chrome-again dialog">
          There's a new version of Chromium 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 Chromium available.
        </message>
        <message name="IDS_TRY_TOAST_HEADING4" desc="Top line of the try-chrome-again dialog">
          Chromium 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">
          Chromium lets you click a phone number on the web and call it with Skype!
        </message>
      </if>

      <!-- Print Preview -->
      <message name="IDS_PRINT_PREVIEW_NO_PLUGIN" desc="Message to display when the PDF viewer is missing.">
        Chromium 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 Chromium...
      </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 in a malicious way.">
        <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> may be dangerous, so Chromium has blocked it.
      </message>
      <message name="IDS_PROMPT_DOWNLOAD_CHANGES_SETTINGS_IN_ADVANCED_PROTECTION"
               desc="Message shown on the download shelf when the download is known to change settings in the browser in a malicious way. This variant is shown when the user is enrolled in the Advanced Protection program.">
        <ph name="FILE_NAME">$1<ex>bla.exe</ex></ph> may be dangerous, so Chromium has blocked it. You're defended by Advanced Protection.
      </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 Chromium has blocked it.
      </message>
      <message name="IDS_PROMPT_MALICIOUS_DOWNLOAD_URL_IN_ADVANCED_PROTECTION"
         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 variant is shown when the user is enrolled in this Advanced Protection program.">
        This file is dangerous, so Chromium has blocked it. You're defended by Advanced Protection.
      </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 Chromium has blocked it.
      </message>
      <message name="IDS_PROMPT_MALICIOUS_DOWNLOAD_CONTENT_IN_ADVANCED_PROTECTION"
         desc="Message shown to the user to validate the download when the download content is classified to lead to malware by safebrowsing. This variant is shown when the user is enrolled in the Advanced Protection program.">
        <ph name="FILE_NAME">$1<ex>malware.exe</ex></ph> is dangerous, so Chromium has blocked it. You're defended by Advanced Protection.
      </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 Chromium has blocked it.
      </message>
      <message name="IDS_BLOCK_REASON_DANGEROUS_DOWNLOAD_IN_ADVANCED_PROTECTION"
         desc="Message shown to the user on chrome://downloads page to explain that this download is blocked because it is malware. This variant is shown when the user is enrolled in the Advanced Protection program.">
        This file is dangerous, so Chromium has blocked it. You're defended by Advanced Protection.
      </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 Chromium has blocked it.
      </message>
      <message name="IDS_BLOCK_REASON_UNWANTED_DOWNLOAD_IN_ADVANCED_PROTECTION"
         desc="Message shown to the user on chrome://downloads page to explain that this download is blocked because it is unwanted sofware. This variant is shown when the user is enrolled in the Advanced Protection program.">
        This file may be dangerous, so Chromium has blocked it. You're defended by Advanced Protection.
      </message>

      <!-- Abandon in-progress downloads confirmation dialog -->
      <if expr="not is_macosx">
        <message name="IDS_ABANDON_DOWNLOAD_DIALOG_BROWSER_MESSAGE" desc="Message on a dialog shown when the user closes the browser while one or more downloads are in progress. This string is shown on Windows, Chrome OS, and Linux, which all use 'Exit' to refer to closing a browser.">
          Exit Chromium anyway?
        </message>
      </if>
      <if expr="is_macosx">
        <message name="IDS_ABANDON_DOWNLOAD_DIALOG_BROWSER_MESSAGE" desc="Mac OSX Only: Message on a dialog shown when the user closes the browser while one or more downloads are in progress. This string is shown on Mac OSX only, which uses 'Quit' to refer to closing a browser.">
          Quit Chromium anyway?
        </message>
      </if>

      <!-- 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.">
          Chromium 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 Chromium will be disabled.
      </message>

      <!-- About Chrome page -->
      <if expr="not chromeos">
        <message name="IDS_UPGRADE_SUCCESSFUL_RELAUNCH" desc="Status label: Successfully updated Chromium">
          Nearly up to date! Relaunch Chromium to finish updating.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_SUCCESSFUL_RELAUNCH" desc="Status label: Successfully updated Chromium 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 Chromium 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 (Chromium)">
          Chromium is up to date.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UP_TO_DATE" desc="Status label: Already up to date (Chromium 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 Chromium">
          Updating Chromium...
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UPDATING" desc="Status label: Updating Chromium OS">
          Updating your device...
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_UPGRADE_UPDATING_CHANNEL_SWITCH" desc="Status label: Updating Chromium 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 -->
      <if expr="enable_extensions">
        <!-- Extension installed bubble -->
        <message name="IDS_EXTENSION_INSTALLED_HEADING" desc="Title 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 Chromium
        </message>
        <message name="IDS_EXTENSION_INSTALLED_SYNC_PROMO_LINK_NEW" desc="Text of the link to sign in to Chromium from the extension installed bubble. This will be converted to a link, with additional text around it.">
          sign in to Chromium
        </message>

        <!-- Extension uninstall prompt -->
        <message name="IDS_EXTENSION_UNINSTALL_PROMPT_REMOVE_DATA_CHECKBOX" desc="Checkbox text to ask the user whether they want to remove associated data at uninstall time. Only used when uninstalling an app associated with a particular website.">
          Also clear data from Chromium (<ph name="URL">$1<ex>www.google.com</ex></ph>)
        </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 Chromium 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 Chromium 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 Chromium better by reporting the current settings
      </message>

      <!-- chrome://settings/extensions page -->
      <message name="IDS_EXTENSIONS_INCOGNITO_WARNING" desc="Warns the user that Chromium 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: Chromium 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 Chromium...
      </message>
      <message name="IDS_EXTENSIONS_SHORTCUT_SCOPE_IN_CHROME" desc="The label to indicate that a shortcut will be triggerable only from within the Chrome application.">
        In Chromium
      </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 Chromium 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 Chromium 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>

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

      <message name="IDS_APPMENU_TOOLTIP_UPDATE_AVAILABLE" desc="The tooltip to show for the browser menu when an update is available">
        Customize and control Chromium. Update is available.
      </message>

      <message name="IDS_APPMENU_TOOLTIP_ALERT" desc="The tooltip to show for the browser menu when a non-update alert is displayed">
        Customize and control Chromium. Something needs your attention - click for details.
      </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 Chromium
      </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;Chromium
        </message>
        <message name="IDS_UPDATE_NOW" desc="In Title Case: The text label of the Update Chrome Now menu item">
          Update &amp;Chromium
        </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;Chromium
        </message>
        <message name="IDS_UPDATE_NOW" desc="The text label of the Update Chrome Now menu item">
          Update &amp;Chromium
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_ABOUT" desc="The text label of the About Chrome OS menu item">
          About &amp;Chromium OS
        </message>
        <message name="IDS_UPDATE_NOW" desc="The text label of the Update Chrome OS Now menu item">
          Update &amp;Chromium 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.">
          Chromium
        </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.">
          Chromium 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.">
          Chromium Helper
        </message>
      </if>

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

      <!-- DICE sign-in promo strings -->
      <message name="IDS_PROFILES_DICE_SIGNIN_PROMO" desc="Text describing the benefits of signing in and turning on Sync.">
        Sign in to sync and personalize Chromium across your devices
      </message>
      <message name="IDS_PROFILES_DICE_SYNC_PROMO" desc="Text describing the benefits of turning on Sync.">
        Sync and personalize Chromium across your devices
      </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 Chromium.">
        You're now signed in to Chromium
      </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 Chromium
      </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 Chromium 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 Chromium, 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 Chromium stuff. To update your sync preference or to use Chromium 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 Chromium!
        </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 Chromium! 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 Chromium 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 Chromium 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 Chromium user to keep your information separate.

Signing in anyway will merge Chromium 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 Chromium on this computer as <ph name="ACCOUNT_EMAIL_LAST">$1<ex>user@example.com</ex></ph>. Please create a new Chromium user to keep your information separate.
        </message>
      </if>

      <!-- Enterprise sign-in dialog -->
      <if expr="toolkit_views">
        <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 Chromium 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 Chromium profile. Your Chromium 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 Chromium profile. Your Chromium 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 Chromium data separate. <ph name="LEARN_MORE">$2<ex>Learn more</ex></ph>
        </message>
      </if>

      <!-- about:browser-switch strings -->
      <if expr="is_win or is_macosx or (is_linux and not is_chromeos)">
        <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected">
          Your system administrator has configured Chromium to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>.
        </message>
        <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_KNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is auto-detected">
          Your system administrator has configured Chromium to open <ph name="ALTERNATIVE_BROWSER_NAME">$2<ex>Internet Explorer</ex></ph> to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></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 Chromium
        </message>
      </if>

      <!-- Chrome Cleanup prompt.
           Note: these strings should only be used by Google Chrome, but
                 omitting them brings up a hash collision error. -->
      <if expr="is_win">
        <message name="IDS_CHROME_CLEANUP_PROMPT_EXPLANATION" desc="Description in the Chrome Cleanup dialog that Chromium 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 Chromium; we are asking, Do you want Chromium 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. The description is also shown on the Chrome Cleanup section of the Settings page, under 'Remove harmful software' title. Preferrably, the translation for this string should parallel IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_CURRENTLY_REMOVING.">
          There's harmful software on your computer. Chromium can remove it, restore your settings, and disable extensions 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.">
          Chromium 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.">
          Chromium 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.">
          Chromium 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.">
          Chromium could not sync your data due to an error signing in.
        </message>
      </if>
      <if expr="chromeos">
        <message name="IDS_SIGNIN_ERROR_SECONDARY_ACCOUNT_DISPLAY_SOURCE" desc="Context title shown in the notification header of sign-in error notification for Chromium OS Secondary Accounts.">
          Chromium OS System
        </message>
        <message name="IDS_SYNC_PASSPHRASE_ERROR_BUBBLE_VIEW_MESSAGE" desc="Message in the sync error notification when the user needs to update their sync passphrase.">
          Chromium 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.">
          Chromium 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.">
          Chromium 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.">
          Chromium OS could not sync your data due to an error signing in.
        </message>
      </if>

      <if expr="is_android">
        <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 Chromium
        </message>
      </if>

      <!-- App list -->
      <if expr="enable_app_list">
        <message name="IDS_APP_LIST_SHORTCUT_NAME" desc="Name for the Chromium App List to appear in the taskbar and in any shortcuts to it.">
          Chromium App Launcher
        </message>
        <if expr="is_win or is_macosx">
          <message name="IDS_APP_LIST_SHORTCUT_NAME_CANARY" desc="Name for the Chromium App List to appear in the taskbar and in any shortcuts to it.">
            Chromium App Launcher
          </message>
        </if>
        <message name="IDS_APP_LIST_SIGNIN_HEADING" desc="Heading for when the launcher needs to sign in.">
          Sign in to Chromium
        </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 Chromium to use apps. This allows Chromium 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 Chromium...
          </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 Chromium...
          </message>
        </if>
      </if>

      <!-- App shortcuts -->
      <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME" desc="Name for the Chromium Apps Start Menu folder name.">
        Chromium Apps
      </message>
      <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_CANARY" desc="Name for the Chrome Apps Start Menu folder name.">
        Chromium Apps
      </message>
      <if expr="is_win">
        <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_BETA" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_APP_SHORTCUTS_SUBDIR_NAME_DEV" desc="Unused in Chromium builds" translateable="false">
        </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 Chromium 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">
        Chromium 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">
        Chromium 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">
        Chromium 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 Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium 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 Chromium.
        </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 Chromium 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 Chromium. 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>

        <!-- Supervised users deprecation infobar -->
        <message name="IDS_SUPERVISED_USERS_DEPRECATED_MESSAGE" desc="A message displayed on an at-launch infobar warning supervised users that this feature is deprecated and will be removed.">
          Supervised user profiles will no longer be available starting with Chromium 70.
        </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 Chromium as <ph name="USER_EMAIL">$2<ex>foo@example.com</ex></ph>.
        </message>

        <!-- Tutorial -->
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_INTRO_TITLE" desc="Title of the tutorial introduction slide">
          Chromium 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 Chromium with your Google Account and on shared computers.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_YOUR_CHROME_TITLE" desc="Title of the slide about personalizing the browser">
          This is your Chromium
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_YOUR_CHROME_TEXT" desc="Main text of the slide about personalizing the browser">
          Your web, bookmarks, and other Chromium stuff live here.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_GUEST_TEXT" desc="Main text of the guest user slide">
          Guests can use Chromium 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 Chromium 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 Chromium and start browsing.
        </message>
        <message name="IDS_USER_MANAGER_TUTORIAL_SLIDE_OUTRO_ADD_USER" desc="Text of the add a new user button">
          Add yourself to Chromium
        </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 Chromium.
      </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 Chromium.
      </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 Chromium. '''
      </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 Chromium 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 Chromium 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 Chromium.
      </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.">
          Chromium (mDNS-In)
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_NAME_BETA" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_NAME_CANARY" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_NAME_DEV" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION" desc="The description of the firewall rule allowing inbound mDNS traffic.">
          Inbound rule for Chromium to allow mDNS traffic.
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION_BETA" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION_CANARY" desc="Unused in Chromium builds" translateable="false">
        </message>
        <message name="IDS_INBOUND_MDNS_RULE_DESCRIPTION_DEV" desc="Unused in Chromium builds" translateable="false">
        </message>
      </if>

      <if expr="not is_android">
        <message name="IDS_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_BUBBLE_TEXT" desc="The text of a bubble that confirms users allows integrating the accessibility labels service of Google to Chromium.">
          If an image doesn’t have a useful description, Chromium will try to provide one for you. To create descriptions, images are sent to Google. You can turn this off in settings at any time.
        </message>
        <message name="IDS_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_BUBBLE_TEXT_ONCE" desc="The text of a bubble that confirms users allows integrating the accessibility labels service of Google to Chromium just once.">
          If an image doesn’t have a useful description, Chromium will try to provide one for you. To create descriptions, images are sent to Google.
        </message>
        <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.">
          This uses the same spell checker that's used in Google search. Text you type in the browser is sent to Google. You can always change this behavior in settings.
        </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 Chromium &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 Chromium 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 Chromium &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 Chromium 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 Chromium 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 Chromium
        </message>
        <message name="IDS_UPDATE_RECOMMENDED" desc="The main text of the Update Recommended dialog.">
          A new update for Chromium 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_DIALOG_TITLE" desc="The window title for the Update Recommended dialog.">
          Restart Chromium OS
        </message>
        <message name="IDS_UPDATE_RECOMMENDED" desc="The main text of the Update Recommended dialog.">
          Chromium 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>

      <!-- Cannot update when other instances open dialog -->
      <message name="IDS_UPDATE_OTHER_INSTANCES_SAME_USER_DIALOG_TITLE" desc="The title for the dialog shown when multiple copies of Chromium are running during a requested update.">
        Quit all copies of Chromium.
      </message>
      <message name="IDS_UPDATE_OTHER_INSTANCES_SAME_USER_DIALOG_MESSAGE" desc="The message for the dialog shown when multiple copies of Chromium are running during a requested update.">
        Other copies of Chromium are running. To update, close them.
      </message>
      <message name="IDS_UPDATE_OTHER_INSTANCES_OTHER_USER_AUTHENTICATION_PROMPT" desc="The window title for the other instances dialog.">
        To update, Chromium needs to stop running on this computer. This may cause other users logged into this computer to lose unsaved changes.
      </message>

      <!-- Update bubble -->
      <message name="IDS_REINSTALL_APP" desc="Text for the button the user clicks to reinstall the app.">
        Reinstall Chromium
      </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.">
          Chromium 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.">
          Chromium 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 Chromium
      </message>
      <message name="IDS_UPGRADE_BUBBLE_TEXT" desc="Text for the upgrade bubble view full description.">
        Chromium 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_UPGRADE_MESSAGE" desc="Message of the out-of-date Chrome client error in the header of desktop user menu.">
        Chromium 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 Chromium
      </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 Chromium 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 Chromium
        </message>
      </if>

      <!-- Upgrade recovery bubble -->
      <message name="IDS_RECOVERY_BUBBLE_TITLE" desc="Text for the title of the chrome recovery bubble view.">
        Chromium is out of date
      </message>
      <if expr="use_titlecase">
        <message name="IDS_RUN_RECOVERY" desc="In Title Case: Text for the button the user clicks to recover chromium and its updater.">
          Update Chromium
        </message>
      </if>
      <if expr="not use_titlecase">
        <message name="IDS_RUN_RECOVERY" desc="Text for the button the user clicks to recover chromium and its updater.">
          Update Chromium
        </message>
      </if>
      <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_TITLE" desc="The title for a bubble that appears when there is a critical update and Chromium must restart to install it. It counts down from # seconds and then Chromium automatically restarts.">
        {SECONDS, plural,
         =1 {Chromium will restart in 1 second}
         other {Chromium will restart in # seconds}}
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_TITLE_ALTERNATE" desc="The title for a bubble that appears when there is a critical update and Chromium must restart to install it. The title was previously countng down to an automatic restart and now it has finished. Will only be seen if a web page stops the shutdown process.">
        You should restart Chromium now
      </message>
      <message name="IDS_CRITICAL_NOTIFICATION_TEXT" desc="Explanation text for the bubble that appears when there is a critical update and Chromium must restart to install it.">
        A special security update for Chromium was just applied. Restart now and we'll restore your tabs.
      </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 Chromium 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 Chromium safer and easier to use by automatically reporting details of possible security incidents to Google.
      </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">
        Chromium 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 Chromium 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 Chromium 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 Chromium 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 Chromium 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 Chromium 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 Chromium 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.">
          Chromium 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.">
          Chromium 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.">
          Chromium 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.">
          Chromium 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.">
          Chromium needs storage access to download files
        </message>
      </if>

      <if  expr="is_macosx">
        <message name="IDS_RUNTIME_PERMISSION_OS_REASON_TEXT" desc="Text provided to the macOS permission dialog, explaining why Chrome needs to access a protected resource (e.g., camera, microphone).">
          Once Chromium has access, websites will be able to ask you for access.
        </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 Chromium paused it.
        </message>
      </if>

      <!-- OOM intervention message -->
      <if expr="is_android">
        <message name="IDS_NEAR_OOM_REDUCTION_MESSAGE" desc="The message stating that the browser removed some content of the page using too much memory.">
           This page uses too much memory, so Chromium removed some content.
        </message>
      </if>

      <!-- OOBE -->
      <if expr="chromeos">
        <message name="IDS_INSTALLING_UPDATE" desc="Label shown on the updates installation screen during OOBE">
          Please wait while Chromium installs the latest system updates.
        </message>
        <message name="IDS_CHECKING_FOR_UPDATE_MSG" desc="Chrome OS OOBE: message shown during checking for update stage.">
          Chromium updates automatically so you always have the freshest version.
        </message>
        <message name="IDS_UPDATE_MSG" desc="Chrome OS OOBE: message shown during update stage.">
          Chromium updates automatically so you always have the freshest version. When this download completes, Chromium 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">
          Chromium 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 Chromium
        </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.">
          Chromium is almost ready.
        </message>
      </if>

      <!-- Welcome page (chrome://welcome) strings -->
      <if expr="not chromeos and not is_android">
        <message name="IDS_WELCOME_HEADER" desc="A message which will appear as the header on the Welcome UI if the user has never run Chromium before.">
          Welcome to Chromium
        </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 Chromium before.">
          Take Chromium 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.">
          Sync and personalize Chromium across your 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 Chromium before.">
          Welcome to Chromium
        </message>
        <message name="IDS_WIN10_WELCOME_HEADER_AFTER_FIRST_RUN" desc="A header on the Windows 10 Welcome UI if the user has run Chromium before.">
          Get to Chromium faster
        </message>
        <message name="IDS_WIN10_WELCOME_MAKE_DEFAULT_SUBHEADING" desc="A subheading on a section which gives instructions on how to make Chromium the default browser.">
          Make Chromium your default browser
        </message>
        <message name="IDS_WIN10_WELCOME_PIN_SUBHEADING" desc="A subheading on a section which gives instructions on how to pin Chromium to the Windows 10 taskbar.">
          Pin Chromium to your taskbar
        </message>
        <message name="IDS_WIN10_WELCOME_SELECT" desc="An instruction asking the user to select Chromium 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>Chromium<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>

      <!-- Native notifications for Windows 10 -->
      <if expr="is_win">
        <message name="IDS_WIN_NOTIFICATION_SETTINGS_CONTEXT_MENU_ITEM_NAME" desc="The name of the button in Windows Notification Center which leads to Chrome notification settings.">
          Go to Chromium notification settings
        </message>
      </if>
      <!-- Relaunch notification bubble and dialog. -->
      <if expr="not is_android">
        <if expr="not chromeos">
          <then>
            <message name="IDS_RELAUNCH_RECOMMENDED_TITLE" desc="The title of a dialog that tells users that a browser relaunch is recommended for an update available for some number of days.">
              {0, plural,
               =0 {A Chromium update is available}
               =1 {A Chromium update is available}
               other {A Chromium update has been available for # days}}
            </message>
            <message name="IDS_RELAUNCH_RECOMMENDED_BODY" desc="The body text of a dialog that tells users that a browser relaunch is recommended for an update.">
              Your administrator asks that you relaunch Chromium to apply this update
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_DAYS" desc="The title of a dialog that tells users the browser must be relaunched within two or more days.">
              {0, plural,
               =1 {Relaunch Chromium within a day}
               other {Relaunch Chromium within # days}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_HOURS" desc="The title of a dialog that tells users the browser must be relaunched within one or more hours.">
              {0, plural,
               =1 {Chromium will relaunch in an hour}
               other {Chromium will relaunch in # hours}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_MINUTES" desc="The title of a dialog that tells users the browser must be relaunched within one or more minutes.">
              {0, plural,
               =1 {Chromium will relaunch in 1 minute}
               other {Chromium will relaunch in # minutes}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_SECONDS" desc="The title of a dialog that tells users the browser must be relaunched within some number of seconds.">
              {0, plural,
               =0 {Chromium will relaunch now}
               =1 {Chromium will relaunch in 1 second}
               other {Chromium will relaunch in # seconds}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_BODY" desc="The body text of a dialog that tells users the browser must be relaunched.">
              Your administrator requires that you relaunch Chromium to apply an update
            </message>
          </then>
          <else>
            <message name="IDS_RELAUNCH_RECOMMENDED_TITLE" desc="The title of a dialog that tells users that a device restart is recommended for an update available for some number of days.">
              {0, plural,
               =0 {A Chromium OS update is available}
               =1 {A Chromium OS update is available}
               other {A Chromium OS update has been available for # days}}
            </message>
            <message name="IDS_RELAUNCH_RECOMMENDED_BODY" desc="The body text of a dialog that tells users that a device restart is recommended for an update.">
              Your administrator asks that you restart Chromium OS to apply this update
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_DAYS" desc="The title of a dialog that tells users the device must be restarted within two or more days.">
              {0, plural,
               =1 {Restart Chromium OS within a day}
               other {Restart Chromium OS within # days}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_HOURS" desc="The title of a dialog that tells users the device must be restarted within one or more hours.">
              {0, plural,
               =1 {Chromium OS will restart in an hour}
               other {Chromium OS will restart in # hours}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_MINUTES" desc="The title of a dialog that tells users the device must be restarted within one or more minutes.">
              {0, plural,
               =1 {Chromium OS will restart in 1 minute}
               other {Chromium OS will restart in # minutes}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_TITLE_SECONDS" desc="The title of a dialog that tells users the device must be restarted within some number of seconds.">
              {0, plural,
               =0 {Chromium OS will restart now}
               =1 {Chromium OS will restart in 1 second}
               other {Chromium OS will restart in # seconds}}
            </message>
            <message name="IDS_RELAUNCH_REQUIRED_BODY" desc="The body text of a dialog that tells users the device must be restarted.">
              Your administrator requires that you restart Chromium OS to apply an update
            </message>
          </else>
        </if>
      </if>
      <!-- Chromium launch blocking dialog. -->
      <if expr="not is_android and not chromeos">
         <message name="IDS_ENTERPRISE_STARTUP_CLOUD_POLICY_ENROLLMENT_TOOLTIP" desc="The information message of Chromium launch blocking dialog for machine level user cloud policy enrollment.">
          Launching Chromium...
        </message>
        <message name="IDS_ENTERPRISE_STARTUP_CLOUD_POLICY_ENROLLMENT_ERROR" desc="The error message of Chromium launch blocking dialog when machine level user cloud policy enrollment failed.">
          Couldn't launch Chromium. Try again.
        </message>
        <message name="IDS_ENTERPRISE_STARTUP_RELAUNCH_BUTTON" desc="The text of relaunch button of Chromium launch blocking dialog.">
          Relaunch Chromium
        </message>
        <message name="IDS_ENTERPRISE_STARTUP_CANCEL_BUTTON" desc="The text of cancel button of Chromium launch blocking dialog.">
          Close
        </message>
      </if>
    </messages>
  </release>
</grit>
